Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#1853
Старый 11.01.2015, 11:39
  #1853
^
djulian13
📖
Регистрация: 18.09.2011
Адрес: Сары-Тау, Ранаар.
Сообщения: 161
Регистрация: 18.09.2011
Адрес: Сары-Тау, Ранаар.
Сообщения: 161
По умолчанию
Re: Скрипты

Граждане товарищи господа и дамы, нужна ваша помощь.

Уже не первый год мучаюсь с одним из скриптов на карте, который никак не даёт покоя. Здесь его полный код:
EnableHeroAI('Bersy',nil)
EnableHeroAI('Ingvar', nil)
EnableHeroAI('Vegeyr', nil)
DoNotGiveTurnToPlayerAIIfNoTownsAndActiveHeroes(PL AYER_3,true)



function Mystery_of_mount()
Trigger(OBJECT_TOUCH_TRIGGER, 'Thanes', nil)
MessageBox(dir..'dialog_1.txt')
sleep(5)
SetObjectEnabled('Thanes', true)
sleep(5)
MakeHeroInteractWithObject('Giovanni', 'Thanes')
sleep(3)
if IsObjectExists('Thanes') == not nil then
RemoveObject('Thanes')
sleep(3)
startThread(Thanes_2)
else startThread(Thanes_2)
end;
end;
Trigger(OBJECT_TOUCH_TRIGGER, 'Thanes', 'Mystery_of_mount')

function Thanes_2()
if IsObjectExists('Thanes') == nil then
MessageBox(dir..'dialog_2.txt')
sleep(5)
SetObjectiveState('Thun', OBJECTIVE_COMPLETED)
if GetTownHero('Shagarakti') == 'OrnellaNecro' then
flag = 1;
else TeachHeroSpell('OrnellaNecro',SPELL_TOWN_PORTAL)
SetObjectPosition('OrnellaNecro',28,34,0)
flag = 1;
flag3 = GetDate(DAY)
flag4 = flag3 + 3;
print('flag3')
print('flag4')
flag5 = flag3 + 7;
print('flag3')
print('flag5')
flag6 = flag3 + 14;
print('flag3')
print('flag6')
end;
end;
end;


function Attack_1()
if GetDate(DAY) == flag3 + 3 then
SetObjectPosition('Bersy',28,36,0,4)
SetAIHeroAttractor('Shagarakti','Bersy',2)
AddObjectCreatures('Garrison',40,18 +(flag2*5),7)
AddObjectCreatures('Garrison',42,5 +(flag2*5),6)
EnableHeroAI('Bersy',true)
end;
end;
Trigger(NEW_DAY_TRIGGER,'Attack_1')

function Attack_2()
if GetDate(DAY) == flag3 + 7 then
SetObjectPosition('Vegeyr',28,34,0,4)
SetAIHeroAttractor('Shagarakti','Vegeyr',2)
AddObjectCreatures('Shagarakti',40, 16 + (3*flag2))
AddObjectCreatures('Shagarakti',36, 50 +(10*flag2))
EnableHeroAI('Vegeyr',true)
end;
end;
Trigger(NEW_DAY_TRIGGER,'Attack_2')

function Attack_3()
if GetDate(DAY) == flag3 + 14 then
SetObjectPoistion('Ingvar',28,34,0,4)
SetAIHeroAttractor('Shagarakti','Ingvar',2)
TeachHeroSpell('OrnellaNecro',SPELL_SUMMON_HIVE)
AddObjectCreatures('Shagarakti',36, 30 + (flag2*10))
EnableHeroAI('Ingvar',true)
end;
sleep(1)
end;
Trigger(NEW_DAY_TRIGGER,'Attack_3')

function Attack_finished()
while 1 do
if IsHeroAlive('Ingvar') == nil then
MessageBox(dir..'fu.txt')
end;
sleep(1)
end;
end;
startThread(Attack_finished)

Суть его в чём. Даётся квест на уничтожение группы танов. После его выполнения через определённое количество времени герои, ранее дезактивированные, должны появиться в определённой точке и атаковать город игрока. Этого, однако, не происходит - карта либо зависает, либо продолжает работу в штатном режиме, но герои как не появились, так и не появляются. Версия игры 3.1, что на чистой ничего не работает, что с модами. Вопрос, уважаемые знатоки: где косяк?
__________________
Мои карты:

SinglePlayer: Выбор Зехира

Падение Стедвика(pre-release)

Готовится: Зима Титанов, Столетняя война
Мои карты:

SinglePlayer: Выбор Зехира

Падение Стедвика(pre-release)

Готовится: Зима Титанов, Столетняя война
djulian13 вне форума
Ответить с цитированием