Перейти к содержанию

Текущие вопросы и ответы по редактору карт

Аватар пользователя
#3917
Markel the Imperor
Есть ли какой то прямой способ узнать потери героя в бою?
устанавливаем триггер
COMBAT_RESULTS_TRIGGER
в нем смотрим какой герой принимал участие в битве с помощью
GetSavedCombatArmyHero
сами отряды получаем функциями
GetSavedCombatArmyCreaturesCount
GetSavedCombatArmyCreatureInfo
Если данные нужны не сразу, можно сохранить их в массив

Вот пример кода (потери записываются в переменную died):
COMBAT_WINNER = 1;
COMBAT_LOSER = 0;
Trigger(COMBAT_RESULTS_TRIGGER, 'CombatResult');

function CombatResult(id)

-- анализ ведем только для глав. героя
if(GetSavedCombatArmyHero(id, COMBAT_WINNER) ~= player_hero) then return end

local n_stacks, creature, count, died;

-- анализ проигравшей стороны
n_stacks = GetSavedCombatArmyCreaturesCount(id, COMBAT_LOSER);
for i = 0,(n_stacks-1) do
creature, count, died = GetSavedCombatArmyCreatureInfo(id, COMBAT_LOSER, i);
-- здесь можно проанализировать или сохранить куда-нибудь данные
-- creature - id существа, count - их количество на начало боя, died - сколько погибло
end;

-- анализ победившей стороны
n_stacks = GetSavedCombatArmyCreaturesCount(id, COMBAT_WINNER);
for i = 0,(n_stacks-1) do
creature, count, died = GetSavedCombatArmyCreatureInfo(id, COMBAT_WINNER, i);
end;

end