Detecting Order Before Spell

BlackRose

Forum User
Reaction score
239
Hi. How do you detect a unit's order before a spell?

JASS:
library Blink initializer onInit requires TimerUtils, UFSYS, SpellEvent

    globals
        private constant integer ABILITY_ID = 'A000'
        private constant integer DUMMY_ABILITY_ID = 'A001'
        private constant real    CAST_POINT = 0.300
    endglobals

    private function onEffect takes nothing returns nothing

    endfunction

    private function onCast takes nothing returns nothing
        call BJDebugMsg( GetLastOrderString( SpellEvent.CastingUnit ) )
        call AddTempAbility( SpellEvent.CastingUnit, DUMMY_ABILITY_ID, CAST_POINT+0.10)
    endfunction

    private function onInit takes nothing returns nothing
        call RegisterSpellChannelResponse( ABILITY_ID, onCast )
        call RegisterSpellEffectResponse( ABILITY_ID, onEffect )
    endfunction

endlibrary


I'm trying to detect if a unit's order was "move" or "smart" or something before the ability was cast. But this Debug message is only showing it the last order was channel.

I'm using LastOrder.
 

Kenny

Back for now.
Reaction score
202
You probably need to use [ljass]GetPastOrderString(SpellEvent.CastingUnit,2)[/ljass] instead. As you are currently getting the unit's previous order (which would obviously be channel) while what you want is the order it was given before the spell was used.
 

Magentix

if (OP.statement == false) postCount++;
Reaction score
107
Create another trigger.
Unit is issued a target/point order
Condition: Unit has spell in which you want to check for the order and order =/= that spell
Action: Set unit last action = the order (a global attached to a unit using a unit atatchment system, OR hashtables)

In your spell, check the variable attached to the casting unit
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top