Issue Order (Spell) Action Canceling Movement

Cetacean

New Member
Reaction score
2
I've encountered a thorny problem with the Issue Order X triggers not quite duplicating manual inputs in the way I would have thought. Basically, when a unit already in motion is issued a spell command by trigger, it doesn't resume it's travel upon completion of the cast, as it normally would. You can check this with a two-line trigger:

Player - Player 1 (Red) skips a cinematic sequence
Unit - Order Troll Berserker 0000 <gen> to Orc Troll Berserker - Berserk

Is there any sort of simple solution that would allow this trigger to duplicate manual input functionality? I've thought about some workarounds such as combining Rising_Dusk's last order library with combat flag checking (in case the unit has wandered off to acquire a target), but that seems like an awful lot of code and overhead to accomplish something so simple. I'm hoping someone here can offer a more elegant solution. :)
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Well, you mean you want units which use spell to automatically continue the order they had before casting ? :S

Well, spells like Windwalk and Berserk (If I remember correctly) will not even stop the movement from the beginning...
Though, maybe this isn't what you were thinking of ? :S

Well, I can't see too much else than using the "LastOrder" library...

Here's an example (Though maybe not the best one XD):
Trigger:
  • Last Order Example
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Last Order Test
    • Actions
      • Set TempPoint = (Position of (Triggering unit))
      • Special Effect - Create a special effect at TempPoint using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Wait 0.01 seconds
      • Custom script: call IssueSecondLastOrder( GetTriggerUnit() )


If I move the unit when I cast the spell, it'll cast the spell, and then continue on with the "move-order" ;)
 

avalya

New Member
Reaction score
37
Wait 0.01 seconds is really 0.27, so it won't really be instantaneously.
 

avalya

New Member
Reaction score
37
Just use another trigger, that you turn on -- the trigger will run every 0.01 seconds and when it triggers it'll issue the order and turn off itself.
 

Cetacean

New Member
Reaction score
2
Hi, thanks for replying so quickly! :)

Yes, I would like the unit to continue its previous order, however I was going for something a little different.

When casting berserk/windwalk by clicking the button in game, you are right that the unit continues to move and doesn't stop. However, if you attempt to execute the same move with the Issue Order Trigger, the behavior is different.

Try the following trigger for example:

Trigger:
  • Player - Player 1 (Red) skips a cinematic sequence
    • Unit - Order Troll Berserker 0000 &lt;gen&gt; to Orc Troll Berserker - Berserk


If you order the unit to walk across the screen, then hit escape, you will see that the berserker stands still after casting berserk. I don't understand why the trigger behaves differently than the manual command it is supposed to mimic. Is there perhaps a JASS function that works better than the GUI equivalent?

It looks like I may have to achieve a workaround with the last order library if there aren't in fact better Issue Order functions available, but in that case I will also need to keep track of whether or not a unit is in combat (I don't want them dancing back to the point of their last order while they are fighting!). Do you by chance know if there is an efficient way to do this?
 

Gtam

Lerning how to write and read!! Yeah.
Reaction score
164
that converts to a BJ order now i dont have the we with me but maby use the native IssueImmediateOrder()
 

Accname

2D-Graphics enthusiast
Reaction score
1,464
another possibility (I havent tested it myself, it came to my mind just now) would be selecting the unit for the owner and forcing the owner to hit the shortkey of the skill. this should do like a normal player's command.

however this solution maybe unsufficient because the player would see how the unit is selected for him.
 

Komaqtion

You can change this now in User CP.
Reaction score
469
that converts to a BJ order now i dont have the we with me but maby use the native IssueImmediateOrder()

Just tried it, and doesn't work...

another possibility (I havent tested it myself, it came to my mind just now) would be selecting the unit for the owner and forcing the owner to hit the shortkey of the skill. this should do like a normal player's command.

Actually this doesn't work either...
Wierd, because as you say, it another possibility (I havent tested it myself, it came to my mind just now) would be selecting the unit for the owner and forcing the owner to hit the shortkey of the skill. this should do like a normal player's command.should behave just as if the player pressed the button himself :S

Well, the only way out of this as I can see is using the first option... LastOrder library by Rising_Dusk :D
 

Cetacean

New Member
Reaction score
2
Just a quick update:

First off, thanks for the help everyone; the last order library works flawlessly and actually helped me to find more elegant workarounds for a couple of other trigger mechanics as well. Seeing how powerful and flexible these systems can be, finally motivated me to learn JASS. :)

It does make me wonder though, why on earth Blizzard's own implementation of IssueImmedateOrder is so shabbily executed. Barring technical limitations, why not just use the same functions that are run when you click a skill in the UI?
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
It does make me wonder though, why on earth Blizzard's own implementation of IssueImmedateOrder is so shabbily executed. Barring technical limitations, why not just use the same functions that are run when you click a skill in the UI?

Dunno, but there's some speculation that it used to be the way we expect, and then changed at some point to interrupt the 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