• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Pick Unit group without dead units, how ? bugged.

Level 6
Joined
Jul 2, 2013
Messages
156
Hello, I basically pick a unit group and no matter how I try to filter the dead units, it NEVER works. Is this a known bug?
I've tried so far,
1) Matching unit is dead equal to true
2) Matching unit
is alive equal to false
3) Matching unit life greater than 1 equal to true
4) Pick all units in the first group and remove dead units from that group. Nope still doesnt work.
 
Level 6
Joined
Jul 2, 2013
Messages
156
Ok I just tested in reforged and works fine. The bug seems to happen on 1.27 patch of wc3, basically if u add 2 matching conditions to a unit group, the dead/alive condition never works. Super weird bug. If u have ONLY 1 matching condition, will work fine. Again, super weird.
 
Ok I just tested in reforged and works fine. The bug seems to happen on 1.27 patch of wc3, basically if u add 2 matching conditions to a unit group, the dead/alive condition never works. Super weird bug. If u have ONLY 1 matching condition, will work fine. Again, super weird.
You'll probably need to use the "AND" conditions to add the two matching conditions, or perhaps it's the "OR" conditions you need, I'm not sure since I'd need to see the specific case.
 
Level 6
Joined
Jul 2, 2013
Messages
156
I did exactly that. Its bugged. Only on 1.27 patch tho. Not on reforged.
  • Multi Piercer Copy
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Multi Piercer
    • Actions
      • Set BossUnit[6] = (Triggering unit)
      • Set SpellTempUnitGroup = (Units within 600.00 of (Position of (Casting unit)) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True)))
      • Unit Group - Pick every unit in (Random 6 units from SpellTempUnitGroup) and do (Actions)
        • Loop - Actions
          • Game - Display to (All players) the text: (Name of (Picked unit))
          • Unit - Create 1 Nature Shield Dummy (Dummy) for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Shadow Piercer to (Last created unit)
          • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random integer number between 1 and 4) Equal to 1
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Random integer number between 1 and 100) Less than or equal to PlayerSpellCriticalChance[(Player number of (Owner of (Triggering unit)))]
                • Then - Actions
                  • Unit - Cause BossUnit[6] to damage (Picked unit), dealing ((Real((Agility of BossUnit[6] (Include bonuses)))) x 18.00) damage of attack type Siege and damage type Normal
                • Else - Actions
                  • Unit - Cause BossUnit[6] to damage (Picked unit), dealing ((Real((Agility of BossUnit[6] (Include bonuses)))) x 9.00) damage of attack type Siege and damage type Normal
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Random integer number between 1 and 100) Less than or equal to PlayerSpellCriticalChance[(Player number of (Owner of (Triggering unit)))]
                • Then - Actions
                  • Unit - Cause BossUnit[6] to damage (Picked unit), dealing ((Real((Agility of BossUnit[6] (Include bonuses)))) x 6.00) damage of attack type Siege and damage type Normal
                • Else - Actions
                  • Unit - Cause BossUnit[6] to damage (Picked unit), dealing ((Real((Agility of BossUnit[6] (Include bonuses)))) x 3.00) damage of attack type Siege and damage type Normal
      • Custom script: call DestroyGroup(udg_SpellTempUnitGroup)
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
That looks fine to me but here's some recommended changes. They may even fix the problem:
  • Multi Piercer Copy
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Multi Piercer
    • Actions
      • Set BossUnit[6] = (Triggering unit)
      • Set SpellTempPoint = (Position of BossUnit[6])
      • Unit - Create 1 Nature Shield Dummy (Dummy) for (Owner of BossUnit[6]) at SpellTempPoint facing Default building facing degrees
      • Set Multi_Piercer_Dummy = (Last created unit)
      • Unit - Add a 2.00 second Generic expiration timer to Multi_Piercer_Dummy
      • Unit - Add Shadow Piercer to Multi_Piercer_Dummy
      • Set SpellTempUnitGroup = (Units within 600.00 of SpellTempPoint) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of BossUnit[6])) Equal to True)))
      • Set SpellTempUnitGroup2 = (Random 6 units form SpellTempUnitGroup)
      • Custom script: call RemoveLocation(udg_SpellTempPoint)
      • Unit Group - Pick every unit in SpellTempUnitGroup2 and do (Actions)
        • Loop - Actions
          • Game - Display to (All players) the text: (Name of (Picked unit))
          • Unit - Order Multi_Piercer_Dummy to Human Mountain King - Storm Bolt (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random integer number between 1 and 4) Equal to 1
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Random integer number between 1 and 100) Less than or equal to PlayerSpellCriticalChance[(Player number of (Owner of BossUnit[6]))]
                • Then - Actions
                  • Unit - Cause BossUnit[6] to damage (Picked unit), dealing ((Real((Agility of BossUnit[6] (Include bonuses)))) x 18.00) damage of attack type Siege and damage type Normal
                • Else - Actions
                  • Unit - Cause BossUnit[6] to damage (Picked unit), dealing ((Real((Agility of BossUnit[6] (Include bonuses)))) x 9.00) damage of attack type Siege and damage type Normal
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Random integer number between 1 and 100) Less than or equal to PlayerSpellCriticalChance[(Player number of (Owner of BossUnit[6]))]
                • Then - Actions
                  • Unit - Cause BossUnit[6] to damage (Picked unit), dealing ((Real((Agility of BossUnit[6] (Include bonuses)))) x 6.00) damage of attack type Siege and damage type Normal
                • Else - Actions
                  • Unit - Cause BossUnit[6] to damage (Picked unit), dealing ((Real((Agility of BossUnit[6] (Include bonuses)))) x 3.00) damage of attack type Siege and damage type Normal
      • Custom script: call DestroyGroup(udg_SpellTempUnitGroup)
      • Custom script: call DestroyGroup(udg_SpellTempUnitGroup2)
Also, I imagine you'll want to calculate the critical strike before you loop through the unit group. That makes a lot more sense to me, but obviously it's your map so do whatever you think is best.

For my setup to work properly you'll need to create a "proper" Dummy unit:
1) Copy and paste the Locust.
2) Set it's Model = None, Shadow = None, Attacks Enabled = None, and most importantly set it's Movement Type = None and Speed Base = 0.

This Dummy unit can cast spells without any cast delay or the need to turn to face it's target. This allows it to cast Storm Bolt on all 6 of your units within the same game frame.
 
Last edited:
Top