• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Bunker System For WC3

Status
Not open for further replies.
Level 9
Joined
Mar 1, 2009
Messages
280
I am trying to create an actual bunker system for wc3

I've run in to a problem and now know the specifics.

I've tried 2 methods both using dummy units

I've tried putting the dummy unit inside the bunker but wasn't sure if i could get the sizing right when i pulled him out still maybe also giving 'Aloc' to loading unit didn't seem to work properly just made it invincible didn't make it unselectable or remove pathing.
  • Custom script: call UnitAddAbility( GetLoadedUnit(), 'Aloc' )
This didn't work as intended so did it differently.

I've decided that putting the dummy on the out side works best because I'm giving it 'Aloc' the locust ability to get to the center of the bunker and it works properly with LastCreatedUnit.
  • Custom script: call UnitAddAbilityBJ( 'Aloc', GetLastCreatedUnit() )

but i have a problem how do I select this Dummy unit(with Locust) upon unload? to remove the Dummy unit...

any one have an idea?

This is the Load Trigger:

  • Bunker Load
    • Events
      • Unit - A unit Is loaded into a transport
    • Conditions
      • And - All (Conditions) are true
        • Conditions
          • (Unit-type of (Transporting unit)) Equal to Bunker (dark iorn)
          • ((Loading unit) is A ranged attacker) Equal to True
    • Actions
      • Set VariableSet TempPoint = (Position of (Transporting unit))
      • Unit - Create 1 (Unit-type of (Loading unit)) for (Owner of (Loading unit)) at TempPoint facing Default building facing degrees
      • Unit Group - Add (Last created unit) to BunkersUnitGroup
      • Unit - Set Unit: (Last created unit)'s Real Field: Scaling Value ('usca') to Value: 0.10
      • Unit - Set Unit: (Last created unit)'s Real Field: Speed ('umvc') to Value: 0.00
      • Animation - Change (Last created unit)'s size to (1.00%, 1.00%, 1.00%) of its original size
      • Custom script: call UnitAddAbilityBJ( 'Aloc', GetLastCreatedUnit() )
      • Unit - Move (Last created unit) instantly to TempPoint
      • Custom script: call UnitRemoveAbility(GetLastCreatedUnit(), 'Amov')
      • Custom script: call RemoveLocation (udg_TempPoint)
This is the Unload Trigger:


  • Bunker Unload
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • And - All (Conditions) are true
        • Conditions
          • (Issued order) Equal to (Order(unload))
          • (Unit-type of (Ordered unit)) Equal to Bunker (dark iorn)
          • ((Target unit of issued order) is A ranged attacker) Equal to True
    • Actions
      • Set VariableSet TempPoint2 = (Position of (Ordered unit))
      • Unit Group - Pick every unit in (Random 1 units from (Units within 100.00 of TempPoint2 matching (((Level of MM Bunker Dummy Ability (All Dummy units) for (Matching unit)) Equal to 1) and ((Unit-type of (Matching unit)) Equal to (Unit-type of (Target unit of issued order)))).)) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Target unit of issued order) is A Hero) Equal to True
            • Then - Actions
              • Unit - Remove (Picked unit) from the game
            • Else - Actions
              • Do nothing
      • Custom script: call RemoveLocation (udg_TempPoint2)
 
Last edited:
Level 3
Joined
Feb 12, 2020
Messages
34
Hi, Im pretty new to the editor but I might have an idea.
The bunker mechanic is something of which the UI is only visible for the controlling player?

You just want it to be a load/unload mechanic? Or does the loading object have increased attack like in a tower/bunker?

Instead of using the given load/unload mechanic, you could maybe go like this;

First, create an ability called "name of 'enter bunker' ability"

Trigger1Unit1:
-unit casts "name of 'enter bunker' ability" within 100 range of bunker unit.
-triggering unit type = equal to unit 1
-remove triggering unit
-add (another custom ability) unload unit 1 ability to bunker unit.


Trigger 2:
-bunker unit casts ability
-ability equal to unload unit 1
-remove ability from bunker unit
-create unit 1 next to bunker unit.


Can this work? This way you will need a roster of abilities and quite some triggers but it might be cool :)
 
Level 9
Joined
Mar 1, 2009
Messages
280
I don't understand.

