Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3648
Старый 01.06.2022, 23:04
  #3648
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 226
Регистрация: 24.04.2016
Сообщения: 226
По умолчанию
Re: Скрипты

JewilyВ случае, если разрабы не безрукие(они не такие), то через триггер. Потому что висячий триггер не исполняется до вызова соответствующего события. А поток с циклом - постоянно выполняется, что грузит карту больше. 
Вы в своём скрипте в 
GetSavedCombatArmyCreatureInfo( combatIndex );

отдали только 1 аргумент, а нужно ещё написать помимо combatIndex написать 0 вторым параметром(0 для проигравшего, 1 для победившего), и третьим аругментом нужен индекс слота армии, в каком проверять. Соответственно вам лучше написать цикл, который все слоты проверит.
Оттого и ничего не работает. В мануале конечно не очень расписано, но как уже указывал Хоттабыч, писали об этом на форуме.

Спасибо за ответ, к сожалению по поиску я нашёл только сообщения которые мы с Хоттабычем сами же и оставили(

По поводу своего скрипта - чуток переписал и заработало! Однако, почему-то скрипт после проверки стеков и нахождении первого занятого из них каким-либо существом жалуется на "Invalid creature index" и число какое-нибудь пишет. Например 2(как понимаю, это занятый существами стек которые были в бою с героем). Это критичная ошибка? Или можно проигнорировать опираясь на "Ладно, итак сойдёт!" ?   

Сам же скрипт теперь такой(всё работает, print выдаёт корректное число павших недругов)

function WR_Revenge( combatIndex )
        print("Запустили функцию") --Удалить
      if GetSavedCombatArmyHero( combatIndex, 1 ) == "WR" then
        print("Чекнули героя") 
         if GetSavedCombatArmyCreaturesCount( combatIndex, 0, 112 ) >= 1 then
        print("Чекнули существ") 
         for i=0,6 do
         local revenge_target, count, died = GetSavedCombatArmyCreatureInfo( combatIndex, 0, i );
        print("Прошли local") 
            if revenge_target == 112 and died >= 1 then
        print("Прошли проверку на смерть хоть одного ангелочка")
               enemieskilledcounter = enemieskilledcounter + died;
               print("ВР убила ", enemieskilledcounter ," ангелочков");
            end
         end
      end
   end
end
Азгалор вне форума
Ответить с цитированием