Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3710
Старый 11.08.2022, 19:59
  #3710
^
Min_Carolin
 
Аватар для Min_Carolin
📖
Регистрация: 10.07.2018
Сообщения: 25
Регистрация: 10.07.2018
Сообщения: 25
По умолчанию
Re: Скрипты

Все ж-таки проблемки остались. Во время хода героя лучник, вместо того, чтобы выполнить действие один раз, почему-то начинает стрелять огромное количество раз без остановки, пока не закончатся боеприпасы. Не могу понять, как это остановить.

Опять же, вот скрипт:

Заголовокfunction DefenderHeroMove (unit)
InitRandom()
    for n, creature in GetDefenderCreatures() do
    local id = GetCreatureType(creature)
      if id == CREATURE_ARCHER then
      local targets = GetAttackerCreatures()
      chosen_target = targets[random(length(targets)+1)]
      sleep (50)
      commandShot (creature, chosen_target, not nil)
      sleep (1)
      end
  end

 

Min_Carolin

Да, действительно, с экспертным призывом небесный щит начал накладываться. И random тоже начал выдавать числа. Но теперь возникла вот такая проблема: скрипт ругается на второй аргумент Вашей функции, т.е. на переменную chosen_target (скриншот прилагается). Может, я ее как-то неправильно понял и, соответственно, неправильно пишу?

P.S. Все разрешилось, просто надо было sleep написать, чтобы все корректно отработало. Спасибо большое.

Сама функция: 

Заголовокfunction DefenderHeroMove (unit)
InitRandom()
  for n, creature in GetDefenderCreatures() do
    local id = GetCreatureType(creature)
     if id == CREATURE_ARCHER then
     local targets = GetAttackerCreatures()
     local chosen_target = targets[random(length(targets)+1)]
     commandShot (creature, chosen_target, nil)
     end
  end


Min_Carolin вне форума
Ответить с цитированием