I have 2 problems occuring with this trigger. (I started vJass tonight...Means it's my first spell)
Obiously + rep if you help me finding bugs1. When I click syntax check, it tells me that the text is out of function
2. My spell might contain mistakes, I wanted to know if there was leaks, defaults.
JASS:
scope Mass Entangle Root initializer Init
globals
private integer SPELL_LEVEL
private player OWNER
endglobals
function C takes nothing returns boolean
return GetSpellAbilityId() == 039;A000039;
endfunction
function CG takes nothing returns boolean
return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit())) == true )
endfunction
function G takes nothing returns nothing
local player a = OWNER
local integer i = SPELL_LEVEL
local unit genum = GetEnumUnit()
local location gl = GetUnitLoc( genum)
set dummy = CreateUnitAtLoc( a, 039;h000039;, gl, 0.00)
call UnitAddAbility( dummy, 039;A001039;)
call SetUnitAbilityLevel( dummy, 039;A001, i)
call IssueTargetOrder( dummy, "entangle", genum)
call RemoveLocation( gl)
set a = null
set genum = null
set gl = null
endfunction
function A takes nothing returns nothing
local unit c = GetTriggerUnit()
local location cl = GetUnitLoc( c)
local unit dummy
set SPELL_LEVEL = GetUnitAbilityLevel( c, 039;A000039;)
set OWNER = GetOwningPlayer( c)
local real range = 250.00 * I2R( l )
local group inrange = GetUnitsInRangeOfLocMatching( range, cl, Condition( function CG)
call ForGroup( inrange, function G)
call RemoveLocation( cl)
set c = null
set inrange = null
set cl = null
endfunction
//===========================================================================
function InitTrig_Mass_Entangle_Root takes nothing returns nothing
local trigger t = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( t, Condition( function C ))
call TriggerAddAction( t, function A )
endfunction
endscope