Форум HeroesWorld-а - Показать сообщение отдельно - Текущие вопросы и ответы по редактору карт
Показать сообщение отдельно
#3855
Старый 17.10.2015, 20:34
  #3855
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 551
Выставка наград
Регистрация: 08.09.2013
Сообщения: 551
Выставка наград
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

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
Jack_of_shadows вне форума
Ответить с цитированием