How to make an unmoving unit to face the target?

Insanewarlock

Active Member
Reaction score
2
So I have a unit which has 'Amov' disabled but still can attack a target. The problem is that it's facing angle won't change automatically since the 'Amov' ability is removed. (I need to make him unmovable like that to get rid of patrol/hold position/move buttons so using other methods is not considered) How do I make the unit to face the target he/she is attacking?

Probably I should use this action: "Unit - Make Unit Face Unit". The first unit is fixed but the other one (the target) must be a variable and what script can make it to vary? And what should be a condition and event?
 

vypur85

Hibernate
Reaction score
803
Code:
    Events
        Unit - A unit Is attacked
    Conditions
        (Current movement speed of (Attacking unit)) Equal to 0.00
    Actions
        Unit - Hide (Attacking unit)
        Unit - Make (Attacking unit) face (Triggering unit) over 0.00 seconds
        Unit - Unhide (Attacking unit)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Attacking unit) is selected by (Owner of (Attacking unit))) Equal to True
            Then - Actions
                Selection - Add (Attacking unit) to selection
            Else - Actions
This could be an alternative solution. But it will look... weird. Lol.
 

Insanewarlock

Active Member
Reaction score
2
Hey, thanks for replaying! :D It works! :D

But I have few problems and questions. :(

1. Unit - A unit Is attacked
I can only select a specific unit for that, can't sat a variable so it works only for 1 unit which I attack. While attacking others my unit is still facing away (if the target doesn't happen to be standing in front). And even if I put a variable there how should it vary according to is being attacked? This is the most important problem.

2. The attacking unit is still facing away while doing the first hit and then it rotates. This problem is not super important.

3. What are these for?:
(Current movement speed of (Attacking unit)) Equal to 0.00
and
If (All Conditions are True) then do (Then Actions) else do (Else Actions) If - Conditions ((Attacking unit) is selected by (Owner of (Attacking unit))) Equal to True Then - Actions Selection - Add (Attacking unit) to selection Else - Actions
It seems to be working exactly the same way without those parts.
 

vypur85

Hibernate
Reaction score
803
> I can only select a specific unit for that
There is no variable used here. The trigger works for every unit in the map.

> The attacking unit is still facing away while doing the first hit and then it rotates
No choice here. Because there is something called 'unit turn time'. The turn time animation for non movable units is disabled. So you can't see the animation until the unit is completely oriented at the direction of attacked unit.

> (Current movement speed of (Attacking unit)) Equal to 0.00
This is to make sure the trigger only works for units that have zero movement speed. It doesn't work on other units which have movement enabled (like your creeps and towers etc).

> ((Attacking unit) is selected by (Owner of (Attacking unit))) ....
The 'hide unit' line actually hides the attacking unit. And if you're currently selecting the unit, you'll lose the selection, which is weird. The line is to account for this.
 

Insanewarlock

Active Member
Reaction score
2
Oh I had selected "Unit - Specific Unit Event" instead of generic. Now everything makes sense and everything works! Thanks once again

One scary thing though. Towers rotate too while attacking XD So I shouldn't be using that kind of buildings on my map :? or what :(

Can I make a condition "Attacking unit not equal to building" or something like that?
 

vypur85

Hibernate
Reaction score
803
> Can I make a condition "Attacking unit not equal to building" or something like that?
Yeah. I kinda left out that possibility.

Use this:
Code:
    Events
        Unit - A unit Is attacked
    Conditions
        (Current movement speed of (Attacking unit)) Equal to 0.00
        (Attacking unit) is a Structure Equal to False <-- Boolean comparison
    Actions
        Unit - Hide (Attacking unit)
        Unit - Make (Attacking unit) face (Triggering unit) over 0.00 seconds
        Unit - Unhide (Attacking unit)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Attacking unit) is selected by (Owner of (Attacking unit))) Equal to True
            Then - Actions
                Selection - Add (Attacking unit) to selection
            Else - Actions
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top