D
Dino.pl
Guest
You must specify a name for your function
It is: function
And it should be: function XXX takes YYY returns ZZZ
It is: function
And it should be: function XXX takes YYY returns ZZZ
function [B]IsEnemyAndAlive [/B]takes nothing returns boolean
local unit casterUnit = GetSpellAbilityUnit()
return GetBooleanAnd( (IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), GetOwningPlayer(casterUnit))==true), (IsUnitAliveBJ(GetFilterUnit())==true))
endfunction
function
...
local unit casterUnit
...
function IsEnemy takes unit casterUnit returns boolean
return ( IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), GetOwningPlayer(casterUnit))==true)
endfunction
function IsAlive takes nothing returns boolean
return ( IsUnitAliveBJ(GetFilterUnit())==true )
endfunction
function IsEnemyAndAlive takes unit casterUnit returns boolean
return GetBooleanAnd(IsEnemy(casterUnit), IsAlive())
endfunction
function IsEnemyAndAlive takes unit casterUnit returns boolean
return (GetUnitState(casterUnit, UNIT_STATE_LIFE) > 0 and IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), GetOwningPlayer(casterUnit))==true)
endfunction
Dino.pl said:No, it isn't ^^Code:function ... local unit casterUnit ...
function Trig_Channel_Actions takes nothing returns nothing
local unit casterUnit = GetSpellAbilityUnit()
local location casterPoint = GetUnitLoc(casterUnit)
...
...
...
[B] call ForGroupBJ(GetUnitsInRangeOfLocMatching( 600, casterPoint, Condition(function IsEnemyAndAlive) ))[/B]
...
...
endfunction
function Trig_Channel_Conditions takes nothing returns boolean
return (GetSpellAbilityId()=='A000')
endfunction
//function IsEnemy takes nothing returns boolean
// local unit casterUnit = GetSpellAbilityUnit()
// return ( IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), GetOwningPlayer(casterUnit))==true)
//endfunction
//
//function IsAlive takes nothing returns boolean
// return ( IsUnitAliveBJ(GetFilterUnit())==true )
//endfunction
//
//function IsEnemyAndAlive takes nothing returns boolean
// return GetBooleanAnd(IsEnemy(), IsAlive())
//endfunction
//
//function IsEnemyAndAlive takes nothing returns boolean
// local unit casterUnit = GetSpellAbilityUnit()
// return GetBooleanAnd( (IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), GetOwningPlayer(casterUnit))==true), (IsUnitAliveBJ(GetFilterUnit())==true))
//endfunction
[U]function IsEnemyAndAlive takes nothing returns boolean
local unit casterUnit = GetSpellAbilityUnit()
return GetBooleanAnd( (IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), GetOwningPlayer(casterUnit))==true), GetUnitState(casterUnit, UNIT_STATE_LIFE) > 0)
endfunction[/U]
function Trig_Channel_Actions takes nothing returns nothing
local unit casterUnit = GetSpellAbilityUnit()
local location casterPoint = GetUnitLoc(casterUnit)
local unit array graveUnit
local location array gravePoint
local lightning array lightningEffect
local effect array darkPortalEffect
local effect array graveEffect
local integer i = 0
local integer a
local integer b
loop
exitwhen i>4
call CreateNUnitsAtLocFacingLocBJ( 1, 'h000', GetOwningPlayer(casterUnit), casterPoint, GetUnitLoc(casterUnit) )
set graveUnit[i] = GetLastCreatedUnit()
set gravePoint[i] = PolarProjectionBJ(casterPoint, 300.00, (-90.00 + (72.00*I2R(i))) )
call SetUnitPositionLocFacingLocBJ(graveUnit[i], gravePoint[i], casterPoint )
call UnitApplyTimedLifeBJ( 11.50, 'BTLF', graveUnit[i] )
set i=i+1
endloop
call CreateNUnitsAtLocFacingLocBJ(1, 'h001', GetOwningPlayer(casterUnit), casterPoint, GetUnitLoc(casterUnit) )
set graveUnit[5] = GetLastCreatedUnit()
call UnitApplyTimedLifeBJ( 11.50, 'BTLF', graveUnit[5] )
set a=0
loop
exitwhen a>3
set b=0
loop
exitwhen b>4
if ( GetBooleanOr( IAbsBJ( b-a ) == 1, IAbsBJ( b-a ) == 4 )) then
call AddLightningLoc( "SPLK", gravePoint[a], gravePoint[b])
set lightningEffect[((4*a)+b)] = GetLastCreatedLightningBJ()
else
call AddLightningLoc( "AFOD", gravePoint[a], gravePoint[b] )
set lightningEffect[((4*a)+b)] = GetLastCreatedLightningBJ()
endif
set b=b+1
endloop
set a=a+1
endloop
set a=1
loop
exitwhen a>10
[U]call ForGroupBJ(GetUnitsInRangeOfLocMatching( ( 840.00 - ( I2R(a) * 30.00 ) ), casterPoint, Condition(function IsEnemyAndAlive) ))[/U]
//call ForGroupBJ( GetUnitsInRangeOfLocMatching(( 840.00 - ( I2R(a) * 30.00 ) ), casterPoint, Condition(GetBooleanAnd( (IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), GetOwningPlayer(casterUnit))) , (IsUnitAliveBJ(GetFilterUnit())))) ))
set b=1
loop
exitwhen b>18
call AddSpecialEffectLocBJ( PolarProjectionBJ(casterPoint, (840.00 - ( I2R(a) * 30.00) ), (I2R(b) * 20.00)), "Abilities\\Spells\\Demon\\DarkPortal\\DarkPortalTarget.mdl" )
set darkPortalEffect[b] = GetLastCreatedEffectBJ()
set b=b+1
endloop
set b=0
loop
exitwhen b>4
call AddSpecialEffectLocBJ( gravePoint[b], "Abilities\\Spells\\Orc\\EtherealForm\\SpiritWalkerChange.mdl" )
set graveEffect[b] = GetLastCreatedEffectBJ()
call AddSpecialEffectLocBJ( gravePoint[b], "Abilities\\Spells\\Orc\\AncestralSpirit\\AncestralSpiritCaster.mdl" )
set graveEffect[(b+5)] = GetLastCreatedEffectBJ()
set b=b+1
endloop
call TriggerSleepAction( 1.00 )
set b=0
loop
exitwhen b>18
call DestroyEffectBJ( graveEffect[b] )
call DestroyEffectBJ( darkPortalEffect[b] )
set b=b+1
endloop
set a=a+1
endloop
set i=1
loop
exitwhen i>20
call DestroyLightningBJ( lightningEffect[i])
set i=i+1
endloop
endfunction
//===========================================================================
function InitTrig_Channel takes nothing returns nothing
set gg_trg_Channel = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Channel, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Channel, Condition( function Trig_Channel_Conditions ) )
call TriggerAddAction( gg_trg_Channel, function Trig_Channel_Actions )
endfunction
function IsEnemyAndAlive takes nothing returns boolean
local unit casterUnit = GetSpellAbilityUnit()
return GetBooleanAnd( (IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), GetOwningPlayer(casterUnit))==true), GetUnitState(casterUnit, UNIT_STATE_LIFE) > 0)
endfunction
if ( IAbsBJ( b-a ) == 1 or IAbsBJ( b-a ) == 4 ) then
set lightningEffect[((4*a)+b)] = AddLightningLoc( "SPLK", gravePoint[a], gravePoint[b])
else
if ( GetBooleanOr( IAbsBJ( b-a ) == 1, IAbsBJ( b-a ) == 4 )) then
call AddLightningLoc( "SPLK", gravePoint[a], gravePoint[b])
set lightningEffect[((4*a)+b)] = GetLastCreatedLightningBJ()
else
set graveUnit[5] = CreateNUnitsAtLocFacingLocBJ(1, 'h001', GetOwningPlayer(casterUnit), casterPoint, GetUnitLoc(casterUnit) )
call CreateNUnitsAtLocFacingLocBJ(1, 'h001', GetOwningPlayer(casterUnit), casterPoint, GetUnitLoc(casterUnit) )
set graveUnit[5] = GetLastCreatedUnit()
set graveUnit[5] = CreateNUnitsAtLocFacingLocBJ(1, 'h001', GetOwningPlayer(casterUnit), casterPoint, GetUnitLoc(casterUnit) )