Перейти к содержанию
#3674
Идея была такая, чтобы Илайя (ГГ) могла бы атаковать главного гада (Назира), и при этом её комбат-скрипт отключался бы, а включался бы скрипт Назира, хотя он и защищается.
Я нашла свой косяк в скрипте, но он всё равно не работает, хотя 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;

Но всё это не работает, игра продолжает требовать имя того, кто будет портоваться.

Как мне написать, что портоваться должен тот герой, который заюзал объект, если этот герой принадлежит первому игроку?