Добавлен Vadik29
GroupEnumUnitsInRange(G, x, y, 1000, Base)
loop
E = FirstOfGroup(G)
GroupRemoveUnit(G, E)
exitwhen E == null
if Condition_Base(p,E) then
SetUnitInvulnerable(E,false)
UnitRemoveBuffs(E,true,true)
UnitAddAbility(E,'A0WR')
UnitDamageTarget(u, E, dmg, false, false, null, null, null)
UnitRemoveAbility(E,'A0WR')
endif
endloop
function Condition_Base takes player p,unit e returns boolean
return IsUnitEnemy(e,p) and IsUnitType(e,UNIT_TYPE_DEAD) == false and IsUnitType(e,UNIT_TYPE_STRUCTURE) == false
endfunction
Если во время нанесения урона кто-то умирает, цикл прерывается, как можно это исправить.
Принятый ответ
Если срабатывает событие смерти, и в триггере с событием смерти используется группа G, то группа перезапишется. Для событий прерывающих поток, используй отдельные группы.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
хотелось бы дебаг ибо лично я не вижу проблем в коде
даже более того у меня аналогичный код в своё время работал без багов
Отредактирован Vadik29
Собственно стоят два героя, один умирает, второму не наносится урон вообще.
Отредактирован nvc123
и попробуй под лупом поменять 1 и 2 строку местами
Может изза этого и не работает.
Экстрасенсы ведут расследование. Чекните условие выборки. Да и зачем перебор юнитов тогда?
Отредактирован 16GB
E = FirstOfGroup(G)
GroupRemoveUnit(G, E)
exitwhen E == null
loop
E = FirstOfGroup(G)
exitwhen E == null
какойто код...
GroupRemoveUnit(G, E)
endloop