Хоттабыч, хотя вас тут пару месяцев не было, но вдруг вы ответите.
(Или кто-нибудь, поможите, люди добрые).
Вы меня когда-то учили писать комбат скрипт для ГГ. Вот, если помните:
------------------------------------------------------------------------------------------------------
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 - но похоже, игра его вообще не видит.
Вообще, возможно прописать комбат-скрипты нескольким героям, и как это сделать?