Snippet Move unit instantly Without forced stopping

Psiblade94122

In need of sleep
Reaction score
138
most people who are unfamiliar with Jass will most likely encounter this problem sooner or later

When the move unit instantly action is used, that unit is FORCED to STOP
this is extremely frustrating for those who want to create GUI slides, but there is hope. With a few lines of custom text, that problem will be solved.

JASS:
call SetUnitX(Your unit, a Real)

and
JASS:
call SetUnitY(Your unit, a Real)


First off, if we like using things like Set point = point with polar offset, X/Y coords is gonna be hard one would think. Another simple solution to a problem that seems big...

If we where to take two Real variables, lets name them X and Y shall we?
We can take the Coordinates of a point, lets say point "L3" (mainly because im lazy and im pasteing this stuff from the map i have open right now)

so in GUI we have
Code:
Set X = (X of L3)
and
Code:
Set Y= (Y of L3)

Okay, so we have X and Y now. Its time to plug them in!

JASS:
call SetUnitX(Your unit, udg_X)
call SetUnitY(Your unit, udg_Y)


There, we just made the unit move by useing X and Y along with the functions "SetUnitX" and "SetUnitY". So whats the point?
It allows the movement of a unit without that unit loosing its current orders, it dose not order them to "Stop" every time they are moved.

Now, the final part of this snippet. Unit rotation without the unit loosing its order. This is for all those people who want to channel spells and turn around at the same time.

JASS:
SetUnitFacing( Your Unit, A Real )

Like last time this requires a unit and a real, so i wont explain it again.

Yea its a snippet, and a pretty crappy one too, but these are 3 functions that allow you to move a unit around or make it turn without it looseing its orders.

If you guys have any questions feel free to ask.


Oh a note, If your used to GUI and arnt comfortable with the codes above, i suggest storing whatever needs to go inside the ( ) of the functions before hand, so it can be easily referenced to, although its not the most effective way, its one of the simplest ways of using this method.

And an example Trigger

Code:
Untitled Trigger 001
    Events
        Time - Every 0.04 seconds of game time
    Conditions
    Actions
        Set L = (Position of Peasant 0000 <gen>)
        Set L3 = (L offset by 25.00 towards (Facing of Peasant 0000 <gen>) degrees)
        Set Real = (Random angle)
        Set X = (X of L3)
        Set Y = (Y of L3)
        Custom script:   call SetUnitX( gg_unit_hpea_0000, udg_X )
        Custom script:   call SetUnitY( gg_unit_hpea_0000, udg_Y )
        Custom script:   call SetUnitFacing( gg_unit_hpea_0000, udg_Real )
        Custom script:   call RemoveLocation(udg_L)
        Custom script:   call RemoveLocation(udg_L3)

this trigger will make the unit move forward while turning it in random directions
 

Attachments

  • Slide Example.w3x
    16.2 KB · Views: 188

Renendaru

(Evol)ution is nothing without love.
Reaction score
309
This should be a tutorial... Not a snippet...
 

gameman

It's been a long, long time.
Reaction score
96
This should be a tutorial... Not a snippet...

Its not long enough to be a tutorial.



Anyways this would seem so awesome if I was still completely into GUI, and didn't know this stuff.
Could you add a slide trigger as an example?
 
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