ммм, видать я недоспал, но не могу найти, почему в этом коде из одного трупа создаются два миньена вместо нужного одного
Код
scope Henchmen
{
include "cj_types_priv.j"
define
{
private ABILITY = 'A029'
private AOE(lvl) = 90.0 + 10.0 * lvl
private EFFECT = "Abilities\\Weapons\\ChimaeraAcidMissile\\ChimaeraAcidMissile.mdl"
private SUMMONS = 4
private SUM1 = 'n00P'
private SUM2 = 'n00Q'
private SUM3 = 'n00R'
private SUM4 = 'n00S'
private SUM5 = 'n00T'
private SUM6 = 'n00U'
}
private int Summon(int lvl)
{
if lvl < 4
{
if lvl == 1
{
return SUM1
} elseif lvl == 2 {
return SUM2
} elseif lvl == 3 {
return SUM3
}
} else {
if lvl == 4
{
return SUM4
} elseif lvl == 5 {
return SUM5
}
}
return SUM6
}
callback onUnitSpellEffect(ABILITY)
{
unit u = GetTriggerUnit()
real x = GetSpellTargetX()
real y = GetSpellTargetY()
int lvl = GetUnitAbilityLevel(u, ABILITY)
int i = 0
group g = new group
unit b = null; unit d = null
GroupEnumUnitsInRange(g, x, y, AOE(lvl), null)
loop
{
b = FirstOfGroup(g)
exitwhen (b == null)
if GetWidgetLife(b) <= 0.405 && i < SUMMONS
{
x = GetWidgetX(b)
y = GetWidgetY(b)
RemoveUnit(b)
DestroyEffect(AddSpecialEffect(EFFECT, x, y))
d = CreateUnit(GetOwningPlayer(u), Summon(lvl), x, y, GetRandomReal(0.0, 359.9))
i++
if (GetLocalPlayer() == GetOwningPlayer(u))
{
call SelectUnit(d, true)
}
}
GroupRemoveUnit(g, b)
}
DestroyGroup(g)
flush locals
}
}