I've got the load and unload to work proper. But since the created dummy unit on the "out side" of the bunker needs to look like its sitting in the middle of the bunker i give that unit 'Aloc' the locust ability, once a unit is given 'Aloc' it can not be picked with in range by triggers or players.

i am trying to figure out how to select a unit with 'Aloc' OR some how give the created dummy the ability to be situated in the middle of a building and retain its ability to attack.
 
Level 9
Joined
Mar 1, 2009
Messages
280
uh, ok, but how do i use it? it can't be as simple as copy and past? and the system in very complex were do i plug in the variable value?

or is that already plugged in am i looking for a variable to plug in to my load and unload trigger using this system?
 
Last edited:
Level 9
Joined
Mar 1, 2009
Messages
280
Prodding it further i found their is a mechanism in their some were that causes mining gold to set off gold mine must be entangled.

soooo any one know how i would get that system to work for loading and unloading minions??
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,538
The Unit Indexer simply changes the custom value of each unit in your map to a unique value. It does this when the map starts and whenever a new unit is created.

And what is custom value? Custom value is a function that you can use even without a Unit Indexer:
  • Actions
    • Unit - Set the custom value of (Triggering unit) to 100
It's an Integer value that you can assign to a unit. Each unit has a default Custom Value of 0. You can set this value to represent whatever you want, that's why it's "custom". Why is this useful? Well, think of games like League of Legends that have stats such as Ability Power. Custom value can be used to mimic a stat like this. However, custom value has one major flaw, and that is that a unit can only have one custom value at a time.

But that's where the Unit Indexer comes into play. Instead of using the custom value to represent a single stat, we use the custom value as the Index [] for our Variables. This is a form of [Indexing] which allows you to have multiple versions of the same variable. If you're unsure of how Variable Arrays work you should look into it.

Anyway, here's some trigger examples:

In this one we're creating two Footman. Our 1st Footman is assigned an AbilityPower of 100, and our 2nd Footman is assigned an AbilityPower of 200. If at any point you want to reference this unit's Ability Power stat, all you have to do is get it's Custom Value and plug that into the Index for the AbilityPower[] variable.
  • Actions
    • Unit - Create 1 Footman for Player 1 (Red) at (Center of (Playable map area)) facing Default building facing degrees
    • Set VariableSet AbilityPower[(Custom value of (Last created unit))] = 100
    • Unit - Create 1 Footman for Player 1 (Red) at (Center of (Playable map area)) facing Default building facing degrees
    • Set VariableSet AbilityPower[(Custom value of (Last created unit))] = 200
Here's an example of a Kill Tracker as I like to call it. We're saving how many kills each unit has, something similar to what you'd see in Starcraft (Kills: #).
  • Kill Tracker
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • Set VariableSet KillTracker[(Custom value of (Killing unit))] = (KillTracker[(Custom value of (Killing unit))] + 1)
No two units have the same custom value, so each unit will have it's own unique KillTracker variable. Same goes for AbilityPower.

This can be used to save ANY variable-type to a unit, so you aren't limited to just saving Integers.

Here's an example pertaining to your Dummy issue.
  • Spell Example
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
    • Actions
      • Unit - Create 1 Dummy for (Triggering player) at (Position of (Triggering unit)) facing Default building facing degrees
      • Set VariableSet SpellDummy[(Custom value of (Triggering unit))] = (Last created unit)
We've now linked the Dummy to the casting unit (triggering unit). As long as we can reference the casting unit, we can also get it's SpellDummy. You can even do the opposite and store the Caster to the Dummy (Dummys will have their own unique custom value too). This way as long as you have access to ONE of these units, you will actually have access to both.
 
Last edited:

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,538
BunkerDummy[custom value of unloading unit] = BunkerDummy[custom value of loading unit]

The Dummy is linked to your loading/unloading unit. As long as you have access to that unit, you have access to the Dummy as well.

  • Unit - Remove BunkerDummy[(Custom value of (Triggering unit))] from the game
^Change triggering unit to the unloaded unit.
 
Last edited:
Level 9
Joined
Mar 1, 2009
Messages
280
well thank you I ended up using your custom value idea

