Хм. Думаю, да. Можно просто посчитать их количество (за вычетом непризывных юнитов и тех призывных, что умерли). Но тут надо экспериментировать, определённо. Потому как игра может посчитать, что в конце боя все призывные существа умерли, а в этом случае придётся делать особые условия победы, чтобы сначала всё посчитать, а потом закончить бой.
Сообщения от Скрипты
Вообще, можно посчитать, когда у одной из сторон не останется юнитов, тогда сделать BlockGame, посчитать призванных, разблочить игру, закончить бой.
Я думаю, в этом случае механизм подсчёта юнитов, встроенный в игру, справится со своей задачей быстрее и бой кончится раньше, чем будет вызвана команда BlockGame.
Что ж, буду пытаться экспериментировать. А вообще, как узнать, какому существу присвоена какая UnitName?
С уважением.
С уважением.
Может, вызвать GetDefender(Attacker)Creatures и для каждого элемента массива GetCreatureType?
Попробуем, спасибо.
С уважением.
С уважением.
У меня возник такой вопрос. Допустим, по сюжету герой должен выбрать, например, каким путем ему идти. Если он пойдет по определенной дороге, то каждый день у него будет уменьшаться армия. Это можно сделать через New_day_trigger. Допустим, что переменной h в этом случае присваивается значение 1. Тогда
Trigger( NEW_DAY_TRIGGER, "hello" )
function hello()
if GetDate(DAY) == 2 and h==1 then
RemoveHeroCreatures(...);
elseif GetDate(DAY) == 3 and h==1 then
RemoveHeroCreatures(...);
и тд
end;
end;
но так придется прописывать на каждый день. Можно ли как-нибудь обнулить счет дней в определенный момент, чтобы не прописывать столко?
Trigger( NEW_DAY_TRIGGER, "hello" )
function hello()
if GetDate(DAY) == 2 and h==1 then
RemoveHeroCreatures(...);
elseif GetDate(DAY) == 3 and h==1 then
RemoveHeroCreatures(...);
и тд
end;
end;
но так придется прописывать на каждый день. Можно ли как-нибудь обнулить счет дней в определенный момент, чтобы не прописывать столко?
У меня возник такой вопрос. Допустим, по сюжету герой должен выбрать, например, каким путем ему идти. Если он пойдет по определенной дороге, то каждый день у него будет уменьшаться армия. Это можно сделать через New_day_trigger. Допустим, что переменной h в этом случае присваивается значение 1. Тогда
Trigger( NEW_DAY_TRIGGER, "hello" )
function hello()
if GetDate(DAY) == 2 and h==1 then
RemoveHeroCreatures(...);
elseif GetDate(DAY) == 3 and h==1 then
RemoveHeroCreatures(...);
и тд
end;
end;
но так придется прописывать на каждый день. Можно ли как-нибудь обнулить счет дней в определенный момент, чтобы не прописывать столко?
ну так если у тебя переменная h=1, то он и будет удалять часть армии каждый день. и не к чему эти навороты с определением даты. как фишка будет не нужна измениш значение h на любое кроме еденицы.
Ну да, значение переменной меняешь в определённом месте и всё. Два регион-триггера без остановки героя, меняющие значение + запуск нового потока.
Если мой ход мыслей правилен, то:
h = 0
function RemoveCreaturesStart()
h = 1
startThread(RemoveCreatureProgress)
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC1', nil)
end;
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC1','RemoveCreaturesStart')
function RemoveCreatureProgress()
while 1 do
if h == 1 then
RemoveObjectCreatures('Oddrema', CREATURE_CERBERI,28)
end;
sleep(1)
end;
end;
function RemoveCreatureStop()
if h == 1 then
h=2
else
if (h == 2) or (h == 0) then
h = 1
end;
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC2',nil)
end;
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC2','RemoveCreatureStop')
С уважением.
Если мой ход мыслей правилен, то:
h = 0
function RemoveCreaturesStart()
h = 1
startThread(RemoveCreatureProgress)
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC1', nil)
end;
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC1','RemoveCreaturesStart')
function RemoveCreatureProgress()
while 1 do
if h == 1 then
RemoveObjectCreatures('Oddrema', CREATURE_CERBERI,28)
end;
sleep(1)
end;
end;
function RemoveCreatureStop()
if h == 1 then
h=2
else
if (h == 2) or (h == 0) then
h = 1
end;
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC2',nil)
end;
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC2','RemoveCreatureStop')
С уважением.
нуу, приблизительно. Я вообще думаю так: повесить регион
function regf()
h=1;
Trigger(трололо, nil);
end;
Trigger(трололо);
function hello()
if h==1 then
RemoveCreatures ("Oddrema", 20, 1);
end;
end;
Trigger (NEW_DAY_TRIGGER, "hello");
function regf()
h=1;
Trigger(трололо, nil);
end;
Trigger(трололо);
function hello()
if h==1 then
RemoveCreatures ("Oddrema", 20, 1);
end;
end;
Trigger (NEW_DAY_TRIGGER, "hello");
как установить спавн только определенных существ в начале недели? И, желательно, в определенном месте?
как установить спавн только определенных существ в начале недели? И, желательно, в определенном месте?
CreateMonster
--Пример
function NewDay()
if GetDate(DAY_OF_WEEK) == 1 then
CreateMonster('mob1', CREATURE_PEASANT, 50, 45, 51, GROUND);
end;
end;
Trigger(NEW_DAY_TRIGGER, "NewDay")
Функцией
CreateMonster
--Пример
function NewDay()
if GetDate(DAY_OF_WEEK) == 1 then
CreateMonster('mob1', CREATURE_PEASANT, 50, 45, 51, GROUND);
end;
end;
Trigger(NEW_DAY_TRIGGER, "NewDay")
Спасибо. А как тогда отключить спавн на новой неделе? Например, наступила неделя лича и никто не спавнится?
Тогда придётся сделать так:
function NewDay()
if GetDate(DAY_OF_WEEK) == 1 and GetCurrentMoonWeek() < 84 then
CreateMonster('mob1', CREATURE_PEASANT, 50, 45, 51, GROUND);
end;
end;
Trigger(NEW_DAY_TRIGGER, "NewDay")Тогда, если случится неделя какой-нибудь твари, монстр не поставиться на карту.
Статистика
Приветствуем новейшего участника:
recijeb