How can I detect a unit being transported

Zealot

Member
Reaction score
11
The trigger won't add mana if the unit is loaded into the building that can hold it. It does work since it removes mana. So I believe the Condition is at fault here.
Trigger:
  • Set Villager_Choose = (Units in (Playable map area) matching ((Unit-type of (Matching unit)) Equal to Villager (Male)))
    • Unit Group - Pick every unit in Villager_Choose and do (Actions)
      • Loop - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • ((Picked unit) is being transported) Equal to True
          • Then - Actions
            • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) + 4.00)
            • Player - Add 2 to (Player((Integer A))) Current lumber
          • Else - Actions
            • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) - 0.50)
    • Custom script: call DestroyGroup (udg_Villager_Choose)

Disregard the addition of lumber.
 

Zealot

Member
Reaction score
11
i think that transported means 'unit in Goblin Zeppelin', not in a building ?_?
It's the goblin Zeppelin cargo and load ability applied to a building. Technically the unit is being "carried" by the building.
 

Wardonis

Cool Member
Reaction score
0
let me ask, the unit in the building. what is happening, why are your trying to trigger this? there may be a work around.

also, I think orc burrow would probably be better than zeppelin if your just trying to house units
 

Zealot

Member
Reaction score
11
let me ask, the unit in the building. what is happening, why are your trying to trigger this? there may be a work around.

also, I think orc burrow would probably be better than zeppelin if your just trying to house units

I want so that while the unit is inside the tent for it to regain mana instead of lose mana every few seconds. But I can't find a way to detect if the unit is inside the tent.
 

Wardonis

Cool Member
Reaction score
0
thats easy. use [pause/unpause unit] on load and unload. you wouldn't need to detect then mostly.

After going back through it here is what I found
--------------------------------------------------------------
load
Events
Unit - A unit Is loaded into a transport
Conditions
Load (Goblin Zeppelin) Equal to (Ability being cast)
Actions
Unit - Pause (Triggering unit)
----------------------------------------------------------------
unload
Events
Unit - A unit Is issued an order with no target
Conditions
(Issued order) Equal to (Order((Name of Unload (Air Transports))))
Actions
Unit - Unpause (Leaving unit)
-------------------------------------------------------------
now i sped through it really fast so i am 99.9% sure i missed stuff that could make it better.
 

Zealot

Member
Reaction score
11
But what does that have to do with detecting a unit that is currently inside a transport?
 

Mr.Tutorial

Hard in the Paint.
Reaction score
42
The trigger won't add mana if the unit is loaded into the building that can hold it. It does work since it removes mana. So I believe the Condition is at fault here.
Trigger:
  • Set Villager_Choose = (Units in (Playable map area) matching ((Unit-type of (Matching unit)) Equal to Villager (Male)))
    • Unit Group - Pick every unit in Villager_Choose and do (Actions)
    • Loop - Actions
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
    • ((Picked unit) is being transported) Equal to True
    • Then - Actions
    • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) + 4.00)
    • Player - Add 2 to (Player((Integer A))) Current lumber
    • Else - Actions
    • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) - 0.50)
    • Custom script: call DestroyGroup (udg_Villager_Choose)

Disregard the addition of lumber.

Why would you need a unit group? Why don't you just use a condition for unit-type?

Trigger:
  • Transport
    • Events
      • Unit - A unit Is loaded into a transport
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Loading unit)) Equal to Mountain King
        • Then - Actions
          • Unit - Set mana of (Loading unit) to ((Mana of (Loading unit)) + 4.00)
        • Else - Actions
          • Unit - Set mana of (Loading unit) to ((Mana of (Loading unit)) - 0.50)
 

Zealot

Member
Reaction score
11
Why would you need a unit group? Why don't you just use a condition for unit-type?

Trigger:
  • Transport
    • Events
    • Unit - A unit Is loaded into a transport
    • Conditions
    • Actions
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
    • (Unit-type of (Loading unit)) Equal to Mountain King
    • Then - Actions
    • Unit - Set mana of (Loading unit) to ((Mana of (Loading unit)) + 4.00)
    • Else - Actions
    • Unit - Set mana of (Loading unit) to ((Mana of (Loading unit)) - 0.50)

The trigger will only work WHEN the unit is loaded, I want it to work as long as the unit is inside the transport.
 

Mr.Tutorial

Hard in the Paint.
Reaction score
42
The trigger will only work WHEN the unit is loaded, I want it to work as long as the unit is inside the transport.

Ok. Well I think I have it. You can switch the triggers to fit your map style. I just used "Life" because footman obviously don't have mana.

But I tested this, and every 1 second of the game, the footman does lose HP every 1 second, unless he is in the zeppelin, then he gains +4 hp every 1 second while in the zeppelin.

Trigger:
  • Loaded
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Set UnitGroup = (Units in (Entire map) matching ((Unit-type of (Matching unit)) Equal to Footman))
      • Unit Group - Pick every unit in UnitGroup and do (Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - 1.00))
      • Custom script: call DestroyGroup (udg_UnitGroup)
      • Set UnitGroup = (Units owned by (Player((Player number of (Picked player)))) matching (((Matching unit) is being transported) Equal to True))
      • Unit Group - Pick every unit in UnitGroup and do (Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + 4.00))
      • Custom script: call DestroyGroup (udg_UnitGroup)

Try this out. If it's not what you want, I'll see what else I can do.
 
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