Load Trigger
  • Bunker Load
    • Events
      • Unit - A unit Is loaded into a transport
    • Conditions
      • And - All (Conditions) are true
        • Conditions
          • (Unit-type of (Transporting unit)) Equal to Bunker (dark iorn)
          • ((Loading unit) is A ranged attacker) Equal to True
    • Actions
      • Set VariableSet TempPoint = (Position of (Transporting unit))
      • Unit - Create 1 (Unit-type of (Loading unit)) for (Owner of (Loading unit)) at TempPoint facing Default building facing degrees
      • Unit - Set the custom value of (Loading unit) to ((Custom value of (Loading unit)) + 1)
      • Unit - Set the custom value of (Last created unit) to (Custom value of (Loading unit))
      • Unit Group - Add (Last created unit) to BunkersUnitGroup
      • Unit - Set Unit: (Last created unit)'s Real Field: Scaling Value ('usca') to Value: 0.10
      • Unit - Set Unit: (Last created unit)'s Real Field: Speed ('umvc') to Value: 0.00
      • Animation - Change (Last created unit)'s size to (1.00%, 1.00%, 1.00%) of its original size
      • Custom script: call UnitAddAbilityBJ( 'Aloc', GetLastCreatedUnit() )
      • Unit - Move (Last created unit) instantly to TempPoint
      • Custom script: call UnitRemoveAbility(GetLastCreatedUnit(), 'Amov')
      • Custom script: call RemoveLocation (udg_TempPoint)
      • -------- Adding and setting StarSystem Abilities --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Loading unit) is A Hero) Equal to False
        • Then - Actions
          • Unit - Set level of Damage Bonus (all units) for (Last created unit) to (Level of Damage Bonus (all units) for (Loading unit))
          • Unit - Set level of Attack Speed Bonus (All Units) for (Last created unit) to (Level of Attack Speed Bonus (All Units) for (Loading unit))
        • Else - Actions
          • Do nothing

Unload
  • Bunker Unload
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • And - All (Conditions) are true
        • Conditions
          • (Issued order) Equal to (Order(unload))
          • (Unit-type of (Ordered unit)) Equal to Bunker (dark iorn)
          • ((Target unit of issued order) is A ranged attacker) Equal to True
    • Actions
      • Unit Group - Pick every unit in (Units owned by (Owner of (Target unit of issued order)) matching (((Unit-type of (Matching unit)) Equal to (Unit-type of (Target unit of issued order))) and ((((Matching unit) is in BunkersUnitGroup.) Equal to True) and ((Custom value of (Matching unit)) Equ and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Target unit of issued order) is A Hero) Equal to True
            • Then - Actions
              • Unit - Remove (Picked unit) from the game
            • Else - Actions
              • -------- Star System --------
              • Unit - Set level of Damage Bonus (all units) for (Target unit of issued order) to (Level of Damage Bonus (all units) for (Picked unit))
              • Unit - Set level of Attack Speed Bonus (All Units) for (Target unit of issued order) to (Level of Attack Speed Bonus (All Units) for (Picked unit))
              • Unit - Set level of Armor Bonus (All Units) for (Target unit of issued order) to (Level of Armor Bonus (All Units) for (Picked unit))
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Life Bonus (All Units 1) for (Picked unit)) Equal to 1
                • Then - Actions
                  • Unit - Add Life Bonus (All Units 1) to (Target unit of issued order)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Level of Life Bonus (All Units 2) for (Picked unit)) Equal to 1
                    • Then - Actions
                      • Unit - Add Life Bonus (All Units 2) to (Target unit of issued order)
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Level of Life Bonus (All Units 3) for (Picked unit)) Equal to 1
                        • Then - Actions
                          • Unit - Add Life Bonus (All Units 3) to (Target unit of issued order)
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Level of Life Bonus (All Units 4) for (Picked unit)) Equal to 1
                            • Then - Actions
                              • Unit - Add Life Bonus (All Units 4) to (Target unit of issued order)
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Level of Life Bonus (All Units 5) for (Picked unit)) Equal to 1
                                • Then - Actions
                                  • Unit - Add Life Bonus (All Units 5) to (Target unit of issued order)
                                • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Level of Life Bonus (All Units 6) for (Picked unit)) Equal to 1
                                    • Then - Actions
                                      • Unit - Add Life Bonus (All Units 6) to (Target unit of issued order)
                                    • Else - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Level of Life Bonus (All Units 7) for (Picked unit)) Equal to 1
                                        • Then - Actions
                                          • Unit - Add Life Bonus (All Units 7) to (Target unit of issued order)
                                        • Else - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • (Level of Life Bonus (All Units 8) for (Picked unit)) Equal to 1
                                            • Then - Actions
                                              • Unit - Add Life Bonus (All Units 8) to (Target unit of issued order)
                                            • Else - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • (Level of Life Bonus (All Units 9) for (Picked unit)) Equal to 1
                                                • Then - Actions
                                                  • Unit - Add Life Bonus (All Units 9) to (Target unit of issued order)
                                                • Else - Actions
                                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    • If - Conditions
                                                      • (Level of Life Bonus (All Units 10) for (Picked unit)) Equal to 1
                                                    • Then - Actions
                                                      • Unit - Add Life Bonus (All Units 10) to (Target unit of issued order)
                                                    • Else - Actions
                                                      • Do nothing
              • Unit - Remove (Picked unit) from the game
