offline
Опыт:
2,092
Активность:
|
Ткните в утечки
1.Укажите на утечки, и как с ними бороться?
» cat
function Trig_Bandit_AI_simple_Attack_Conditions takes nothing returns boolean
if ( not ( GetEventDamage() > 0.00 ) ) then
return false
endif
return true
endfunction
function Trig_Bandit_AI_simple_Attack_Func007002003 takes nothing returns boolean
return ( UnitHasItemOfTypeBJ(GetFilterUnit(), 'I00Y') == true )
endfunction
function Trig_Bandit_AI_simple_Attack_Func017002003 takes nothing returns boolean
return ( GetUnitTypeId(GetFilterUnit()) == 'h00K' )
endfunction
function Trig_Bandit_AI_simple_Attack_Actions takes nothing returns nothing
local group g1
local unit u
if ( GetUnitStateSwap(UNIT_STATE_LIFE, GetTriggerUnit()) <= 50.00 ) then
call IssuePointOrderLocBJ( GetTriggerUnit(), "move", GetRandomLocInRect(RectFromCenterSizeBJ(PolarProjectionBJ(GetUnitLoc(GetTriggerUnit()), 300.00, ( AngleBetweenPoints(GetUnitLoc(GetTriggerUnit()), GetUnitLoc(GetEventDamageSource())) + 180.00 )), 200.00, 200.00)) )
call TextAi("Заштопай меня!", GetTriggerUnit(),50)
set udg_Bands[45] = GetUnitsInRangeOfLocMatching(500.00, GetUnitLoc(GetTriggerUnit()), Condition(function Trig_Bandit_AI_simple_Attack_Func007002003))
set g1=udg_Bands[45]
set u=GroupPickRandomUnit(g1)
call TextAi("Тащу аптечку!", u, 50)
call UnitUseItemTarget( (u), GetItemOfTypeFromUnitBJ( (u), 'I00Y'), GetTriggerUnit() )
call DestroyGroup(g1)
set g1=null
set u=null
return
elseif ( UnitHasBuffBJ(GetTriggerUnit(), 'B000') == false ) then
set udg_Bands[45] = GetUnitsInRangeOfLocMatching(500.00, (Location(GetUnitX(GetTriggerUnit()),(GetUnitY(GetTriggerUnit())))), Condition(function Trig_Bandit_AI_simple_Attack_Func017002003))
set g1 = udg_Bands[45]
set u=GroupPickRandomUnit(g1)
call TextAi("Сейчас я спрячусь!", GetTriggerUnit(),15)
call IssuePointOrderLocBJ( GetTriggerUnit(), "move", Location(GetUnitX(u),GetUnitY(u) ))
call DestroyGroup(g1)
call DestroyGroup(udg_Bands[45])
set g1=null
set u=null
return
else
call IssueTargetOrderBJ( GetTriggerUnit(), "attack", GetEventDamageSource() )
endif
call DestroyGroup(g1)
set g1=null
set u=null
endfunction
//===========================================================================
function InitTrig_Bandit_AI_simple_Attack takes nothing returns nothing
set gg_trg_Bandit_AI_simple_Attack = CreateTrigger( )
call TriggerAddCondition( gg_trg_Bandit_AI_simple_Attack, Condition( function Trig_Bandit_AI_simple_Attack_Conditions ) )
call TriggerAddAction( gg_trg_Bandit_AI_simple_Attack, function Trig_Bandit_AI_simple_Attack_Actions )
endfunction
- Если перед "Pick every unit..." загнать нужный отряд в переменную и использовать в качестве аргумента ее, а после DestroyGroup использовать то утечки не будет?
- Слыхал что "Matching" нельзя юзать - чем его заменить?
Отредактировано Nerevar, 11.06.2013 в 10:51.
|