• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Move unit facing direction problem

Status
Not open for further replies.
Level 3
Joined
Feb 18, 2009
Messages
38
Hello, i need some help with a facing problem:

the problem is in the second trigger, but i posted the first too

first i had the variable facing not being an array, but when i tested my map with 2 players it got bugged, so i need to have a facing for every player.

in this trigger im setting facing[player number of picked player] to 180 degrees, but the problem comes in the next trigger
  • Left
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Player Group - Pick every player in numberofplayers and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • left[(Player number of (Picked player))] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (left <gen> contains converter[(Player number of (Picked player))]) Equal to True
                • Then - Actions
                  • Set tmp_group = (Player group((Picked player)))
                  • Game - Display to tmp_group the text: You can't jump left...
                  • Custom script: call DestroyForce(udg_tmp_group)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                    • Then - Actions
                      • Set tmp_point2 = (Position of converter[(Player number of (Picked player))])
                      • Set tmp_point = (tmp_point2 offset by 128.00 towards 180.00 degrees)
                      • Destructible - Pick every destructible in (Region centered at tmp_point with size (128.00, 128.00)) and do (Actions)
                        • Loop - Actions
                          • Custom script: call RemoveLocation (udg_tmp_point)
                          • Set tmp_point = (Position of (Picked destructible))
                          • Destructible - Remove (Picked destructible)
                      • Set JDA_JumpHigh_Distance = 1.00
                      • Set JDA_DestroyTrees_Dash = False
                      • Set JDA_Collusion = False
                      • Set JDA_TargetPoint = tmp_point
                      • Set JDA_Unit = converter[(Player number of (Picked player))]
                      • Set JDA_Speed = 5.00
                      • Set JDA_SpecialEffect = <Empty String>
                      • Set JDA_Animation = walk
                      • Set JDA_AnimationSpeed = 0.10
                      • Set facing[(Player number of (Picked player))] = 180.00
                      • Trigger - Run Jump System 1 <gen> (checking conditions)
                      • Custom script: call RemoveLocation (udg_tmp_point)
                      • Set tmp_point = (tmp_point2 offset by 128.00 towards 180.00 degrees)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked player) Equal to Player 1 (Red)
                        • Then - Actions
                          • Destructible - Create a Red at tmp_point facing 0.00 with scale 1.00 and variation 0
                        • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked player) Equal to Player 2 (Blue)
                        • Then - Actions
                          • Destructible - Create a Blue at tmp_point facing 0.00 with scale 1.00 and variation 0
                        • Else - Actions
                      • Custom script: call RemoveLocation (udg_tmp_point2)
                      • Custom script: call RemoveLocation (udg_tmp_point)
                    • Else - Actions
            • Else - Actions
  • Jump System 2
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • For each (Integer JD_Integers[3]) from 1 to JD_Integers[2], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (JD_Unit[JD_Integers[3]] is in JD_Group) Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • JD_ReachedDistance[JD_Integers[3]] Less than JD_Distances[JD_Integers[3]]
                • Then - Actions
                  • Animation - Queue JD_Unit[JD_Integers[3]]'s JD_Animations[JD_Integers[3]] animation
                  • Set JD_TempPoint[1] = (Position of JD_Unit[JD_Integers[3]])
                  • Set JD_TempPoint[2] = (JD_TempPoint[1] offset by JD_SpeedUnits[JD_Integers[3]] towards JD_Angle[JD_Integers[3]] degrees)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • JD_TreesDestroy[JD_Integers[3]] Equal to True
                    • Then - Actions
                      • Destructible - Pick every destructible within 150.00 of JD_TempPoint[2] and do (Destructible - Kill (Picked destructible))
                    • Else - Actions
                  • Unit - Move JD_Unit[JD_Integers[3]] instantly to JD_TempPoint[2], facing Direction degrees
                  • Set JD_ReachedDistance[JD_Integers[3]] = (JD_ReachedDistance[JD_Integers[3]] + JD_SpeedUnits[JD_Integers[3]])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Random integer number between 1 and 5) Equal to 1
                    • Then - Actions
                      • Special Effect - Create a special effect attached to the chest of JD_Unit[JD_Integers[3]] using JD_Effect[JD_Integers[3]]
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                  • Set JD_RealTimer[JD_Integers[3]] = (JD_RealTimer[JD_Integers[3]] + (180.00 / (JD_Distances[JD_Integers[3]] / JD_SpeedUnits[JD_Integers[3]])))
                  • Set JD_JumpHigh[JD_Integers[3]] = ((Sin(JD_RealTimer[JD_Integers[3]])) x JD_HighSettings[JD_Integers[3]])
                  • Animation - Change JD_Unit[JD_Integers[3]] flying height to JD_JumpHigh[JD_Integers[3]] at 1000000000.00
                  • Custom script: call RemoveLocation (udg_JD_TempPoint[1])
                  • Custom script: call RemoveLocation (udg_JD_TempPoint[2])
                • Else - Actions
                  • Unit Group - Remove JD_Unit[JD_Integers[3]] from JD_Group
                  • Animation - Change JD_Unit[JD_Integers[3]]'s animation speed to 100.00% of its original speed
                  • Animation - Reset JD_Unit[JD_Integers[3]]'s animation
                  • Set JD_RealTimer[JD_Integers[3]] = 0.00
                  • Set JD_Integers[1] = (JD_Integers[1] - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • JD_Integers[1] Equal to 0
                    • Then - Actions
                      • Set JD_Integers[2] = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
            • Else - Actions
do you see that disabled action? it lacks a direction since i changed the facing to an array.. but i dont know how to make this work for every player..

could somebody tell me how i can make the unit face the right direction, which means a unit owned by player 4 should face the direction facing[player 4]..
 
Level 15
Joined
Oct 16, 2010
Messages
941
I only took a quick look at your code, but i figure i'll take a stab in the dark and see if it hits.

Is this what you want?

  • Unit - Move JD_Unit[JD_Integers[3]] instantly to JD_TempPoint[2], facing facing[(Player number of (Owner of JD_Unit[JD_Integers[3]]))] degrees
 
Level 3
Joined
Feb 18, 2009
Messages
38
I only took a quick look at your code, but i figure i'll take a stab in the dark and see if it hits.

Is this what you want?

  • Unit - Move JD_Unit[JD_Integers[3]] instantly to JD_TempPoint[2], facing facing[(Player number of (Owner of JD_Unit[JD_Integers[3]]))] degrees


No, change [(Player number of (Owner of JD_Unit[JD_Integers[3]]))] to just [JD_Integers[3]]. Can't you see all the other arrays, like Set JD_RealTimer[JD_Integers[3]] = 0.00 use JD_Integers[3] as the index?

i dont know, i didnt make the jump system, here is the jump system

i will try both solutions as soon as i get home
 
Level 3
Joined
Feb 18, 2009
Messages
38
No, change [(Player number of (Owner of JD_Unit[JD_Integers[3]]))] to just [JD_Integers[3]]. Can't you see all the other arrays, like Set JD_RealTimer[JD_Integers[3]] = 0.00 use JD_Integers[3] as the index?

I only took a quick look at your code, but i figure i'll take a stab in the dark and see if it hits.

Is this what you want?

  • Unit - Move JD_Unit[JD_Integers[3]] instantly to JD_TempPoint[2], facing facing[(Player number of (Owner of JD_Unit[JD_Integers[3]]))] degrees

i tested both solutions, and thanks raven0, your solution worked!
 
Status
Not open for further replies.
Top