Face angle while moving problem

KMDK

Cool Member
Reaction score
1
How do I make a unit move forward and turn left or right whenever I press the left or right key? I actually already made a trigger for it but it only seems to make the unit move forward...

And yes I did try changing the order of the triggers. Still the same results.

Help will be appreciated :D

Code:
Boat Control Right Player 1
    Events
        Player - Player 1 (Red) Presses the Right Arrow key
    Conditions
    Actions
        Set Transport_Boat_Group[1] = (Units in (Playable map area) matching (((Owner of (Matching unit)) Equal to Player 1 (Red)) and ((Unit-type of (Matching unit)) Equal to Transport Boat)))
        Unit Group - Pick every unit in Transport_Boat_Group[1] and do (Actions)
            Loop - Actions
                Set Transport_Boat_Point[1] = (Position of (Picked unit))
                Set Transport_Boat_Point[5] = (Transport_Boat_Point[1] offset by 1000.00 towards (Facing of (Picked unit)) degrees)
                Unit - Order (Picked unit) to Move To Transport_Boat_Point[5]
                Unit - Set (Picked unit) movement speed to ((Current movement speed of (Picked unit)) + 20.00)
                Unit - Make (Picked unit) face ((Facing of (Picked unit)) - 150.00) over 0.00 seconds
        Custom script:  call DestroyGroup(udg_Transport_Boat_Group[1])
        Custom script:  call RemoveLocation(udg_Transport_Boat_Point[1])
        Custom script:  call RemoveLocation(udg_Transport_Boat_Point[5])
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
Unfortunately i dont believe there is an option to detect wether a key is held, however, you can detect normal key presses with an event, im not sure if the event is available in GUI or if it is only in vJass, I would check up on it... I do know that the key press event is sort of laggy, there is some delay before the event is actually fired
 

xtian07

Member
Reaction score
2
When you are talking about that when holding the right arrow key, the boat will keep moving. Then do something like this.
Trigger:
  • First Trigger
    • Events
      • Player - Player 1 (Red) Presses the Right Arrow key
    • Conditions
    • Actions
      • Trigger - Turn on Third Trigger <gen>
      • -------- Put conditions if you want --------

Trigger:
  • Second Trigger
    • Events
      • Player - Player 1 (Red) Releases the Right Arrow key
    • Conditions
    • Actions
      • Trigger - Turn off Third Trigger <gen>

Trigger:
  • Third Trigger
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
    • Set Transport_Boat_Group[1] = (Units in (Playable map area) matching (((Owner of (Matching unit)) Equal to Player 1 (Red)) and ((Unit-type of (Matching unit)) Equal to Transport Boat)))
      • Unit Group - Pick every unit in Transport_Boat_Group[1] and do (Actions)
        • Loop - Actions
          • Set Transport_Boat_Point[1] = (Position of (Picked unit))
          • Set Transport_Boat_Point[5] = (Transport_Boat_Point[1] offset by 1000.00 towards (Facing of (Picked unit)) degrees)
          • Unit - Order (Picked unit) to Move To Transport_Boat_Point[5]
          • Unit - Set (Picked unit) movement speed to ((Current movement speed of (Picked unit)) + 20.00)
          • Unit - Make (Picked unit) face ((Facing of (Picked unit)) - 150.00) over 0.00 seconds
      • Custom script: call DestroyGroup(udg_Transport_Boat_Group[1])
      • Custom script: call RemoveLocation(udg_Transport_Boat_Point[1])
      • Custom script: call RemoveLocation(udg_Transport_Boat_Point[5])
      • -------- Uncheck the Initially On check box on this trigger --------

Hope this helps :D
 

KMDK

Cool Member
Reaction score
1
When you are talking about that when holding the right arrow key, the boat will keep moving. Then do something like this.
Trigger:
  • First Trigger
    • Events
    • Player - Player 1 (Red) Presses the Right Arrow key
    • Conditions
    • Actions
    • Trigger - Turn on Third Trigger <gen>
    • -------- Put conditions if you want --------

Trigger:
  • Second Trigger
    • Events
    • Player - Player 1 (Red) Releases the Right Arrow key
    • Conditions
    • Actions
    • Trigger - Turn off Third Trigger <gen>

Trigger:
  • Third Trigger
    • Events
    • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
    • Set Transport_Boat_Group[1] = (Units in (Playable map area) matching (((Owner of (Matching unit)) Equal to Player 1 (Red)) and ((Unit-type of (Matching unit)) Equal to Transport Boat)))
    • Unit Group - Pick every unit in Transport_Boat_Group[1] and do (Actions)
    • Loop - Actions
    • Set Transport_Boat_Point[1] = (Position of (Picked unit))
    • Set Transport_Boat_Point[5] = (Transport_Boat_Point[1] offset by 1000.00 towards (Facing of (Picked unit)) degrees)
    • Unit - Order (Picked unit) to Move To Transport_Boat_Point[5]
    • Unit - Set (Picked unit) movement speed to ((Current movement speed of (Picked unit)) + 20.00)
    • Unit - Make (Picked unit) face ((Facing of (Picked unit)) - 150.00) over 0.00 seconds
    • Custom script: call DestroyGroup(udg_Transport_Boat_Group[1])
    • Custom script: call RemoveLocation(udg_Transport_Boat_Point[1])
    • Custom script: call RemoveLocation(udg_Transport_Boat_Point[5])
    • -------- Uncheck the Initially On check box on this trigger --------

Hope this helps :D

Hmm doesnt seem to be working... All the boat does is move straight without increasing speed =))
 

xtian07

Member
Reaction score
2
Hmm doesnt seem to be working... All the boat does is move straight without increasing speed =))

