Добавлен  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
    
        
            
                `
            
            
                
        
    
    ОЖИДАНИЕ РЕКЛАМЫ...
            
                    
                        Чтобы оставить комментарий, пожалуйста, войдите на сайт.
                    
                
             
                        
                        
                    
 WC3
                                WC3
                            



 
                    
                
Мне вообще удобно не пользовать ForGroup. Я обычно делаю сразу отбор и действия в GroupEnumUnits...
Ред. Raised
GF RaiseD: Насчет удаление юнита, циклом тоже можно, просто создаешь вторую группу и помере удаления с одной группы закидуешь в другую, а после выполнения всех действий перекидываешь всех обратно
И да, действие не мгновенное тоже можно сделать, причем легко через цикл:
2 группы, с одной удаляем в другую кидаем(если нельзя,чтоб группа руинилась)
Цикл, в теле создаем таймер под каждого юнита
Сохраняем в хеш под хэндлИд таймера
Ну а дальше ты понял)
фор групп - не использован.
Ред. Raised