[General] How todetect if a unit is not doing anything?

So I'm trying to make a good arrow key system. But there's a problem - because I use every 0.05 secs for it the animation resets very fast and it's not smoot - so I decided that maybe if there's tiem between the order move the animation will be OK. But I don't know how to detect if the unit has stopped moving. Any ideas?

By the way my triggers:
  • Forward Press
    • Events
      • Player - Player 1 (Red) Presses the Up Arrow key
      • Player - Player 2 (Blue) Presses the Up Arrow key
      • Player - Player 3 (Teal) Presses the Up Arrow key
      • Player - Player 4 (Purple) Presses the Up Arrow key
      • Player - Player 5 (Yellow) Presses the Up Arrow key
      • Player - Player 6 (Orange) Presses the Up Arrow key
      • Player - Player 7 (Green) Presses the Up Arrow key
      • Player - Player 8 (Pink) Presses the Up Arrow key
      • Player - Player 9 (Gray) Presses the Up Arrow key
      • Player - Player 10 (Light Blue) Presses the Up Arrow key
      • Player - Player 11 (Dark Green) Presses the Up Arrow key
      • Player - Player 12 (Brown) Presses the Up Arrow key
    • Conditions
    • Actions
      • Set MoveForward[(Player number of (Triggering player))] = True
  • Forward Release
    • Events
      • Player - Player 1 (Red) Releases the Up Arrow key
      • Player - Player 2 (Blue) Releases the Up Arrow key
      • Player - Player 3 (Teal) Releases the Up Arrow key
      • Player - Player 4 (Purple) Releases the Up Arrow key
      • Player - Player 5 (Yellow) Releases the Up Arrow key
      • Player - Player 6 (Orange) Releases the Up Arrow key
      • Player - Player 7 (Green) Releases the Up Arrow key
      • Player - Player 8 (Pink) Releases the Up Arrow key
      • Player - Player 9 (Gray) Releases the Up Arrow key
      • Player - Player 10 (Light Blue) Releases the Up Arrow key
      • Player - Player 11 (Dark Green) Releases the Up Arrow key
      • Player - Player 12 (Brown) Releases the Up Arrow key
    • Conditions
    • Actions
      • Set MoveForward[(Player number of (Triggering player))] = False
  • Right Press
    • Events
      • Player - Player 1 (Red) Presses the Right Arrow key
      • Player - Player 2 (Blue) Presses the Right Arrow key
      • Player - Player 3 (Teal) Presses the Right Arrow key
      • Player - Player 4 (Purple) Presses the Right Arrow key
      • Player - Player 5 (Yellow) Presses the Right Arrow key
      • Player - Player 6 (Orange) Presses the Right Arrow key
      • Player - Player 7 (Green) Presses the Right Arrow key
      • Player - Player 8 (Pink) Presses the Right Arrow key
      • Player - Player 9 (Gray) Presses the Right Arrow key
      • Player - Player 10 (Light Blue) Presses the Right Arrow key
      • Player - Player 11 (Dark Green) Presses the Right Arrow key
      • Player - Player 12 (Brown) Presses the Right Arrow key
    • Conditions
    • Actions
      • Set MoveRight[(Player number of (Triggering player))] = True
  • Right Release
    • Events
      • Player - Player 1 (Red) Releases the Right Arrow key
      • Player - Player 2 (Blue) Releases the Right Arrow key
      • Player - Player 3 (Teal) Releases the Right Arrow key
      • Player - Player 4 (Purple) Releases the Right Arrow key
      • Player - Player 5 (Yellow) Releases the Right Arrow key
      • Player - Player 6 (Orange) Releases the Right Arrow key
      • Player - Player 7 (Green) Releases the Right Arrow key
      • Player - Player 8 (Pink) Releases the Right Arrow key
      • Player - Player 9 (Gray) Releases the Right Arrow key
      • Player - Player 10 (Light Blue) Releases the Right Arrow key
      • Player - Player 11 (Dark Green) Releases the Right Arrow key
      • Player - Player 12 (Brown) Releases the Right Arrow key
    • Conditions
    • Actions
      • Set MoveRight[(Player number of (Triggering player))] = False
  • Left Press
    • Events
      • Player - Player 1 (Red) Presses the Left Arrow key
      • Player - Player 2 (Blue) Presses the Left Arrow key
      • Player - Player 3 (Teal) Presses the Left Arrow key
      • Player - Player 4 (Purple) Presses the Left Arrow key
      • Player - Player 5 (Yellow) Presses the Left Arrow key
      • Player - Player 6 (Orange) Presses the Left Arrow key
      • Player - Player 7 (Green) Presses the Left Arrow key
      • Player - Player 8 (Pink) Presses the Left Arrow key
      • Player - Player 9 (Gray) Presses the Left Arrow key
      • Player - Player 10 (Light Blue) Presses the Left Arrow key
      • Player - Player 11 (Dark Green) Presses the Left Arrow key
      • Player - Player 12 (Brown) Presses the Left Arrow key
    • Conditions
    • Actions
      • Set MoveLeft[(Player number of (Triggering player))] = True
  • Left Release
    • Events
      • Player - Player 1 (Red) Releases the Left Arrow key
      • Player - Player 2 (Blue) Releases the Left Arrow key
      • Player - Player 3 (Teal) Releases the Left Arrow key
      • Player - Player 4 (Purple) Releases the Left Arrow key
      • Player - Player 5 (Yellow) Releases the Left Arrow key
      • Player - Player 6 (Orange) Releases the Left Arrow key
      • Player - Player 7 (Green) Releases the Left Arrow key
      • Player - Player 8 (Pink) Releases the Left Arrow key
      • Player - Player 9 (Gray) Releases the Left Arrow key
      • Player - Player 10 (Light Blue) Releases the Left Arrow key
      • Player - Player 11 (Dark Green) Releases the Left Arrow key
      • Player - Player 12 (Brown) Presses the Left Arrow key
    • Conditions
    • Actions
      • Set MoveLeft[(Player number of (Triggering player))] = False
  • Arrows Move Trigger
    • Events
      • Time - Every 0.15 seconds of game time
    • Conditions
    • Actions
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • Set Facing[(Integer A)] = ((Facing of Racer[(Integer A)]) + 0.00)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • MoveLeft[(Integer A)] Equal to True
            • Then - Actions
              • Set Facing[(Integer A)] = ((Facing of Racer[(Integer A)]) + 5.00)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • MoveRight[(Integer A)] Equal to True
            • Then - Actions
              • Set Facing[(Integer A)] = ((Facing of Racer[(Integer A)]) - 5.00)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • MoveForward[(Integer A)] Equal to True
            • Then - Actions
              • Custom script: call RemoveLocation(udg_TempCurPos[GetForLoopIndexA()])
              • Custom script: call RemoveLocation(udg_TempMovePos[GetForLoopIndexA()])
              • Set TempCurPos[(Integer A)] = (Position of Racer[(Integer A)])
              • Set TempMovePos[(Integer A)] = (TempCurPos[(Integer A)] offset by 800.00 towards Facing[(Integer A)] degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Region 004 <gen> contains TempMovePos[(Integer A)]) Equal to False
                • Then - Actions
                  • Unit - Order Racer[(Integer A)] to Move To TempMovePos[(Integer A)]
                • Else - Actions
            • Else - Actions
              • Unit - Order Racer[(Integer A)] to Stop
              • Unit - Make Racer[(Integer A)] face Facing[(Integer A)] over 0.00 seconds
 
Top