Добавлен Стас Орлов
У меня есть N-е количество зданий и вокруг них стоит N-е количество юнитов. Все юниты вокруг зданий объеденены в группы и записанных в хеш-таблицу по ключу, которым является ID здания, вокруг которого стоят юниты. Предположим, что N-е количество юнитов около N-го количества зданий погибло, как мне узнать, сколько юнитов умерло и к какой группе они относились? И как мне потом, через определённый промежуток времени, создать такое же количество таких же юнитов, сколько погибло, добавив их в теже группы?
Я понимаю, что вопрос очень обширный и не самый простой в даче ответа, но именно поэтому я и спрашиваю, есть ли возможность сделать это через хеш-таблицу или нужно искать альтернативу?
Принятый ответ
Стас Орлов, ну ты же как-то прикрепил группу к строению? Тут тоже самое, только строение к юниту.
call SaveUnitHandle(твой_хеш, GetHandleId(твой_юнит), твоё_число, твоё_строение)
При смерти узнавай строение.
set Host = LoadUnitHandle(твой_хеш, GetHandleId(умерший_юнит), твоё_число)
set Dead = LoadInteger(твой_хеш, GetHandleId(Host), другое_твоё_число)
call SaveInteger(твой_хеш, GetHandleId(Host), другое_твоё_число, Dead + 1)
// Не забываем чистить хеш.
call FlushChildHashtable(твой_хеш, GetHandleId(умерший_юнит))
Через некоторое время создавай новых юнитов.
set Group = LoadGroupHandle(твой_хеш, GetHandleId(твоё_строение), твоё_число_2)
set Dead = LoadInteger(твой_хеш, GetHandleId(твоё_строение), другое_твоё_число)
if Dead > 0 then
call SaveInteger(твой_хеш, GetHandleId(твоё_строение), другое_твоё_число, 0)
loop
set Dead = Dead - 1
set Unit = CreateUnit(...)
call GroupAddUnit(Group, Unit)
call SaveUnitHandle(твой_хеш, GetHandleId(Unit), твоё_число, твоё_строение)
exitwhen Dead == 0
endloop
endif
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован PT153