Trigger:
  • Unit - Set (Picked unit) movement speed to ((Current movement speed of (Picked unit)) + 20.00)
This trigger that you are using only works until the unit reaches 400 movement speed. After that, you need to use other stuffs like Item movespeed bonus (or something like that) to increase a movement speed of a unit.
 

KMDK

Cool Member
Reaction score
1
Well yeah I know that, but my main issue isn't increasing the movement speed because that's already covered. It's that the boat won't turn at all :/
 

xtian07

Member
Reaction score
2
Try this set of triggers. It's composed of making your boats move using Up, Right and Left arrow keys
Trigger:
  • First Trigger Up
    • Events
      • Player - Player 1 (Red) Presses the Up Arrow key
    • Conditions
    • Actions
      • Trigger - Turn on Third Trigger Up <gen>

Trigger:
  • Second Trigger Up
    • Events
      • Player - Player 1 (Red) Releases the Up Arrow key
    • Conditions
    • Actions
      • Trigger - Turn off Third Trigger Up <gen>

Trigger:
  • Third Trigger Up
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • Set Transport_Boat_Group[1] = (Units in (Playable map area) matching (((Owner of (Matching unit)) Equal to Player 1 (Red)) and ((Unit-type of (Matching unit)) Equal to Transport Ship)))
      • Unit Group - Pick every unit in Transport_Boat_Group[1] and do (Actions)
        • Loop - Actions
          • Set Transport_Boat_Point[1] = (Position of (Picked unit))
          • Set Transport_Boat_Point[5] = (Transport_Boat_Point[1] offset by 100.00 towards (Facing of (Picked unit)) degrees)
          • Unit - Order (Picked unit) to Move To Transport_Boat_Point[5]
      • Custom script: call DestroyGroup(udg_Transport_Boat_Group[1])
      • Custom script: call RemoveLocation(udg_Transport_Boat_Point[1])
      • Custom script: call RemoveLocation(udg_Transport_Boat_Point[5])

Trigger:
  • First Trigger Right
    • Events
      • Player - Player 1 (Red) Presses the Right Arrow key
    • Conditions
    • Actions
      • Trigger - Turn on Third Trigger Right <gen>

Trigger:
  • Second Trigger Right
    • Events
      • Player - Player 1 (Red) Releases the Right Arrow key
    • Conditions
    • Actions
      • Trigger - Turn off Third Trigger Right <gen>

Trigger:
  • Third Trigger Right
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • Set Transport_Boat_Group[1] = (Units in (Playable map area) matching (((Owner of (Matching unit)) Equal to Player 1 (Red)) and ((Unit-type of (Matching unit)) Equal to Transport Ship)))
      • Unit Group - Pick every unit in Transport_Boat_Group[1] and do (Actions)
        • Loop - Actions
          • Set Transport_Boat_Point[1] = (Position of (Picked unit))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Integer((Facing of (Picked unit)))) Greater than or equal to 360
            • Then - Actions
              • Set Transport_Boat_Point[5] = (Transport_Boat_Point[1] offset by 100.00 towards 15.00 degrees)
            • Else - Actions
              • Set Transport_Boat_Point[5] = (Transport_Boat_Point[1] offset by 100.00 towards ((Facing of (Picked unit)) + 15.00) degrees)
          • Unit - Order (Picked unit) to Move To Transport_Boat_Point[5]
      • Custom script: call DestroyGroup(udg_Transport_Boat_Group[1])
      • Custom script: call RemoveLocation(udg_Transport_Boat_Point[1])
      • Custom script: call RemoveLocation(udg_Transport_Boat_Point[5])

Trigger:
  • First Trigger Left
    • Events
      • Player - Player 1 (Red) Presses the Left Arrow key
    • Conditions
    • Actions
      • Trigger - Turn on Third Trigger Left <gen>

Trigger:
  • Second Trigger Left
    • Events
      • Player - Player 1 (Red) Releases the Left Arrow key
    • Conditions
    • Actions
      • Trigger - Turn off Third Trigger Left <gen>

Trigger:
  • Third Trigger Left
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • Set Transport_Boat_Group[1] = (Units in (Playable map area) matching (((Owner of (Matching unit)) Equal to Player 1 (Red)) and ((Unit-type of (Matching unit)) Equal to Transport Ship)))
      • Unit Group - Pick every unit in Transport_Boat_Group[1] and do (Actions)
        • Loop - Actions
          • Set Transport_Boat_Point[1] = (Position of (Picked unit))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Integer((Facing of (Picked unit)))) Less than or equal to 0
            • Then - Actions
              • Set Transport_Boat_Point[5] = (Transport_Boat_Point[1] offset by 100.00 towards 345.00 degrees)
            • Else - Actions
              • Set Transport_Boat_Point[5] = (Transport_Boat_Point[1] offset by 100.00 towards ((Facing of (Picked unit)) - 15.00) degrees)
          • Unit - Order (Picked unit) to Move To Transport_Boat_Point[5]
      • Custom script: call DestroyGroup(udg_Transport_Boat_Group[1])
      • Custom script: call RemoveLocation(udg_Transport_Boat_Point[1])
      • Custom script: call RemoveLocation(udg_Transport_Boat_Point[5])

Note: All "Third Trigger" must be "Initially Off". Uncheck all their boxes in "Initially On".
Hope this helps :D

Edit: Here's the link for the map that I created for this triggers in case you got lost here.
http://www.mediafire.com/?g5bbofbxaujk9ap
 

KMDK

Cool Member
Reaction score
1
Wow, this is perfect!!! Not exactly what I was looking for but eh, it's good too. hahaha thanks man!! :D
 
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