this works as intended now i'm trying to get the stand down ability to work
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,538
That's not going to work properly. Each unit will have the same custom value.

The Unit Indexer change's the custom value, you don't change it yourself.

Also, don't use "Do Nothing".

So with a Unit Indexer imported into your map it would look something like this:
  • Load
    • Events
      • Unit - A unit Is loaded into a transport
    • Conditions
    • Actions
      • Unit - Create 1 (Unit-type of (Loading unit)) for (Triggering player) at (Position of (Triggering unit)) facing Default building facing degrees
      • Set VariableSet BunkerDummy[(Custom value of (Loading unit))] = (Last created unit)
  • Unload
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • (Issued order) Equal to (Order(unload))
    • Actions
      • Unit - Remove BunkerDummy[(Custom value of (Target unit of issued order))] from the game
 
Last edited:
Level 9
Joined
Mar 1, 2009
Messages
280
each unit will have the same custom value?

when the unit is loaded it will receive a new custom value will it not? (it will just go up an number?) and the player will only be able to unload 1 at a time.

about your method and the indexer

BunkerDummy[custom value of unloading unit] = BunkerDummy[custom value of loading unit]

unloading unit isn't a thing so was this meant to be apart of a custom script?? when is it implemented at map initialization?
 
Last edited:

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,538
There isn't a literal "Unloading" unit, I was just referring to your unit that gets unloaded from the transport.

In your trigger's case, Target unit of issued order is the unit being unloaded.

I show this in my example trigger above.


Anyway, you're setting the custom value of each unit to 1, because the default custom value of a unit is 0.
So 0 + 1 = 1. And if you're using the Unit Indexer then you shouldn't be setting custom value at all.

The Unit Indexer assigns a unique custom value to each unit. If you edit custom value yourself it will screw everything up. What you do with a unit's custom value is use it as the Index [] in variable Arrays.

Look at my example trigger above:

If the Loading unit's custom value is 138, the Dummy will be saved as BunkerDummy[138].

Then when the "Unloading" unit (aka the Target unit of the issued order) is unloaded from the transport, BunkerDummy[138] will be removed.

