Добавлен Vi.A.R
Как привязать один юнит к другому - чтобы при смерте одного умирал и другой. Связываются они способностью. Таких войск на карте очень много. Повторяться они не будут.
Принятый ответ
Extremator, эмм, перебирать всех юнитов это тупо. Есть же хэш-таблица.А как сделать хэш-таблицей?
Могу предположить, что это будет работать так, на примере созданных юнитов: Так то любых можно добавить, наступивших в область, убивших и так далее
...
local unit UNIT_1=CreateUnitAtLoc(Player(0),'hfoo',REGION, bj_UNIT_FACING)
local unit UNIT_2=CreateUnitAtLoc(Player(0),'hfoo',REGION2, bj_UNIT_FACING)
...
//Сохраняем пару по уникальному id первого Объекта
call SaveUnitHandle(HASH_TABLE,GetHandleId(UNIT_1),1,UNIT_1)
call SaveUnitHandle(HASH_TABLE,GetHandleId(UNIT_1),2,UNIT_2)
//Сохраняем пару по уникальному id второго Объекта
call SaveUnitHandle(HASH_TABLE,GetHandleId(UNIT_2),1,UNIT_2)
call SaveUnitHandle(HASH_TABLE,GetHandleId(UNIT_2),2,UNIT_1)
...
//Условие
if GetDyingUnit()=='hfoo' or (GetOwningPlayer(GetDyingUnit()) == Player(PLAYER_NEUTRAL_AGGRESSIVE)) then
//Загружаем по уникальному ID умирающего юнита его вторую половинку)
call KillUnit(LoadUnitHandle(HASH_TABLE, GetHandleId(GetDyingUnit()), 2)
endif
...
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
поиск ключа циклом намного медленнее хэштаблицы
Отредактирован Smeto
Отредактирован DazzleFirst
Один из них умер - убиваем второго (или двоих). Ну, и не забываем очищать всё. Дабы утечек небыло.
Профит
Отредактирован nazarpunk
Ты прав делал лишние действие)
Если больше юнитов допустим, трое связанных, то работать с параметром *set custom value*)
Пришла идея в голову:)
Целочисленная переменная Index, для того что избежать повторов пар из трёх юнитов)