PurgeandFire
zxcvmkgdfg
- Reaction score
- 509
I believe there is no GetTriggerPlayer(). I think you are looking for GetOwningPlayer(GetTriggerUnit()) instead.
Do that, and the unit should be created.Tom Jones said:What exactly isn't working? The code that Rheias posted in his last post should work, if you created the variable arrays in the variable editor called ShieldCaster and ShieldDummies. I copy/pasted the before mentioned code, and it didn't cause me any problems.
My bet is that the dummy unit isn't created, you'll have to use GetOwningPlayer(GetTriggerUnit()) instead of GetTriggerPlayer(). I'm not sure that the triggering player exits in that instance.
call CreateNUnitsAtLoc( 1, 039;h001039;, GetTriggerPlayer(), udg_ShieldCasterLoc, GetUnitFacing(GetTriggerUnit()) )
call TriggerAddAction
call TriggerAddAction(gg_trg_Ion_Shield, function Trig_Ion_Shield_Actions)
local unit whichUnit = GetTriggerUnit()
call RemoveUnit(bj_lastCreatedUnit)
set udg_ShieldDummies<i> = CreateUnit(GetOwningPlayer(whichUnit),039;h001039;,GetLocationX(udg_ShieldCasterLoc),GetLocationY(udg_ShieldCasterLoc),GetUnitFacing(whichUnit))
set bj_lastCreatedUnit = udg_ShieldDummies<i>
set whichUnit = null</i></i>
function Trig_Ion_Shield_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 039;A001039;
endfunction
function Trig_Ion takes nothing returns nothing
local integer i = GetTriggerExecCount(GetTriggeringTrigger())
local real x = GetUnitX(udg_ShieldCaster<i>)
local real y = GetUnitY(udg_ShieldCaster<i>)
call SetUnitPosition(udg_ShieldDummies<i>,x,y)
endfunction
function Trig_Ion_Shield_Actions takes nothing returns nothing
local timer t = CreateTimer()
local integer i = GetTriggerExecCount(GetTriggeringTrigger())
set udg_ShieldCaster<i> = GetSpellAbilityUnit()
call DisplayTextToForce( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit()) ), "|cffffcc00YOU HAVE ENABLED ION SHIELD|r." )
call RemoveUnit(bj_lastCreatedUnit)
<b>set udg_ShieldDummies<i> = CreateUnit(GetOwningPlayer(whichUnit),039;h001039;,GetLocationX(udg_ShieldCasterLoc),GetLocationY(udg_ShieldCasterLoc),GetUnitFacing(whichUnit))</i></b><i>
set bj_lastCreatedUnit = udg_ShieldDummies<i>
call TimerStart(t,0.03,true,function Trig_Ion)
endfunction
//===========================================================================
function InitTrig_Ion_Shield takes nothing returns nothing
set gg_trg_Ion_Shield = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Ion_Shield, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Ion_Shield, Condition( function Trig_Ion_Shield_Conditions ) )
call TriggerAddAction( gg_trg_Ion_Shield, function Trig_Ion_Shield_Actions )
endfunction</i></i></i></i></i></i>
you mean go set whichunit = myunit
or actually change the words whichunit to my unit?
edit: ok got rid of the errors by making all the parts that said "ShieldCaster" to "ShieldCaster"
edit2: still can't get the shield to show, but the message saying I have enabled ion shield is showing.