How to MUI my spell

PurgeandFire

zxcvmkgdfg
Reaction score
509
I believe there is no GetTriggerPlayer(). I think you are looking for GetOwningPlayer(GetTriggerUnit()) instead. :D
 

master maste

New Member
Reaction score
32
Make my spell mui. If you read the above posts someone figured a way using modulos but I seem to be getting errors. . .
 

Tom Jones

N/A
Reaction score
437
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.
 

Tom Jones

N/A
Reaction score
437
GetTriggerExecCount() counts the number of times a trigger has been executed, either by an event or manually. It wont reset the count untill you use ResetTrigger().

Anyways:
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.
Do that, and the unit should be created.
 

master maste

New Member
Reaction score
32
I used GetOwningPlayer(GetTriggerUnit()) where ever GetTriggerPlayer() used to be but it seems that the dummy unit it not being created, but the game message saying iron sheild has been enabled is still running even with the new GetOwningPlayer(GetTriggerUnit()).

Any ideas?
 

Sooda

Diversity enchants
Reaction score
318
JASS:
    call CreateNUnitsAtLoc( 1, 'h001', GetTriggerPlayer(), udg_ShieldCasterLoc, GetUnitFacing(GetTriggerUnit()) )


Change GetTriggerPlayer() to GetOwningPlayer(GetTriggerUnit()). Also if anybody didn' t notice from Rheias JASS was missing actual native what adds action to trigger:
JASS:

should be:
JASS:
call TriggerAddAction(gg_trg_Ion_Shield, function Trig_Ion_Shield_Actions)

And are you sure udg_ShieldCasterLoc holds value at that time when trigger fires ? I suggest just to use X and Y coordinates instead of location. CreateNUnitsAtLoc can be:
JASS:

    local unit whichUnit = GetTriggerUnit()

    call RemoveUnit(bj_lastCreatedUnit)

    set udg_ShieldDummies<i> = CreateUnit(GetOwningPlayer(whichUnit),&#039;h001&#039;,GetLocationX(udg_ShieldCasterLoc),GetLocationY(udg_ShieldCasterLoc),GetUnitFacing(whichUnit))
    set bj_lastCreatedUnit = udg_ShieldDummies<i>
    set whichUnit = null</i></i>
 
J

Jade.Mage

Guest
You just need to use locals instead of globals... I'm sure someone probably already said that but I'm too lazy to read all of the post right now.
 

master maste

New Member
Reaction score
32
. . . seriously

"Change GetTriggerPlayer() to GetOwningPlayer(GetTriggerUnit()). "
I have already been told to do this and it didnt work at all.

and Sooda that end bit of code was just confusing e.g. what was "whichUnit" doing there for? and many other things.
 

Sim

Forum Administrator
Staff member
Reaction score
534
Errors, or it doesn't work?

Since I didn't assist you with this problem yet, I suggest you post your code as it is right now, with all the variables listed and if they're arrays or not, as well as precisely what it does and what it doesn't, and you also tell us what are the errors and where they are in the trigger! :p

Oh and also tell us where you set those globals to their values, such as the location one.
 

master maste

New Member
Reaction score
32
O.K I will bold where the errors are to save space.

variables:
ShieldDummies (array)
ShieldCaster (array)

JASS:
function Trig_Ion_Shield_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == &#039;A001&#039;
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()) ), &quot;|cffffcc00YOU HAVE ENABLED ION SHIELD|r.&quot; )
    
    call RemoveUnit(bj_lastCreatedUnit)

    <b>set udg_ShieldDummies<i> = CreateUnit(GetOwningPlayer(whichUnit),&#039;h001&#039;,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>


hmm seems I'm only getting one error now.
 

master maste

New Member
Reaction score
32
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.
 

Chocobo

White-Flower
Reaction score
409
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.


whichUnit is not a variable..
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top