XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Zanozus
Уехал учиться
offline
Опыт: 8,512
Активность:
1)создаются юниты 2)за каждым созданным юнитом закрепляются свои значения переменных 3) юнит добавляется в группу и выполняются действия через ForGroup 4) загружаются значения для каждого юнита и выполняется перемещение в зависимости от них.
Для хранения данных я решил использовать структуру вот и спрашиваю как для каждого юнита ХРАНИТЬ (а не считать заного) некоторые значения.
Старый 30.01.2011, 12:50
Nekit1234007

offline
Опыт: 11,916
Активность:
Nekit1234007:
номер структуры отлично сохраняется на юнита с помощью юзердаты и/или хеш таблицы
Старый 30.01.2011, 12:51
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Зачем добавлять юнитов в группу, если можно намного быстрее обрабатывать массив структур в цикле и делать эти же самые перемещения юнитов по сохраненной в структуре ссылке?
Старый 30.01.2011, 12:54
Zanozus
Уехал учиться
offline
Опыт: 8,512
Активность:
Это я и спрашиваю. Где взять этот номер ? Если структура - Integer, то это и есть её номер ?
обрабатывать массив структур в цикле не удобно т.к юниты часто умирают и создаются новые и тогда придется еще добавлять систему хранения пустых индексов в этом массиве структур + цикл будет работать в холостую если попадет на свободный индекс.

Отредактировано Zanozus, 30.01.2011 в 13:02.
Старый 30.01.2011, 12:55
spellwerk

offline
Опыт: 4,869
Активность:
по сохраненной в структуре ссылке
ссылке на юнита
Старый 30.01.2011, 12:57
Nekit1234007

offline
Опыт: 11,916
Активность:
((код jass
local yourStruct this = yourStruct.create()
))
this — интегер. Если опять не понял — бросай это дело.
Старый 30.01.2011, 12:58
XOR

offline
Опыт: 38,159
Активность:
Zanozus:
Это я и спрашиваю. Где взять этот номер ? Если хеш таблица - Integer, то это и есть её номер ?
Не хеш, а структура. this. Ты без хеша видимо не мыслишь спел?
Старый 30.01.2011, 13:00
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Отслеживать событие смерти придется в том и другом случае, чтобы удалить структуру.
Старый 30.01.2011, 13:02
Zanozus
Уехал учиться
offline
Опыт: 8,512
Активность:
тьфу, да структура, описался.
Zanozus добавил:
Все разобрался. Всем спс.
Я щас от смеха лопну. Массив структур - бОльшего идиотизма я еще не видел. Кто вобще придумал =)
Структура и есть набор массивов.
Старый 30.01.2011, 15:46
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Zanozus, зачем ты тогда их используешь? пиши на массивах
Старый 30.01.2011, 15:47
Zanozus
Уехал учиться
offline
Опыт: 8,512
Активность:
я не про это. Структура вещь полезная НО зачем делать из них массив ? Массив в массиве ?
Структура для этого и создана чтобы избавиться от массива а вы опять структуру в массив загоняете.
Это я про пример Spy.
Старый 30.01.2011, 15:49
reALien

offline
Опыт: 29,211
Активность:
Структура - это тоже набор массивов в резудьтате -.-
Старый 30.01.2011, 15:51
Zanozus
Уехал учиться
offline
Опыт: 8,512
Активность:
вот я про то же массив из структур не имеет смысла. Ну по крайней мере так как в примере.
Старый 30.01.2011, 15:52
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Структура это индекс в серии массивов, значения по этому индексу переставляют значения членов структуры. То есть массив структур это массив индексов.
Абстрактно хэш - это ассоциативный массив, получается сохраняя стукртуры в хэш, ты делаешь тоже самое, а именно сохраняешь их индексы в какой-то контейнер, для дальнейшего использования.
Структуры реализуются на базе массивов, но это не массив.
Если тебе так не нравятся массивы, то можно обойтись и без них и без хэша. В структуре храни ссылку на следущую структуру, получится организация в ввиде списка.
Старый 30.01.2011, 16:06
Zanozus
Уехал учиться
offline
Опыт: 8,512
Активность:
exploder, ты меня не понял. Я знаю что такое структуры, но делать такое...
struct name
real x
real y
endstruct

globals
name array struct_array //<---вот это. массив структур ? Зачем ?
endglobals
Старый 30.01.2011, 16:15
XOR

offline
Опыт: 38,159
Активность:
скомпилируй уже и посмотри как оно будет на деле, и стоит ли юзать -.-
Старый 30.01.2011, 16:25
Zanozus
Уехал учиться
offline
Опыт: 8,512
Активность:
посмотрел уже. использовать структуры в массиве бессмысленно.
если можно сразу так:
struct name
real x
real y
endstruct

globals
name p=0
integer n
endglobals

function
local integer i=0
loop
exitwhen i>n
 set p=i
 set p.x=10.00
 set p.y=1.00
set i=i+1
endloop
endfunction
или я что-то не так понял ?
p.s пардон ошибок наделал, исправил.
Старый 30.01.2011, 16:30
spellwerk

offline
Опыт: 4,869
Активность:
сделай, посмотри, проверь.
сделай несколько независимых структур, проверь.
проверь еще раз
и расскажи нам о результате
Старый 30.01.2011, 16:42
Doc

offline
Опыт: 63,163
Активность:
Zanozus, омг ты не можешь динамически изменить номер структуры без потери всех ссылок на нее. Попрактикуйся и поймешь все. И не массив массивов, а массив интов.
Старый 30.01.2011, 16:47
Zanozus
Уехал учиться
offline
Опыт: 8,512
Активность:
а понял. тогда уж так делать:
globals
name p=0
endglobals

function
local integer i=0
loop
exitwhen i>n
 set p=name.create()
 set p.x=...
 set p.y=...
set i=i+1
endloop
Старый 30.01.2011, 16:49
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 18:38.