function DriftLoop takes nothing returns nothing local timer t= GetExpiredTimer() local integer hid= GetHandleId(t) local unit u = LoadUnitHandle(udg_hash, hid, 0) local integer n = LoadInteger(udg_hash, hid, 1) local integer i = LoadInteger(udg_hash, hid, 3) if i>25 then DisplayTextToForce( GetPlayersAll(), "CC") DestroyEffect(LoadEffectHandle(udg_hash, hid, 2)) PauseUnit(u, FALSE) SetUnitInvulnerable(u, FALSE) PauseTimer(t) DestroyTimer(t) FlushChildHashtable(udg_hash, hid) else DisplayTextToForce( GetPlayersAll(), "EE") polarAccel(n, udg_TurningAngle[n], udg_Accel[n]*5) local group g GroupEnumUnitsInRange(g, GetUnitX(u), GetUnitY(u), 999999, null) local unit fl loop set fl=FirstOfGroup(g) exitwhen fl==null DisplayTextToForce( GetPlayersAll(), "BB") if IsPlayerEnemy(GetOwningPlayer(fl), GetOwningPlayer(u)) then DisplayTextToForce( GetPlayersAll(), "AA") UnitDamageTarget(u,fl,9999999,TRUE,true,ATTACK_TYPE_CHAOS, DAMAGE_TYPE_ACID, WEAPON_TYPE_AXE_MEDIUM_CHOP) endif call GroupRemoveUnit(g,fl) endloop DestroyGroup(g) set fl=null set g= null DisplayTextToForce( GetPlayersAll(), "DD") SaveInteger(udg_hash, hid, 3, i+1) endif set t= null set u=null endfunction
Выводится только EE, тоесть застревает на цикле, дальше него не идет, но т.к. не выводится BB => цикл вообще не срабатывает. Что не так?
Добавлено (30 Августа 2012, 14:26:11) --------------------------------------------- выяснил, что застревает на строке GroupEnumUnitsInRange(g, GetUnitX(u), GetUnitY(u), 999999, null) , а не на цикле
Добавлено (30 Августа 2012, 14:33:52) --------------------------------------------- Мм... Можно закрыть, я просто забыл создать группу .