• 🏆 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!

Facing and movement checking

Status
Not open for further replies.
Level 37
Joined
Mar 6, 2006
Messages
9,240
  • (Cos((TempFacing - (Angle from MyPosition to TargetPosition)))) Greater than (Cos(30.00))
This can be used as a condition to check in your unit is facing another unit. Store the facing of your unit to TempFacing, your unit's location to MyPosistion and the unit's location you want to check to Target position. It checks whether the target is withing a cone shaped area, and the angle determines the width of the cone. Here it is 30°...well actually 60°.

Angles_4.jpg


The following trigger checks if your unit is moving:

  • Are We Moving
    • Events
      • Time - Every 0.30 seconds of game time
    • Conditions
    • Actions
      • Set TempLoc1 = (Position of MyUnit)
      • Wait 0.20 seconds
      • Set = TempLoc2 = (Position of MyUnit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Distance between TempLoc1 and TempLoc2 Greater than or equal to 1.00
        • Then - Actions
        • Else - Actions
And at the end use

call RemoveLocation(udg_TempLoc1)
call RemoveLocation(udg_TempLoc2)
 
Level 4
Joined
Jul 4, 2009
Messages
48
  • (Cos((TempFacing - (Angle from MyPosition to TargetPosition)))) Greater than (Cos(30.00))
This can be used as a condition to check in your unit is facing another unit. Store the facing of your unit to TempFacing, your unit's location to MyPosistion and the unit's location you want to check to Target position. It checks whether the target is withing a cone shaped area, and the angle determines the width of the cone. Here it is 30°...well actually 60°.

Angles_4.jpg


The following trigger checks if your unit is moving:

  • Are We Moving
    • Events
      • Time - Every 0.30 seconds of game time
    • Conditions
    • Actions
      • Set TempLoc1 = (Position of MyUnit)
      • Wait 0.20 seconds
      • Set = TempLoc2 = (Position of MyUnit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Distance between TempLoc1 and TempLoc2 Greater than or equal to 1.00
        • Then - Actions
        • Else - Actions
And at the end use

call RemoveLocation(udg_TempLoc1)
call RemoveLocation(udg_TempLoc2)

Thx, i will try it as soon as my father gets up from the bed and i can get to the pc where wc3 is installed!
EDIT: Works perfect, +rep.
 
Last edited:
Status
Not open for further replies.
Top