Добавлен M1n3rva
нормально ли юзать это:
group g = CreateGroup()
GroupEnumUnitsInRangeOfLoc(g, l, r,null)
unit u = FirstOfGroup(g)
whilenot(u==null){
if(Буль){ //сюда наш буль, вместо буля в GroupEnumUnitsInRangeOfLoc(g, l, r,null)
DoSomething
GroupRemoveUnit(g,u)
u = FirstOfGroup(g)}
else{
DoNothing
GroupRemoveUnit(g,u)
u = FirstOfGroup(g)}
}
DestroyGroup(g)
вместо этого:
group g = CreateGroup()
GroupEnumUnitsInRangeOfLoc(g, l, r,Буль)
ForGroup(g,function ________)
DestroyGroup(g)
Принятый ответ
Не знаю нафига вам плодить локал группы?
1 Глобальную группу для мгновенных действий, примеру пикнут всех в аое и нанести дмг.
2 Для долго хранящихся групп, к примеру группы для триггерных скиллов по типу Волна Силы где группа хранит уже попавшихся на время полета волны юзайте GroupUtils или прочие ресайклы групп, быстро и удобно.
Ах да, фильтры быстрее вашего перебора с проверкой в цикле, создайте N фильтров на все сулучаи жизни и юзайте на здоровье.
вот пример:
1 Глобальную группу для мгновенных действий, примеру пикнут всех в аое и нанести дмг.
2 Для долго хранящихся групп, к примеру группы для триггерных скиллов по типу Волна Силы где группа хранит уже попавшихся на время полета волны юзайте GroupUtils или прочие ресайклы групп, быстро и удобно.
Ах да, фильтры быстрее вашего перебора с проверкой в цикле, создайте N фильтров на все сулучаи жизни и юзайте на здоровье.
вот пример:
globals
boolexpr OnlyEnemy = null
unit bj_lastFilterUnit = null
endglobals
function EnemyFilter takes nothing returns boolean
set bj_lastFilterUnit = GetFilterUnit( )
return GetUnitState( bj_lastFilterUnit, UNIT_STATE_LIFE ) > 0.405 and IsUnitEnemy( bj_lastFilterUnit, bj_groupEnumOwningPlayer ) and not( IsUnitType( bj_lastFilterUnit, UNIT_TYPE_MAGIC_IMMUNE ) or IsUnitType( bj_lastFilterUnit, UNIT_TYPE_MECHANICAL ) or IsUnitInvulnerable( bj_lastFilterUnit ) )
endfunction
function init takes nothing returns nothing
set OnlyEnemy = Condition( function EnemyFilter )
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Мне вообще удобно не пользовать ForGroup. Я обычно делаю сразу отбор и действия в GroupEnumUnits...
Ред. Raised
GF RaiseD: Насчет удаление юнита, циклом тоже можно, просто создаешь вторую группу и помере удаления с одной группы закидуешь в другую, а после выполнения всех действий перекидываешь всех обратно
И да, действие не мгновенное тоже можно сделать, причем легко через цикл:
2 группы, с одной удаляем в другую кидаем(если нельзя,чтоб группа руинилась)
Цикл, в теле создаем таймер под каждого юнита
Сохраняем в хеш под хэндлИд таймера
Ну а дальше ты понял)
фор групп - не использован.
Ред. Raised
1 Глобальную группу для мгновенных действий, примеру пикнут всех в аое и нанести дмг.
2 Для долго хранящихся групп, к примеру группы для триггерных скиллов по типу Волна Силы где группа хранит уже попавшихся на время полета волны юзайте GroupUtils или прочие ресайклы групп, быстро и удобно.
Ах да, фильтры быстрее вашего перебора с проверкой в цикле, создайте N фильтров на все сулучаи жизни и юзайте на здоровье.
вот пример: