• 💀 Happy Halloween! 💀 It's time to vote for the best terrain! Check out the entries to Hive's HD Terrain Contest #2 - Vampire Folklore.❗️Poll closes on November 14, 2023. 🔗Click here to cast your vote!
  • 🏆 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!
  • 🏆 HD Level Design Contest #1 is OPEN! Contestants must create a maze with at least one entry point, and at least one exit point. The map should be made in HD mode, and should not be openable in SD. Only custom models from Hive's HD model and texture sections are allowed. The only exceptions are DNC models and omnilights. This is mainly a visual and design oriented contest, not technical. The UI and video walkthrough rules are there to give everyone an equal shot at victory by standardizing how viewers see the terrain. 🔗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