Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#2951
Старый 09.11.2019, 01:40
  #2951
^
OrnsteinDragonslayer
 
Аватар для OrnsteinDragonslayer
📖
Регистрация: 10.01.2016
Сообщения: 172
Регистрация: 10.01.2016
Сообщения: 172
По умолчанию
Re: Скрипты

Вопрос на миллион душ! Не работают скрипты. Подскажите, где ошибка. Консоль не матерится.
Первое: если город эльфов захватил игрок 2, то ты должен проиграть, но игра продолжается.
	function CheckAnpossal()
         if GetObjectOwner ('houseElf') == 2 then
         sleep(10)
         SetObjectiveState('q4', OBJECTIVE_FAILED, 1);
         sleep(10)
         Loose()
end
end

startThread (CheckAnpossal)

Второе: в течении игры отслеживается, не умер ли юнит в армии героя. Если у героя его нет - проигрыш. Работает. Но после определённого момента сюжета этот юнит должен быть убран из армии и игра должна продолжиться. Не продолжается - проигрываешь. Консоль опять же вроде не материлась.

отслеживание юнита в армии героя (работает):

	function lostDragon() ---- Проверка потери дракона
	while 1 do
		sleep ( 10 );
		if GetHeroCreatures("Ohtarig", 83) == 0 and dragon == 1 then
		if SetRegionBlocked('CheckAstrid', false) then
			SetObjectiveState("q5", OBJECTIVE_FAILED, 1);
			sleep ( 10 );
			Loose();
			break
		end;
	end;
end;
end
startThread (lostDragon)

Ключевой момент сюжета(не работает, как нужно):

	function PokaAstrida()
         SetRegionBlocked ('CheckAstrid', false, 1)
         dragon = 0
         RemoveHeroCreatures('Ohtarig', 83, 1)
         StartDialogScene("/Maps/SingleMissions/ChoiseOTW1/Test/DialogScene.xdb#xpointer(/DialogScene)")
         sleep(5)
         StartCombat('Ohtarig', nil, 1, 41, 1, nil, nil, nil, nil)
         sleep(5)
         MessageBox("/Maps/SingleMissions/ChoiseOTW1/MagiPoka.txt");
         sleep(5)
         SetObjectiveState("q5", OBJECTIVE_FAILED);
         Trigger(REGION_ENTER_AND_STOP_TRIGGER , "Corrupted", nil);
         sleep(5)
         RemoveObject('lich1')
         RemoveObject('lich2')
         RemoveObject('lich3')
end

Trigger(REGION_ENTER_AND_STOP_TRIGGER , "Corrupted", 'PokaAstrida');

Подскажите пожалуйста, где я не в ту сторону подумал
OrnsteinDragonslayer вне форума
Ответить с цитированием