System Group Command System

PiCkstix

New Member
Reaction score
18
What is a group command system?

A system that you can use where one unit can control many others at once. For example, you order one unit to move to a point, with this, you order a whole group to do so without having to select every unit that you want to move.

How does it work?

Well, it basically works off abilities and Unit Groups. At the beginning you will set your unit group and with the abilities you can order the around. What IS important though is that you do set this unit group correctly, otherwise it can stuff it up completely.

What can I use it for?

Maps that use:
• Team groups
• A group of units that is parted together as one
• Commanding units without hassle

Why would I want to use it?

It can be useful in some maps, while absolutely useless in others. For example, if this were to be used in an AoS, there would be no point. But, if this was used in a map such as "Footman Frenzy" or maps of such, it would be much easier to play. It can also be useful as such because Warcraft restricts you to only selecting about 15 units at one time.

How do I use it?

Simple! Import it from the map attached.
Attached will be:
• Triggers
• Variables (please make sure that if you have "Automatically create unknown variables while pasting trigger data" checked, PLEASE MAKE SURE THAT YOU SET ALL ARRAYS TO THE AMOUNT OF PLAYERS IN THE MAP.

Code

Code:
Move
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Move 
    Actions
        Set P_Move[(Player number of (Owner of (Triggering unit)))] = (Target point of ability being cast)
        Unit Group - Pick every unit in UG_Troops[(Player number of (Owner of (Triggering unit)))] and do (Actions)
            Loop - Actions
                Unit - Order (Picked unit) to Move To P_Move[(Player number of (Owner of (Triggering unit)))]

Code:
AttackMove
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Attack-Move 
    Actions
        Set P_MoveAttack[(Player number of (Owner of (Triggering unit)))] = (Target point of ability being cast)
        Unit Group - Pick every unit in UG_Troops[(Player number of (Owner of (Triggering unit)))] and do (Actions)
            Loop - Actions
                Unit - Order (Picked unit) to Attack-Move To P_MoveAttack[(Player number of (Owner of (Triggering unit)))]

Code:
HoldGround
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Hold Ground 
    Actions
        Unit Group - Pick every unit in UG_Troops[(Player number of (Owner of (Triggering unit)))] and do (Actions)
            Loop - Actions
                Unit - Order (Picked unit) to Stop

Code:
Charge
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Charge 
    Actions
        Set P_Charge[(Player number of (Owner of (Triggering unit)))] = (Target point of ability being cast)
        Unit Group - Pick every unit in UG_Troops[(Player number of (Owner of (Triggering unit)))] and do (Actions)
            Loop - Actions
                Unit - Order (Picked unit) to Orc Troll Berserker - Berserk
                Unit - Order (Picked unit) to Move To P_Charge[(Player number of (Owner of (Triggering unit)))]
(*Optional, if you use this, please create an ability such as Bloodlust or Berserk)

Code:
Attack
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Attack 
    Actions
        Set U_Attack[(Player number of (Owner of (Triggering unit)))] = (Target unit of ability being cast)
        Unit Group - Pick every unit in UG_Troops[(Player number of (Owner of (Triggering unit)))] and do (Actions)
            Loop - Actions
                Unit - Order (Picked unit) to Attack U_Attack[(Player number of (Owner of (Triggering unit)))]

Setting Variables:

Code:
AddUnit
    Events
        Unit - A unit enters (Playable map area)
    Conditions
    Actions
        Unit Group - Add (Triggering unit) to UG_Troops[(Player number of (Owner of (Triggering unit)))]

OR / AND

Code:
AddUnit2
    Events
        Player - Player 1 (Red) skips a cinematic sequence
        Player - Player 2 (Blue) skips a cinematic sequence
        Player - Player 3 (Teal) skips a cinematic sequence
        Player - Player 4 (Purple) skips a cinematic sequence
        Player - Player 5 (Yellow) skips a cinematic sequence
        Player - Player 6 (Orange) skips a cinematic sequence
        Player - Player 7 (Green) skips a cinematic sequence
        Player - Player 8 (Pink) skips a cinematic sequence
    Conditions
    Actions
        Set UG_Troops[(Player number of (Triggering player))] = (Units currently selected by (Triggering player))

Have fun with it...
 

Attachments

  • Group Command System.w3x
    13.2 KB · Views: 170

Flare

Stops copies me!
Reaction score
662
1) Leaks. Using the Press Escape trigger will leak a UG, and you leaked locations in all the triggers associated with a movement order
2) Arrayed points... there's no sense in using arrayed points, since you don't need to get an account of the point for later, you just need it to give an order and get rid of it.
3) Why not just do:

Code:
Actions
    Unit Group - Pick every unit in (Units owned by (Owner of (Triggering unit))) and do (Actions)
        Loop - Actions

//I know it leaks, but it's just a quick example
//So much simpler than having arrayed groups and stuff like that
//This is assuming you don't use the ESC key trigger
 

PiCkstix

New Member
Reaction score
18
1. I don't know how to remove arrayed points. :rolleyes:
2. I know, I thought of that.
3. Hmmm, good point, but remember that not all the units are given the commands. Only which ones the player specifies.
 

Flare

Stops copies me!
Reaction score
662
1) Then don't use arrayed points unless you need to (arrayed points only need to be used when you need the point after some amount of time for example). With your triggers, arrayed points are just a waste of time and effort.

To remove the arrayed point, it is:


3) Did you read this part?
//This is assuming you don't use the ESC key trigger
 

Furberg

Ultra Cool Member
Reaction score
45
sweet system, probably gonna use it in some mass unit maps. :thup:

off-topic: i really love that guy that eats something on your picture. i wanna marry him!
 

darkRae

Ueki Fan (Ueki is watching you)
Reaction score
173
PiCkstix said:
But, if this was used in a map such as "Footman Frenzy" or maps of such, it would be much easier to play. It can also be useful as such because Warcraft restricts you to only selecting about 15 units at one time.

12 units.
 

Psiblade94122

In need of sleep
Reaction score
138
why not just use issued order? (disable and re-enable when issueing the order for the rest of the troops)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top