# Facing and movement checking

Status
Not open for further replies.

#### psipenge

Level 4
Hey!
I have a problem in my project. I need to check if a unit is facing at another and if he is moving. Is it possible to do it?
I wanna do it as easily as possible. Plz help.
I give +rep if you helped.

#### Maker

Level 37
• (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°.

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)

#### psipenge

Level 4
• (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°.

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:

#### Saia_Djinn

Level 8
why you need dad for that?

w´hat i have to say is that dont use this single timer trigger to often coz the are bad for the performance

#### psipenge

Level 4
Thx for the help everyone!
And i don't need my dad for that, the pc where wc3 is installed is in the room where my dad slept.

Status
Not open for further replies.

Replies
3
Views
558
Replies
10
Views
1K
Replies
7
Views
941
Replies
2
Views
588
Replies
7
Views
839