Skip to content
User Avatar
#1560
Auto-translated
Juss456
Thank you! But this snippet doesn't work for me. The console displays something like "invalid ID=0 (arg1)".

c1, c2, c3, c4, c5, c6, c7 = GetHeroCreaturesTypes(heroname);
sleep(1);
if c1 ~= nil then
c11 = GetHeroCreatures(heroname, c1);
else c11 = 0;
end;
if c2 ~= nil then
c22 = GetHeroCreatures(heroname, c2);
else c22 = 0;
end;
if c3 ~= nil then
c33 = GetHeroCreatures(heroname, c3);
else c33 = 0;
end;
if c4 ~= nil then
c44 = GetHeroCreatures(heroname, c4);
else c44 = 0;
end;
if c5 ~= nil then
c55 = GetHeroCreatures(heroname, c5);
else c55 = 0;
end;
if c6 ~= nil then
c66 = GetHeroCreatures(heroname, c6);
else c66 = 0;
end;
if c7 ~= nil then
c77 = GetHeroCreatures(heroname, c7);
else c77 = 0;
end;
sleep(1);
if c11 ~= 0 then
RemoveHeroCreatures(heroname, c1, intg(c11 * 0.33));
end;
if c22 ~= 0 then
RemoveHeroCreatures(heroname, c2, intg(c22 * 0.33));
end;
if c33 ~= 0 then
RemoveHeroCreatures(heroname, c3, intg(c33 * 0.33));
end;
if c44 ~= 0 then
RemoveHeroCreatures(heroname, c4, intg(c44 * 0.33));
end;
if c55 ~= 0 then
RemoveHeroCreatures(heroname, c5, intg(c55 * 0.33));
end;
if c66 ~= 0 then
RemoveHeroCreatures(heroname, c6, intg(c66 * 0.33));
end;
if c77 ~= 0 then
RemoveHeroCreatures(heroname, c7, intg(c77 * 0.33));
end;
If a slot is empty, the corresponding element is not nil, but 0. Therefore, ~=nil should be replaced with ~=0.
The idea is to remove one-third of the army? Then there is a shorter script.
for i=0,6 do
local t, n = GetObjectArmySlotCreature(heroname, i)
if t ~= 0 then
RemoveHeroCreatures(heroname, t, n/3)
end
end
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4