Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#2797
Старый 01.09.2018, 20:37
  #2797
^
AlekseyS
📖
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
По умолчанию
Re: Скрипты

AstralLeinСтолкнулся с такой проблемой...

Есть вражеский герой (подвижный). Его смерть приводит к победе в сценарии... но если этот герой погибает на ходу ИИ (сам расшибается об игрока), то после проигрывания ролика и прочего, вместо победы игра выдает консольную ошибку No player!, а смена хода зависает. Если игрок сам нападает на героя, то все работает правильно.

Кто-нибудь знает как это исправить? Плиз)))

Собственно, сама функция:

Trigger(PLAYER_REMOVE_HERO_TRIGGER, 2, "TheEnd")

function TheEnd(hero)
if hero == "RedHeavenHero05" then
StartDialogScene(path.."DialogScenes/DialogFinal/DialogScene.xdb#xpointer(/DialogScene)")
sleep(5)
SetObjectiveState("Final", OBJECTIVE_COMPLETED)
SetObjectiveState("NecroTown", OBJECTIVE_COMPLETED)
SetObjectiveState("ArantirLive", OBJECTIVE_COMPLETED)
sleep(10)
Win()
end
end

Запиши, как я предлагал, через startThread.

function TheEnd()
while IsHeroAlive( "RedHeavenHero05" ) == true do sleep(5) end
sleep(1)
StartDialogScene(path.."DialogScenes/DialogFinal/DialogScene.xdb#xpointer(/DialogScene)")
sleep(5)
SetObjectiveState("Final", OBJECTIVE_COMPLETED)
SetObjectiveState("NecroTown", OBJECTIVE_COMPLETED)
SetObjectiveState("ArantirLive", OBJECTIVE_COMPLETED)
sleep(10)
Win()
end
(Мог что-то пропустить)
Саму функцию нужно запустить после победы над Весселем.
AlekseyS вне форума
Ответить с цитированием