Ăn xong dong
Mr & Ms Pac-Man
Này sai chổ nào vậy mấy bác :(
PHP:
function Trig_Holy_Light_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A006'
endfunction
function Trig_Holy_Light_Func004002003001 takes nothing returns boolean
return ( IsUnitEnemy(GetFilterUnit(), pc) == true )
endfunction
function Trig_Holy_Light_Func004002003002001 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) != true )
endfunction
function Trig_Holy_Light_Func004002003002002 takes nothing returns boolean
return ( IsUnitAliveBJ(GetFilterUnit()) == true )
endfunction
function Trig_Holy_Light_Func004002003002 takes nothing returns boolean
return GetBooleanAnd( Trig_Holy_Light_Func004002003002001(), Trig_Holy_Light_Func004002003002002() )
endfunction
function Trig_Holy_Light_Func004002003 takes nothing returns boolean
return GetBooleanAnd( Trig_Holy_Light_Func004002003001(), Trig_Holy_Light_Func004002003002() )
endfunction
function Trig_Holy_Light_Actions takes nothing returns nothing
local unit c = GetTriggerUnit()
local player pc = GetOwningPlayer(c)
local unit t = GetSpellTargetUnit()
local location tp = GetUnitLoc(t)
local group = ug
local unit = pu
local effect = e
local integer i = ( GetUnitAbilityLevel(c, 'A006' ) * 50 ) + 100
local real r = I2R(i)
call SetUnitLifeBJ( t, ( GetUnitState(t, UNIT_STATE_LIFE) + r ) )
set ug = GetUnitsInRangeOfLocMatching(200.00, tp, Condition(function Trig_Holy_Light_Func004002003))
loop
set pu = FirstOfGroup(ug)
exitwhen pu == null
call GroupRemoveUnit(ug, pu)
call UnitDamageTarget( c, pu, r, false, true, ATTACK_TYPE_HERO, DAMAGE_TYPE_UNIVERSAL, WEAPON_TYPE_AXE_MEDIUM_CHOP )
set e = AddSpecialEffectTargetUnitBJ("origin", pu, "Abilities\\Spells\\Items\\StaffOfPurification\\PurificationCaster.mdl" )
call DestroyEffect( e )
endloop
set c = null
set p = null
set t = null
call DestroyGroup ( ug )
call RemoveLocation( tp )
set pu = null
set e = null
set i = 0
set r = 0
endfunction
//===========================================================================
function InitTrig_Holy_Light takes nothing returns nothing
set gg_trg_Holy_Light = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Holy_Light, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Holy_Light, Condition( function Trig_Holy_Light_Conditions ) )
call TriggerAddAction( gg_trg_Holy_Light, function Trig_Holy_Light_Actions )
endfunction

chứ nó chậm 60% là coi như nhanh hơn 60% của 2 var array rồi 
vì đó chỉ tạo ra var tồn tại trong 1 func trong khi cái Trig_Holy_Light_Func00xxxx là chắc chắn không nhận được var đó rồi. trừ khi làm 1 var globals ví dụ globals

sợ leak thì viết lại 1 từ set t = null vào func khử BJ 

số mình nhọ quá rùi. Kiểm tra thấy "Reinventing the craft. Version 0.2" Phiên bản 0.2 này liệu có chạy được không nhỉ o.0! ??