Герои Меча и Магии 5 - Картостроительство (Редактор карт)В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.
endы после else всё же должны стоять. Вот скрипт уже с другой карты:
function am()
local old = 8
while 1 do
local count = 0
for i=36,43 do
count = count + (HasArtefact("Muscip", i) or 0)
end
if count ~= old then
if old == 8 then
SetObjectiveState("obj", OBJECTIVE_ACTIVE);
sleep(5);
end
if count == 8 then
SetObjectiveState("obj", OBJECTIVE_COMPLETED);
else
SetObjectiveProgress('obj', count);
end;
old = count
end;
sleep(5);
end;
end;
Теперь он совсем нелепое стал писать: Вызванная функция: function eh1F(heroname) if eh1p == 0 then eh1p = 1 AddHeroCreatures(heroname,91,fac); AddHeroCreatures(heroname,85,eac); AddHeroCreatures(heroname,86,eac); AddHeroCreatures(heroname,87,eac); AddHeroCreatures(heroname,88,eac); ShowFlyingSign(w.."ehe.txt"); sleep(5); else ShowFlyingSign(w.."ehp.txt"); end; end;
а, ясно. Она (ф-ия) heroname не восприняла, как героя. Функция-то активироваться должна от героя. Например, повесить на неё touch/region триггер. Иначе она не понимает, какому герою ей давать армию...
Как видно, в данной функции (+тригерре) есть два объекта. Один - это герой. Второй - это объект, при соприкосновении с которым героем начинается функция. Хотя да, раз функция вызвана, значит объект есть. Вопрос снимается.
Даже не знаю, чем помочь. Проверил в редакторе скриптов - по синтаксису все правильно.
Еще раз (для уточнения). Вы начали карту заново. Подошли героем к объекту. Нажали. Функция дала сбой. Так? Просто я уже не знаю, как в такой простой ф-ии может выпасть ошибка.