Transport position (trigger)

Level 1
Joined
Jan 18, 2013
Messages
5
Greetings.
I'd like to know how to freeze transport's position and facing angle while it's loading units. On my map AI units board the ship via walkable pier, but the ship, which is scaled to 2.00, always makes turns and overlaps the pier with parts of it's body, and this looks ugly. I need it to behave like it's counterpart in World of Warcraft. I already tried to pause the ship but then it refuses to load those units. And also, I don't like doing a trigger like "order ship to face 0.00 every 0.01 seconds", because the battle is going to be huge, and I'm afraid things like that would cause unnecessary lags. Is there an effective way?
 
Level 35
Joined
Mar 6, 2006
Messages
9,244
One thing to try is to use hidden channel ability (non hero ability, follow through time = 10000, disable other abilities = true, options - not visible). Order the unit to channel. Might work, might not.

Remove the ability from the unit when you want it to move again.
 
Level 1
Joined
Jan 18, 2013
Messages
5
You could try using the Chaos ability to transform the ship into one that cannot turn, and then back again when you want to move it.

I'm not sure how Chaos interacts with transports, though.

Did not work. It said "Unable to load" even when all marines had full access to the ship from all directions. The new unit was the exact copy of the original transport besides it being immobile.

One thing to try is to use hidden channel ability (non hero ability, follow through time = 10000, disable other abilities = true, options - not visible). Order the unit to channel. Might work, might not.

Remove the ability from the unit when you want it to move again.

Hmm... where is that channel ability? I only found one in "triggers>unit>issue order without target>special - channel" and none in spells/buffs. And it did not work. Is that about JASS scripting or something?
 
Level 35
Joined
Mar 6, 2006
Messages
9,244

  • PauseUnit
    • Events
      • Player - Player 1 (Red) skips a cinematic sequence
    • Conditions
    • Actions
      • Set u = Human Transport Ship 0000 <gen>
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Execution count of (This trigger)) mod 2) Equal to 1
        • Then - Actions
          • Custom script: call SetUnitPropWindow(udg_u, 0)
          • Custom script: call SetUnitTurnSpeed(udg_u, 0.00)
        • Else - Actions
          • Custom script: call SetUnitPropWindow(udg_u, GetUnitDefaultPropWindow(udg_u))
          • Custom script: call SetUnitTurnSpeed(udg_u, GetUnitDefaultTurnSpeed(udg_u))
  • Untitled Trigger 001
    • Events
      • Unit - A unit Is issued an order targeting an object
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order with no target
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Human Transport Ship
    • Actions
      • Trigger - Turn off (This trigger)
      • Unit - Make (Triggering unit) face 0.00 over 0.00 seconds
      • Trigger - Turn on (This trigger)
 

Attachments

  • SoftPauseUnit.w3x
    15.1 KB · Views: 41
Level 20
Joined
Mar 27, 2012
Messages
3,231
Depending on the load ability the transport or loaded unit must be able to move. The loaded unit always, transport depending on ability.

What you wanna do is use an ability like the one on orc burrow. Burrows don't move and yet they can still load, thus, it works.
 
Level 1
Joined
Jan 18, 2013
Messages
5

  • PauseUnit
    • Events
      • Player - Player 1 (Red) skips a cinematic sequence
    • Conditions
    • Actions
      • Set u = Human Transport Ship 0000 <gen>
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Execution count of (This trigger)) mod 2) Equal to 1
        • Then - Actions
          • Custom script: call SetUnitPropWindow(udg_u, 0)
          • Custom script: call SetUnitTurnSpeed(udg_u, 0.00)
        • Else - Actions
          • Custom script: call SetUnitPropWindow(udg_u, GetUnitDefaultPropWindow(udg_u))
          • Custom script: call SetUnitTurnSpeed(udg_u, GetUnitDefaultTurnSpeed(udg_u))
  • Untitled Trigger 001
    • Events
      • Unit - A unit Is issued an order targeting an object
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order with no target
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Human Transport Ship
    • Actions
      • Trigger - Turn off (This trigger)
      • Unit - Make (Triggering unit) face 0.00 over 0.00 seconds
      • Trigger - Turn on (This trigger)

Yeah it worked, big thanks! Although I don't know what you put in those custom scripts, I can make the whole thing work. I only hope it won't cause much additional lag when the battlefields get crowdy.

Depending on the load ability the transport or loaded unit must be able to move. The loaded unit always, transport depending on ability.

What you wanna do is use an ability like the one on orc burrow. Burrows don't move and yet they can still load, thus, it works.

Well, I tried that, but the burrows load only peons. I went to the spell editor and tried to modify the target value but it allows to choose only one unit type.
 
Level 20
Joined
Mar 27, 2012
Messages
3,231
Well, I tried that, but the burrows load only peons. I went to the spell editor and tried to modify the target value but it allows to choose only one unit type.[/QUOTE]

I think it's possible to copy-paste the value from another load ability. If not, then it's also possible to just copy the values from burrow and paste to something that loads more than peons.
 
Top