function Trig_paldin_1skils_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A001' ) ) then
return false
endif
return true
endfunction
function nahogdenie takes nothing returns boolean
return ( IsPlayerAlly(GetOwningPlayer(GetFilterUnit()), udg_pl[1]) == true )
endfunction
function nahogdenie2 takes nothing returns boolean
return ( IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), udg_pl[1]) == true )
endfunction
function Trig_paldin_1skils_Actions takes nothing returns nothing
local location p
local location p1
local unit u
local effect e
local integer i =0
local integer j =0
local group array g
set p = GetSpellTargetLoc()
set u = GetSpellAbilityUnit()
set udg_pl[1] = GetOwningPlayer(u)
set g[1] = GetUnitsInRangeOfLocMatching(256.00, p, Condition(function nahogdenie))
set g[2] = GetUnitsInRangeOfLocMatching(256.00, p, Condition(function nahogdenie2))
endfunction
function InitTrig_paldin_1skils takes nothing returns nothing
set gg_trg_paldin_1skils = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_paldin_1skils, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_paldin_1skils, Condition( function Trig_paldin_1skils_Conditions ) )
call TriggerAddAction( gg_trg_paldin_1skils, function Trig_paldin_1skils_Actions )
endfunction
возможно обойтись без глобальных переменных в функциях nahogdenie nahogdenie2
Принятый ответ
Можно, если перебором делать.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
лучше про оптимизацию и утечки почитайте
перебираем циклом