Count units in group and show how many of each type

Rainther

I guess I should write something of value here...
Reaction score
61
I'm afraid it doesn't fully. Are you looking for a function to do such?

So you want a function that gives out like "This group contains of 2 Footmans and 3 Riflemans"?
 

Rainther

I guess I should write something of value here...
Reaction score
61
Would you like to have it in GUI or Jass? Please say vJass ;D
 

Gtam

Lerning how to write and read!! Yeah.
Reaction score
164
Sry but unfortanly i need it in GUI
 

Rainther

I guess I should write something of value here...
Reaction score
61
Oh god, don't even know where I'm supposed to start in GUI.

If anyone else might wish to help that's better in GUI I'd welcome those.
 

jwallstone

New Member
Reaction score
33
Here's something I already wrote in jass for my own map that does something similar.
You'll need an integer array called udg_unitTypeCount. Instead of testing for flying/melee etc as I was doing replace it with GetUnitTypeId(testunit) == 'hfoo' or whatever unit type you're testing for.

JASS:

function CategorizeGroupEnum takes nothing returns nothing
    local unit testunit = GetEnumUnit()
    
    set bj_groupCountUnits = bj_groupCountUnits + 1
    if IsUnitType(testunit, UNIT_TYPE_FLYING) then
        set udg_unitTypeCount[3] = udg_unitTypeCount[3] + 1
    elseif IsUnitType(testunit, UNIT_TYPE_MELEE_ATTACKER) then
        set udg_unitTypeCount[0] = udg_unitTypeCount[0] + 1
    elseif GetUnitState(testunit, UNIT_STATE_MAX_MANA) >= 200 then
        set udg_unitTypeCount[2] = udg_unitTypeCount[2] + 1
    elseif IsUnitType(testunit, UNIT_TYPE_RANGED_ATTACKER) then
        set udg_unitTypeCount[1] = udg_unitTypeCount[1] + 1
    endif
    
    if IsUnitType(testunit, UNIT_TYPE_ATTACKS_FLYING) then
        set udg_unitTypeCount[6] = udg_unitTypeCount[6] + 1
    else
        set udg_unitTypeCount[5] = udg_unitTypeCount[5] + 1
    endif
    set testunit = null
endfunction

function CategorizeGroup takes group testGroup returns nothing
    set bj_groupCountUnits = 0
    set udg_unitTypeCount[0] = 0
    set udg_unitTypeCount[1] = 0
    set udg_unitTypeCount[2] = 0
    set udg_unitTypeCount[3] = 0
    set udg_unitTypeCount[4] = 0
    set udg_unitTypeCount[5] = 0
    set udg_unitTypeCount[6] = 0
    call ForGroup(testGroup, function CategorizeGroupEnum)
endfunction
 

Gtam

Lerning how to write and read!! Yeah.
Reaction score
164
No i wan when a player types bla it displays how many of each unittype he has currently selected
 

SnowCrow

New Member
Reaction score
7
No i wan when a player types bla it displays how many of each unittype he has currently selected

Trigger:
  • Count Units
    • Events
      • Player - Player 1 (Red) types a chat message containing -footmen as An exact match
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        • Loop - Actions
          • Set UnitCountInteger = (Number of units in (Units owned by Player 1 (Red) matching ((Unit-type of (Matching unit)) Equal to Footman)))
          • Game - Display to (All players) for 15.00 seconds the text: (You control + ((String(UnitCountInteger)) + Footmen.))


Is this what you want?
 

Gtam

Lerning how to write and read!! Yeah.
Reaction score
164
No if he types some thing i want it to display how many unit of each type in the currently selected units
 

SnowCrow

New Member
Reaction score
7
No if he types some thing i want it to display how many unit of each type in the currently selected units

So like if I select a group of units in game, like 4 ghouls, 4 footmen and 4 grunts, and type -units the trigger would say that I have selected those units?
 

SnowCrow

New Member
Reaction score
7
Damn, my triggering skills aren't enough then. :D Sorry, but I can't help with this any further.
Hope someone finds a way to do it.
 

Asdfblah1

New Member
Reaction score
10
Trigger:
  • asdf
    • Events
    • Conditions
    • Actions
      • Set Temp_Group = (Units of type Footman)
      • Set Temp_String = <Empty String>
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is selected by (Triggering player)) Equal to True
            • Then - Actions
              • Set Temp_Integer = (Temp_Integer + 1)
            • Else - Actions
              • Do nothing
      • Set Temp_String = ((String(Temp_Integer)) + ( + (Name of (Random unit from Temp_Group))))
      • Custom script: call DestroyGroup(udg_Temp_Group)
      • Set Temp_Group = (Units of type Knight)
      • Set Temp_Integer = 0
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is selected by (Triggering player)) Equal to True
            • Then - Actions
              • Set Temp_Integer = (Temp_Integer + 1)
            • Else - Actions
              • Do nothing
      • Set Temp_String = (Temp_String + (, + ((String(Temp_Integer)) + ( + (Name of (Random unit from Temp_Group))))))
      • Custom script: call DestroyGroup(udg_Temp_Group)
      • Game - Display to (Player group((Triggering player))) the text: Temp_String
 

Gtam

Lerning how to write and read!! Yeah.
Reaction score
164
That will require way to many action if its for all the unit types but thx any way. Any other suggestions
 

Asdfblah1

New Member
Reaction score
10
Then intialize the unit types into an array and do a little loop...I don't see how the command helps anyways. A player can only select 12 units and when selected it even shows them all with pretty pictures.
 

tmow

New Member
Reaction score
7
yeap its a bunch of if/then/else functions and variables....depending on how many diffrent types you have...the more u have the harder its gonna be..
 

Gtam

Lerning how to write and read!! Yeah.
Reaction score
164
This system im creating doesnt just show how many units in a unit group but does variour other things but i want to display him the units first to double check its the units he want to use
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    New recipe is another summer dessert Berry and Peach Cheesecake - https://www.thehelper.net/threads/recipe-berry-and-peach-cheesecake.194169/

      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