How do I let a player select units he owns and make them explode/die on command?

vertigofx

New Member
Reaction score
0
As always, I apologize if this has been covered. I was unable to find it.

Basically, I want a player to be able to select one more units of his own and type a chat message (such as "kill") to make them explode/die.

I know how to do some of these things individually, but I can't figure out how to properly string them together.

Additionally, I have two teams with up to 4 players per team. If there is a way to do this without creating separate triggers for each of the 8 players, that would be optimal.

Thanks in advance.
 

Moradiae

TH.net Regular
Reaction score
14
emm..., not really sure about the "select one more units of his own" part, but if you are looking for executing action for selected unit owned by the player that type the message, then you need a condition that check for that somehow,

one possibility might be to pick every unit in a certain unit group (array of size 8) and do a condition check if picked unit belongs to triggering player, wait let me get the trigger of what I am trying to say here... =q

Trigger:
  • Add unit to selection group
    • Events
      • Player - Player 1 (Red) Selects a unit
      • Player - Player 2 (Blue) Selects a unit
      • Player - ....
      • Player - Player 8 (Pink) Selects a unit
    • Conditions
    • Actions
      • Unit Group - Add (Triggering unit) to temp_selection_group[(Player number of (Triggering player))]

Trigger:
  • Remove unit from selection group
    • Events
      • Player - Player 1 (Red) Deselects a unit
      • Player - Player 2 (Blue) Deselects a unit
      • Player - ....
      • Player - Player 8 (Pink) Deselects a unit
    • Conditions
    • Actions
      • Unit Group - Remove (Triggering unit) from temp_selection_group[(Player number of (Triggering player))]

Trigger:
  • Kill unit in temp selection group when type
    • Events
      • Player - Player 1 (Red) types a chat message containing kill as An exact match
      • Player - Player 2 (Blue) types a chat message containing kill as An exact match
      • Player - ...
      • Player - Player 8 (Pink) types a chat message containing kill as An exact match
    • Conditions
    • Actions
      • Unit Group - Pick every unit in temp_selection_group[(Player number of (Triggering player))] and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Owner of (Picked unit)) Equal to (Triggering player)
            • Then - Actions
              • Unit - Kill (Picked unit)
              • Unit Group - Remove (Triggering unit) from temp_selection_group[(Player number of (Triggering player))]
            • Else - Actions


haven't tested yet,
just remove leaks, and add your conditions and additional actions where you need them



=====edited



nevermind all that :p

there's
Trigger:
  • Unit Group - Pick every unit in (Units currently selected by (Triggering player)) and do (Actions)
    • Loop - Actions


so you just need the 3rd trigger above
 

TomTTT

New Member
Reaction score
44
Just as Moradiae (Hi!) said, just that it leaks.
Trigger:
  • Actions
    • Set TempGroup = (Units currently selected by (Triggering player))
    • Unit Group - Pick every unit in TempGroup and do (Actions)
      • Loop - Actions
        • Unit - Kill (Picked unit)
    • Custom Script - call DestroyGroup(udg_TempGroup)
 

Moradiae

TH.net Regular
Reaction score
14
(Hi :))

"Leak" is simply the term used for all the stuff that get used only once (or some N number of times) and then left unused
What happen is that all these "stuff" builds up over-time as more and more is created and "leaked" causing possible lag later on in the game

In this case, every time the trigger runs, we make a new Unit Group and do action with that unit group, so every time it runs, there will be a reference to a unit group that's left, so in order to remove them each time (as to stop possible lag later on in the game), we simply destroy that unit group when we finish using them :)
thus
Trigger:
  • Custom Script - call DestroyGroup(udg_TempGroup)


you can read more about removing leaks for different situation here and I am sure there're topics about leak that explains them better, and in a more accurate sense than I am :p
 
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