- Joined
- Feb 17, 2009
- Messages
- 291
So I downloaded an arrow key system recently, and I modified it just a bit. I've been refining it more and more but there's one problem - sometimes you'll get a key stuck pushed down until you press it again. I'll show a couple of the triggers here so you can get an idea. Refer to the test map for the remaining directions. All four of the arrow keys are capable of getting stuck. I can't detect a pattern, though pressing them quickly makes it more likely 
Also if it's possible to edit the Down key with this system to make them backpedal instead of turning aroud 180 degrees, I will rep you long time. I'm new to the "proper" way of doing arrow keys around here
Also if it's possible to edit the Down key with this system to make them backpedal instead of turning aroud 180 degrees, I will rep you long time. I'm new to the "proper" way of doing arrow keys around here
-
PressSetup
-
Events
-
Conditions
-
Actions
-
-------- THE DISTANCE THE ORDERED UNIT WILL BE ORDERED, THIS DOESNT REALLY MATTER --------
-
Set C3D_OrderedDistance = 255
-
-------- I SUGGEST TO KEEP "NEXTMOVETIME" AT .25 --------
-
Set C3D_NextMoveTime = 0.20
-
-
-
Up 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 C3D_UpDown[(Player number of (Triggering player))] = True
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
C3D_LeftDown[(Player number of (Triggering player))] Equal to True
-
-
Then - Actions
-
Set C3D_PointDegrees[(Player number of (Triggering player))] = ((Integer((Facing of Heroes_onevariable[(Player number of (Triggering player))]))) + 35)
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
C3D_RightDown[(Player number of (Triggering player))] Equal to True
-
-
Then - Actions
-
Set C3D_PointDegrees[(Player number of (Triggering player))] = ((Integer((Facing of Heroes_onevariable[(Player number of (Triggering player))]))) - 35)
-
-
Else - Actions
-
Set C3D_PointDegrees[(Player number of (Triggering player))] = (Integer((Facing of Heroes_onevariable[(Player number of (Triggering player))])))
-
-
-
-
-
Set C3D_MovePosition = (Position of Heroes_onevariable[(Player number of (Triggering player))])
-
Set C3D_ActualPosition = (C3D_MovePosition offset by (Real(C3D_OrderedDistance)) towards (Real(C3D_PointDegrees[(Player number of (Triggering player))])) degrees)
-
Unit - Order Heroes_onevariable[(Player number of (Triggering player))] to Move To C3D_ActualPosition
-
Custom script: call RemoveLocation(udg_C3D_MovePosition)
-
Custom script: call RemoveLocation(udg_C3D_ActualPosition)
-
Countdown Timer - Start C3D_CheckTimer[(Player number of (Triggering player))] as a Repeating timer that will expire in C3D_NextMoveTime seconds
-
-
-
Up 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 C3D_UpDown[(Player number of (Triggering player))] = False
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
C3D_LeftDown[(Player number of (Triggering player))] Equal to True
-
-
Then - Actions
-
Set C3D_PointDegrees[(Player number of (Triggering player))] = ((Integer((Facing of Heroes_onevariable[(Player number of (Triggering player))]))) + 30)
-
Set C3D_MovePosition = ((Position of Heroes_onevariable[(Player number of (Triggering player))]) offset by (Real(C3D_OrderedDistance)) towards (Real(C3D_PointDegrees[(Player number of (Triggering player))])) degrees)
-
Unit - Order Heroes_onevariable[(Player number of (Triggering player))] to Move To C3D_MovePosition
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
C3D_RightDown[(Player number of (Triggering player))] Equal to True
-
-
Then - Actions
-
Set C3D_PointDegrees[(Player number of (Triggering player))] = ((Integer((Facing of Heroes_onevariable[(Player number of (Triggering player))]))) - 30)
-
Set C3D_MovePosition = ((Position of Heroes_onevariable[(Player number of (Triggering player))]) offset by (Real(C3D_OrderedDistance)) towards (Real(C3D_PointDegrees[(Player number of (Triggering player))])) degrees)
-
Unit - Order Heroes_onevariable[(Player number of (Triggering player))] to Move To C3D_MovePosition
-
-
Else - Actions
-
-
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
C3D_DownDown[(Player number of (Triggering player))] Equal to False
-
C3D_LeftDown[(Player number of (Triggering player))] Equal to False
-
C3D_RightDown[(Player number of (Triggering player))] Equal to False
-
C3D_UpDown[(Player number of (Triggering player))] Equal to False
-
-
Then - Actions
-
Unit - Order Heroes_onevariable[(Player number of (Triggering player))] to Stop
-
Countdown Timer - Pause C3D_CheckTimer[(Player number of (Triggering player))]
-
Set C3D_MovePosition = (Position of Heroes_onevariable[(Player number of (Triggering player))])
-
-
Else - Actions
-
-
Custom script: call RemoveLocation(udg_C3D_MovePosition)
-
-
-
Red Timer
-
Events
-
Time - C3D_CheckTimer[1] expires
-
-
Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
C3D_UpDown[(Player number of (Triggering player))] Equal to False
-
C3D_LeftDown[(Player number of (Triggering player))] Equal to True
-
C3D_RightDown[(Player number of (Triggering player))] Equal to False
-
C3D_DownDown[(Player number of (Triggering player))] Equal to False
-
-
Then - Actions
-
Set C3D_PointDegrees[(Player number of (Triggering player))] = (C3D_PointDegrees[(Player number of (Triggering player))] + 30)
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
C3D_UpDown[(Player number of (Triggering player))] Equal to False
-
C3D_LeftDown[(Player number of (Triggering player))] Equal to False
-
C3D_RightDown[(Player number of (Triggering player))] Equal to True
-
C3D_DownDown[(Player number of (Triggering player))] Equal to False
-
-
Then - Actions
-
Set C3D_PointDegrees[(Player number of (Triggering player))] = (C3D_PointDegrees[(Player number of (Triggering player))] - 30)
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
C3D_UpDown[(Player number of (Triggering player))] Equal to True
-
C3D_LeftDown[(Player number of (Triggering player))] Equal to True
-
C3D_RightDown[(Player number of (Triggering player))] Equal to False
-
C3D_DownDown[(Player number of (Triggering player))] Equal to False
-
-
Then - Actions
-
Set C3D_PointDegrees[(Player number of (Triggering player))] = (C3D_PointDegrees[(Player number of (Triggering player))] + 10)
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
C3D_UpDown[(Player number of (Triggering player))] Equal to True
-
C3D_LeftDown[(Player number of (Triggering player))] Equal to False
-
C3D_RightDown[(Player number of (Triggering player))] Equal to True
-
C3D_DownDown[(Player number of (Triggering player))] Equal to False
-
-
Then - Actions
-
Set C3D_PointDegrees[(Player number of (Triggering player))] = (C3D_PointDegrees[(Player number of (Triggering player))] - 10)
-
-
Else - Actions
-
-
-
-
-
-
-
-
Set C3D_MovePosition = (Position of Heroes_onevariable[1])
-
Set C3D_ActualPosition = (C3D_MovePosition offset by (Real(C3D_OrderedDistance)) towards (Real(C3D_PointDegrees[1])) degrees)
-
Unit - Order Heroes_onevariable[1] to Move To C3D_ActualPosition
-
Custom script: call RemoveLocation(udg_C3D_MovePosition)
-
Custom script: call RemoveLocation(udg_C3D_ActualPosition)
-
-