• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

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