Идея была такая, чтобы Илайя (ГГ) могла бы атаковать главного гада (Назира), и при этом её комбат-скрипт отключался бы, а включался бы скрипт Назира, хотя он и защищается.
Я нашла свой косяк в скрипте, но он всё равно не работает, хотя editor перестал придираться.
Я пишу в комбат-скрипте, - вторым скриптом, после скрипта Илайи на каст Ледяной глыбы в каждом бою::
function Nur_battle()
local defH, attH = GetDefenderHero(), GetAttackerHero()
if GetHeroName(defH) == "Nur" and GetHeroName(attH) == "Shadwyn" then
local mana = GetUnitManaPoints(GetDefenderHero())
SetUnitManaPoints(GetDefenderHero(), 200);
repeat sleep(1) until GetUnitManaPoints(GetDefenderHero())==200
for i, creature in GetAttackerCreatures() do
startThread(UnitCastAimedSpell, GetDefenderHero(), 3, creature)
end;
SetUnitManaPoints(GetDefenderHero(), mana);
else
if GetHeroName(defH) == "Shadwyn" and GetHeroName(attH) == "Nur" then
local mana = GetUnitManaPoints(GetAttackerHero())
SetUnitManaPoints(GetAttackerHero(), 200);
repeat sleep(1) until GetUnitManaPoints(GetAttackerHero())==200
for i, creature in GetDefenderCreatures() do
startThread(UnitCastAimedSpell, GetAttackerHero(), 3, creature)
end;
SetUnitManaPoints(GetAttackerHero(), mana);
end;
end;
end;
end;
end;
Но когда Илайя нападает на Назира, она по-прежнему кастит Ледяную глыбу, а Назир на неё молнию не кастит.
Что я делаю не так?)
Может, Назира надо было в MapScript куда-то прописать?
Добавлено через 2 минуты
То есть, я пишу вторую функцию в комбат-скрипте, конечно. А не второй скрипт.
Добавлено через 4 часа 8 минут
И сразу второй вопрос.
Я тут пытаюсь наладить систему Таун порталов, как в третьих Героях.
С ГГ никаких проблем нет, - она портуется куда надо.
Но мне бы хотелось, чтобы все герои первого игрока могли бы портоваться через этот скрипт.
И тут возникает проблема, как их обозначить, - SetObjectPosition(heroName, x, y, floor) требует имя конкретного героя.
А почём же я знаю, кто попадётся мне в таверне?
Поскольку я не знаю, как обозначить героя без имени, я танцевала с бубном, пытаясь копировать скрипты с форума, но толку что-то нет.
Я написала в начале MapScript:
kot_heroes={"Shadwyn", "Raelag", "Urunir", "Ohtarig"};
Потом написала функцию:
function Portal_HaladF (heroname)
local Portal_Hero
for key, name in kot_heroes do
if name == heroName then
Portal_Hero=1
SetObjectPosition(heroName, 56, 90, 0);
sleep(1);
end;
end;
if not Portal_Hero then
print("не тот герой");
end;
end;
Но всё это не работает, игра продолжает требовать имя того, кто будет портоваться.
Как мне написать, что портоваться должен тот герой, который заюзал объект, если этот герой принадлежит первому игроку?