Since the Unit Indexer gives each unit a unique Index, there won't be any conflicts with the Index [] in BunkerDummy. No two units will ever have the same custom value, so each unit will always have it's own BunkerDummy[#].
 
Last edited:
Level 9
Joined
Mar 1, 2009
Messages
280
I don't understand but the above method works... some how

this is for the stand down ability:
  • Bunker All Unload
    • Events
      • Unit - A unit Is issued an order with no target
    • Conditions
      • And - All (Conditions) are true
        • Conditions
          • (Issued order) Equal to (Order(stop))
          • ((Ordered unit) is in BunkerStandDownUnitGroup.) Equal to True
    • Actions
      • Unit Group - Pick every unit in (Units owned by (Owner of (Ordered unit)) matching (((Unit-type of (Matching unit)) Equal to (Unit-type of (Ordered unit))) and ((((Matching unit) is in BunkersUnitGroup.) Equal to True) and ((Custom value of (Matching unit)) Equal to (Custom value of (Ordere and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Ordered unit) is A Hero) Equal to True
            • Then - Actions
              • Unit - Remove (Picked unit) from the game
            • Else - Actions
              • -------- Star System --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Damage Bonus (all units) for (Loading unit)) Equal to 0
                • Then - Actions
                  • Unit - Add Damage Bonus (all units) to (Ordered unit)
                  • Custom script: call UnitMakeAbilityPermanent(GetOrderedUnit() , true, 'A0Z2')
                  • Unit - Add Armor Bonus (All Units) to (Ordered unit)
                  • Custom script: call UnitMakeAbilityPermanent(GetOrderedUnit() , true, 'A0Z3')
                  • Unit - Add Attack Speed Bonus (All Units) to (Ordered unit)
                  • Custom script: call UnitMakeAbilityPermanent(GetOrderedUnit() , true, 'A0Z5')
                • Else - Actions
              • Unit - Set level of Damage Bonus (all units) for (Ordered unit) to (Level of Damage Bonus (all units) for (Picked unit))
              • Unit - Set level of Attack Speed Bonus (All Units) for (Ordered unit) to (Level of Attack Speed Bonus (All Units) for (Picked unit))
              • Unit - Set level of Armor Bonus (All Units) for (Ordered unit) to (Level of Armor Bonus (All Units) for (Picked unit))
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Life Bonus (All Units 1) for (Picked unit)) Equal to 1
                • Then - Actions
                  • Unit - Add Life Bonus (All Units 1) to (Ordered unit)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Level of Life Bonus (All Units 2) for (Picked unit)) Equal to 1
                    • Then - Actions
                      • Unit - Add Life Bonus (All Units 2) to (Ordered unit)
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Level of Life Bonus (All Units 3) for (Picked unit)) Equal to 1
                        • Then - Actions
                          • Unit - Add Life Bonus (All Units 3) to (Ordered unit)
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Level of Life Bonus (All Units 4) for (Picked unit)) Equal to 1
                            • Then - Actions
                              • Unit - Add Life Bonus (All Units 4) to (Ordered unit)
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Level of Life Bonus (All Units 5) for (Picked unit)) Equal to 1
                                • Then - Actions
                                  • Unit - Add Life Bonus (All Units 5) to (Ordered unit)
                                • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Level of Life Bonus (All Units 6) for (Picked unit)) Equal to 1
                                    • Then - Actions
                                      • Unit - Add Life Bonus (All Units 6) to (Ordered unit)
                                    • Else - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Level of Life Bonus (All Units 7) for (Picked unit)) Equal to 1
                                        • Then - Actions
                                          • Unit - Add Life Bonus (All Units 7) to (Ordered unit)
                                        • Else - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • (Level of Life Bonus (All Units 8) for (Picked unit)) Equal to 1
                                            • Then - Actions
                                              • Unit - Add Life Bonus (All Units 8) to (Ordered unit)
                                            • Else - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • (Level of Life Bonus (All Units 9) for (Picked unit)) Equal to 1
                                                • Then - Actions
                                                  • Unit - Add Life Bonus (All Units 9) to (Ordered unit)
                                                • Else - Actions
                                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    • If - Conditions
                                                      • (Level of Life Bonus (All Units 10) for (Picked unit)) Equal to 1
                                                    • Then - Actions
                                                      • Unit - Add Life Bonus (All Units 10) to (Ordered unit)
                                                    • Else - Actions
                                                      • Do nothing
              • Unit - Remove (Picked unit) from the game
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,538
You don't need And - All (Conditions) are true in your Conditions. Conditions by default need to all be true (so they're treated as And already). Also, you don't need Do Nothing, it does literally nothing and I've heard it can cause problems.

But yes, a unit issues a "Stop" order when it is unloaded from a transport. I just assumed by your earlier trigger that Target unit of issued order + Issued order equal to Unload was working. I should've suggested this sooner as I literally made a system for it (bad memory)... [Solved] - How to Detect Units Unloaded with GUI?

I see you didn't go the Unit Indexer route, but stuck with the custom value approach. I still have to recommend using a Unit Indexer + Variables as this opens up the possibility to use Custom Value for as many different things as you want, instead of being limited to only 1.

Think of Custom Value as a stat similar to Life or Mana. It's a value stored to the unit. The Unit Indexer gives each unit a different value for this stat. So all of the units in your map will have different custom values.

This is useful for doing all sorts of things. In your case you basically mimicked the behavior of the Unit Indexer.

By giving the Dummy the same custom value as your loading unit, you paired those two units together because they're the only 2 units in the entire game with that custom value.
 
Last edited:
Status
Not open for further replies.
Top