Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3594
Старый 12.05.2022, 04:45
  #3594
^
Марта
📖
Регистрация: 31.01.2020
Сообщения: 80
Регистрация: 31.01.2020
Сообщения: 80
По умолчанию
Re: Скрипты

Хоттабыч, хотя вас тут пару месяцев не было, но вдруг вы ответите.
(Или кто-нибудь, поможите, люди добрые).

Вы меня когда-то учили писать комбат скрипт для ГГ. Вот, если помните:
------------------------------------------------------------------------------------------------------
function Start()

Level_R = ceil(GetGameVar("LevR") + 0)

    if GetHeroName(GetAttackerHero()) == 'Raelag' then
        local mana = GetUnitManaPoints(GetAttackerHero());
        SetUnitManaPoints(GetAttackerHero(), 200);
        repeat sleep(1) until GetUnitManaPoints(GetAttackerHero())==200;
        sleep(1);
         if Level_R < 20 then
           for i, creature in GetDefenderCreatures() do
             startThread(UnitCastAimedSpell, GetAttackerHero(), 4, creature);
                 end;
               SetUnitManaPoints(GetAttackerHero(), mana);
            else
              for i, creature in GetDefenderCreatures() do
               startThread(UnitCastAimedSpell, GetAttackerHero(), 226, creature);
                end
                 SetUnitManaPoints(GetAttackerHero(), mana);
                   end
    else
    if GetHeroName(GetDefenderHero()) == 'Raelag' then
        local mana = GetUnitManaPoints(GetDefenderHero())
        SetUnitManaPoints(GetDefenderHero(), 200);
        repeat sleep(1) until GetUnitManaPoints(GetDefenderHero())==200
        sleep(1);
         if Level_R < 20 then
           for i, creature in GetAttackerCreatures() do
            startThread(UnitCastAimedSpell, GetDefenderHero(), 4, creature);
             end;
              SetUnitManaPoints(GetDefenderHero(), mana);
             else
               for i, creature in GetAttackerCreatures() do
                startThread(UnitCastAimedSpell, GetDefenderHero(), 226, creature);
                  end;
                  SetUnitManaPoints(GetDefenderHero(), mana);
                     end
                   end;
                  end;
                end;
------------------------------------------------------------------------------------------------------

А как добавить в комбат скрипт другой скрипт, для врага?
Я уж что только не пробовала.
Пыталась написать что-то вроде:

------------------------------------------------------------------------------------------------------
if GetHeroName(GetAttackerHero()) == 'Shadwyn' then
      if GetHeroName(GetDefenderHero()) == 'Nur' 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(GetAttackerHero()) == 'Shadwyn' then
        local mana = GetUnitManaPoints(GetAttackerHero());
        SetUnitManaPoints(GetAttackerHero(), 200);
        repeat sleep(1) until GetUnitManaPoints(GetAttackerHero())==200;
        sleep(1);
         if Level_R < 20 then
           for i, creature in GetDefenderCreatures() do
             startThread(UnitCastAimedSpell, GetAttackerHero(), 4, creature);
                 end;
               SetUnitManaPoints(GetAttackerHero(), mana);
            else
              for i, creature in GetDefenderCreatures() do
               startThread(UnitCastAimedSpell, GetAttackerHero(), 279, creature);
                end
                 SetUnitManaPoints(GetAttackerHero(), mana);
                   end
------------------------------------------------------------------------------------------------------

И тд, дальше про защитника - так нифига не работает. Хотя Назир исправно фигачит по моей Илайе молнией, но в других боях она не может применить Ледяную глыбу, пишут "ERROR: Wrong type of argument 1,when calling function GetHeroName".

Пыталась менять местами if GetHeroName(GetAttackerHero()) == 'Shadwyn' then и  if GetHeroName(GetDefenderHero()) == 'Nur' then - такая же фигня.

Пыталась в MapScript прописывать Назира вместе с Илайей:

path = '/'..GetMapDataPath()
main_hero = 'Shadwyn'
MagHero = 'Nur'

SetHeroCombatScript('Shadwyn', path.."CombatScript.xdb#xpointer(/Script)");
SetHeroCombatScript('Nur', path.."CombatScript.xdb#xpointer(/Script)");

- тоже не помогает.
Пыталась даже навесить Назиру отдельный CombatScript  - но похоже, игра его вообще не видит.

Вообще, возможно прописать комбат-скрипты нескольким героям, и как это сделать?
Марта вне форума
Ответить с цитированием