Editor bug? Gradually turning.

OneBadPsycho

10100111001
Reaction score
93
Hello.

I have this trigger, which should "repel" or bounce an object moving into it:
Code:
Wall1
    Events
        Unit - A unit enters Bound 1 <gen>
    Conditions
        ((Entering unit) is in SpellUg) Equal to True
    Actions
        Set OLoc = (Position of (Entering unit))
        Set OAngle = (Facing of (Entering unit))
        Unit - Move (Entering unit) instantly to OLoc, facing (OAngle + (2.00 x (180.00 - OAngle))) degrees
        Custom script:   call RemoveLocation (udg_OLoc)
My problem is, whenever the unit hits the region/wall its placed on, it gradually bounces off, like this:
1211170221_1vn1DinA.jpg

instead of doing this:
1211170325_ndEYOJLj.jpg

(Got the math equation!)

I tried to make a trigger to test it, and it made the unit change facing angle gradually:
Code:
Untitled Trigger 001
    Events
        Player - Player 1 (Red) skips a cinematic sequence
    Conditions
    Actions
        Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
            Loop - Actions
                Unit - Make (Picked unit) face 90.00 over 0.00 seconds

So how can I fix this? How can I make the unit change facing angle instantly?

Any help is greatly appreciated! :)
 

Builder Bob

Live free or don't
Reaction score
249
The only way I know is to remove the unit from the game, and create a new one with the new facing angle. Not a very good option, I know.

Code:
Unit - Make (Picked unit) face 90.00 over 0.00 seconds
This action and all others that can change a unit's facing depends on the unit's turn speed for the actual turning.
 

OneBadPsycho

10100111001
Reaction score
93
Code:
Unit - Make (Picked unit) face 90.00 over 0.00 seconds
This action and all others that can change a unit's facing depends on the unit's turn speed for the actual turning.

Why didn't you say that before? :p
I made a trigger, which froze my War3 TFT: :D
Code:
Wall TEST
    Events
        Unit - A unit enters Bound 1 <gen>
    Conditions
        ((Entering unit) is in SpellUg) Equal to True
    Actions
        Set OLoc = (Position of (Entering unit))
        Set OAngle = (Facing of (Entering unit))
        Unit Group - Remove (Entering unit) from SpellUg
        Unit - Remove (Entering unit) from the game
        Unit - Create 1 (Unit-type of (Entering unit)) for (Owner of (Entering unit)) at OLoc facing (OAngle x (2.00 x (180.00 - OAngle))) degrees
        Unit Group - Add (Last created unit) to SpellUg
        Custom script:   call RemoveLocation (udg_OLoc)

EDIT: Garr, It doesn't work :(
-Any1 else got some suggestions?
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
> I made a trigger, which froze my War3 TFT

Seems normal.
You're creating a unit in a region that you wait for being entered. Endless loop...
 

trb92

Throwing science at the wall to see what sticks
Reaction score
142
Code:
Wall TEST
    Events
        Unit - A unit enters Bound 1 <gen>
    Conditions
        ((Entering unit) is in SpellUg) Equal to True
    Actions
        Set OLoc = (Position of (Entering unit))
        Set OAngle = (Facing of (Entering unit))
        Unit Group - Remove (Entering unit) from SpellUg
        Unit - Remove (Entering unit) from the game
[B]        Trigger - Turn Off (This Trigger)[/B]
        Unit - Create 1 (Unit-type of (Entering unit)) for (Owner of (Entering unit)) at OLoc facing (OAngle x (2.00 x (180.00 - OAngle))) degrees
[B]        Trigger - Turn Off (This Trigger)[/B]
        Unit Group - Add (Last created unit) to SpellUg
        Custom script:   call RemoveLocation (udg_OLoc)
Added bolded lines.
Edit: Beat, damnit.
 

OneBadPsycho

10100111001
Reaction score
93
Thanks, +rep! :thup:

EDIT: OH, FFS it doesn't work :p
-now i handed rep out too soon. Damn!
Then u guys was lucky, but please keep looking for a solution :p
 

trb92

Throwing science at the wall to see what sticks
Reaction score
142
Seems like overkill, but doing this works for me. Probably not the best way, but it works.
Takes two triggers
First, the one you already had but slightly changed(Can't refer to Entering Unit after it's removed).
Code:
Wall TEST
    Events
        Unit - A unit enters Bound 1 <gen>
    Conditions
        ((Entering unit) is in SpellUg) Equal to (==) True
    Actions
        Trigger - Turn off (This trigger)
        Set Oloc = (Position of (Entering unit))
        Set Oangle = (Facing of (Entering unit))
        Set Otype = (Unit-type of (Entering unit))
        Set Oplayer = (Owner of (Entering unit))
        Unit - Remove (Entering unit) from the game
        Unit - Create 1 Otype for Oplayer at Oloc facing [B](Oangle x (2.00 x (180.00 - Oangle))) [/B]degrees
        Unit Group - Add (Last created unit) to SpellUg
        Custom script:   call RemoveLocation(udg_Oloc)
So we turn it off, but if we add a Turn On This Trigger, the game freezes. This is the overkill part, at least it seems like that to me: We use a periodic trigger to check if it's off. If it is off, we turn it on.
Code:
Turn on
    Events
        Time - Every 0.03 seconds of game time
    Conditions
        (Wall TEST <gen> is on) Equal to (==) False
    Actions
        Trigger - Turn on Wall TEST <gen>

That works. However, you might want to recheck the angle formula. I believe I got the same as yours, and it doesn't always work how your picture shows it should.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top