Я к тому, что этот СетОбжектив реализовывать как отдельную функцию, или можно и в эту пихнуть?
Кампания в разработке:
Название не придумал
Выполнено 5%
Название не придумал
Выполнено 5%
Впервые здесь? Я Роха — провести быструю экскурсию?
Я к тому, что этот СетОбжектив реализовывать как отдельную функцию, или можно и в эту пихнуть?
str = 'функция(параметр)'
...
Trigger(OBJECT_TOUCH_TRIGGER, 'имя обьекта', 'parse(str)')
Trigger(OBJECT_TOUCH_TRIGGER, "monum1", "monumtext");
Trigger(OBJECT_TOUCH_TRIGGER, "monum2", "monumtext");
Trigger(OBJECT_TOUCH_TRIGGER, "monum3", "monumtext");
Trigger(OBJECT_TOUCH_TRIGGER, "monum4", "monumtext");
function monumtext (hero, obj)
if obj == 'monum1' then
MessageBox(mpath.. 'monum1.txt');
elseif obj == 'monum2' then
MessageBox(mpath.. 'monum2.txt');
elseif obj == 'monum3' then
MessageBox(mpath.. 'monum3.txt');
elseif obj == 'monum4' then
MessageBox(mpath.. 'monum4.txt');
end;
end;Триггер object_touch в любом случае передает 2 параметра в функцию (неважно используете вы их или нет): имя притронувшегося героя и имя объекта к которому притронулись. Т.е. надо писать Trigger(OBJECT_TOUCH_TRIGGER, 'имя объекта', 'функция'), без каких-либо параметров в скобках
function SuppGlutt ()
SetObjectiveState("Qnecro", OBJECTIVE_COMPLETED);
RemoveObject("Isher");
SetObjectOwner("gorodZemlya", 1);
ChangeHeroStat("RedHeavenHero04", STAT_EXPERIENCE, 15000);
ChangeHeroStat("RedHeavenHero04", STAT_MORALE, 1);
ChangeHeroStat("RedHeavenHero04", STAT_LUCK, 1);
Trigger (PLAYER_REMOVE_HERO_TRIGGER, "Straker", nil);
end;
Trigger (PLAYER_REMOVE_HERO_TRIGGER, "Straker", "SuppGlutt");
Trigger(PLAYER_REMOVE_HERO_TRIGGER, номер игрока, 'функция, в которую будут переданы имена потерянного героя и его победителя(или nil)')function SuppGlutt (looser, winner)
if(looser == "Straker") then
SetObjectiveState("Qnecro", OBJECTIVE_COMPLETED);
RemoveObject("Isher");
SetObjectOwner("gorodZemlya", 1);
ChangeHeroStat("RedHeavenHero04", STAT_EXPERIENCE, 15000);
ChangeHeroStat("RedHeavenHero04", STAT_MORALE, 1);
ChangeHeroStat("RedHeavenHero04", STAT_LUCK, 1);
Trigger (PLAYER_REMOVE_HERO_TRIGGER, номер, nil);
end;
end;
Trigger (PLAYER_REMOVE_HERO_TRIGGER, номер игрока, которому принадлежит нужный герой, "SuppGlutt")
Вопрос про треды. Я про них мало, что знаю, но здесь они мне видимо нужны, потому прошу помощи.
Существуют несколько особенных нейтралов. После того, как они будут уничтожены, должен срабатывать триггер(наверное), мол приходит резервный герой.
Как это осуществляется?
function fun()
while (1) do
sleep(2);
if (Exists('neutral1') == nil) and (Exists('neutral2') == nil) then
fun2();
break
end;
end;
end;
startThread(fun);
И второй вопрос не по тредам: может ли один триггер активировать несколько функций? Как это написать?
Например, будет ли работать такой триггер - Trigger(REGION_ENTER_AND_STOP_TRIGGER , "dialog", "Dialog1", "функция2", "функция3", "функция228"); ?
Trigger(REGION_ENTER_AND_STOP_TRIGGER , "dialog", "Dialog1")
function Dialog1 ()
...
функция2();
end;
function функция2 ()
...
функция3();
end;
и т.д.
Быть может как-то и можно, я бы запустил их по цепочке:
Trigger(REGION_ENTER_AND_STOP_TRIGGER , "dialog", "Dialog1")
function Dialog1 ()
функция1();
функция2();
функция3();
end
если кто-нибудь знает можете подсказать как в боевой скрипт перенести уровень героя:confused: :
function start()
if уровень героя нападающего >=1
каст одного закла
if уровень героя нападающего >=10
каст одного закла
if уровень героя нападающего >=20
каст одного закла
end:rolleyes:
x = GetHeroLevel('имя нужно героя')
SetGameVar('Level', x)function Start()
HeroLevel = GetGameVar('Level') + 0
if(HeroLevel >= 1) then
... и т.д
function cherti ()
while (1) do
sleep(2);
if (Exists('chert1') == nil) and (Exists('chert2') == nil) and (Exists('chert3') == nil) and (Exists('chert4') == nil) and (Exists('chert5') == nil) and (Exists('chert6') == nil) and (Exists('chert7') == nil) and (Exists('chert8') == nil) then
Quelaag ();
break
end;
end;
end;
startThread("cherti");
function Quelaag ()
DeployReserveHero( "Oddrema", 60, 36, GROUND );
end;