Zanozus
Уехал учиться
offline
Опыт:
8,512Активность: |
Сохранение структуры в хеш ?
Как сохранить структуру в хеш ? И есть ли в этом необходимость ? Мне нужно аттачить структуру к юниту, чтобы у каждого юнита была своя структура. Читал что каждая созданная структура обладает уникальным номером. Если это так, то как его получить и нааборот как зная этот номер перейти к структуре ? |
30.01.2011, 11:48 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Структура это integer. |
30.01.2011, 11:54 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nekit1234007
offline
Опыт:
11,916Активность: |
|
30.01.2011, 11:56 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zanozus
Уехал учиться
offline
Опыт:
8,512Активность: |
т.е ?
function1 local struct s=struct.create() call SaveInteger(hash,GetHandleId(u),1,s) endfunction function2
local struct s=struct.create() set s = LoadInteger(hash,GetHandleId(u),1) endfunction а если используется одна глобальная структура ? То по идее у всех юнитов будет одна и таже структура ? А это не есть гут. Отредактировано Zanozus, 30.01.2011 в 12:07. |
30.01.2011, 12:01 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nekit1234007
offline
Опыт:
11,916Активность: |
Неправильно, попробуй ещё раз. |
30.01.2011, 12:04 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
function2
local struct s=LoadInteger(HT,GetHandleId(u),1) endfunction
непонятно. |
30.01.2011, 12:05 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zanozus
Уехал учиться
offline
Опыт:
8,512Активность: |
globals
struct s=0 hashtable hash=InitHashtable() endglobals function1
local unit u=CreateUnit(...) set s.x=50.00 set s.y=10.00 .... call GroupAddUnit(group,u) call SaveInteger(hash,GetHandleId(u),1) endfunction function2
local unit u=GetEnumUnit() set s=LoadInteger(hash,GetHandleId(u),1) endfunction к примеру так. Можно ли так делать или для каждого созданного юнита нужно создавать локальную структуру ? |
30.01.2011, 12:14 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Custom Value простейший способ для сохранения id структуры (если оно еще есть в текущих версиях).
А вообще надо подумать, есть ли необходимость аттачить структуру. Расскажи конкретную логику своего примера, для чего нужен этот аттач. |
30.01.2011, 12:16 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Не понимаю зачем тебе аттачить структуру если она одна на всех юнитов. |
30.01.2011, 12:21 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zanozus
Уехал учиться
offline
Опыт:
8,512Активность: |
От CustomValue я уже давно отказался (даже системка есть по хранению свободных индексов CustomValue). И да он еще существует.
Жуть для чего нужен:
мне нужно сохранять для каждого юнита эти параметры: центр вращения, углы поворотов, растояние и т.д (для каждого юнита они свои). Сама структура еще не доделана но думаю понятно. чтобы не сохранять все это по отдельности в хеш решил задействовать структуру. |
30.01.2011, 12:23 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Просто смотря чем ты оперируешь. Судя по твоему примеру тебе легче сохранять ссылку на юнита в поле структуры и оперировать структурами, а не юнитами.
|
30.01.2011, 12:27 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zanozus
Уехал учиться
offline
Опыт:
8,512Активность: |
можно пример ? |
30.01.2011, 12:28 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Все структуры для удобной адресации можно хранить в статическом члене структуры массиве. |
30.01.2011, 12:30 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zanozus
Уехал учиться
offline
Опыт:
8,512Активность: |
это не то т.к у каждого юнита свой набор значений переменных структуры.
в итоге мне всеравно придется куда-то их сохранять и откуда-то их загружать. мой прошлый вопрос остается открытым: Для хранения индивидуальных параметров каждого юнита нужно создавать для каждого локальную структуру или достаточно одной глобальной структуры ? |
30.01.2011, 12:34 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
spellwerk
offline
Опыт:
4,869Активность: |
|
30.01.2011, 12:36 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Массив структур, запись/удаление в который производится в конструкторе/деструкторе структуры.
Товариш выше предлагает тоже самое, только через глобальный массив. Через статический член более красиво и не нарушается инкапсуляция структуры.
exploder добавил:
Тут вопрос в другом. Важно знать порядок выборки, по которому производиться обработка. Если его контролируешь ты, то тебе не важно что ты хранишь, юнитов или структуры. Но если порядок выборки определяется движком (например триггер с событием действия юнита, или срабатывание таймера), то тогда аттач необходим. |
30.01.2011, 12:40 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
|
30.01.2011, 12:41 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
не понимаю, что мешает компилировать код и посмотреть как он выглядит в реале?
|
30.01.2011, 12:43 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
DioD, не понимаю что мешает тебе сразу писать в машинных кодах. |
30.01.2011, 12:45 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nekit1234007
offline
Опыт:
11,916Активность: |
Я не понимаю почему вы тупите, номер структуры отлично сохраняется на юнита с помощью юзердаты и/или хеш таблицы. =\ Выше дал пример на таймер. |
30.01.2011, 12:49 | #20
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|