Is there a way to make Tinker's "Cluster Rockets" ability actually deal damage per rocket?

Level 2
Joined
May 26, 2024
Messages
6
I've been testing out the spell Cluster Rockets spell on my map, and currently I've noticed that the number of rockets is just for Display purposes and does not actually deal damage per rocket that lands, I think the damage is dealt only once in a Damage over time manner once the Spell effect is completed. I've noticed this because when I animation cancel and it only lands 1-2 rockets, it doesn't deal any damage at all. Is there any way to actually make it so that it deals damage per Rocket?

And if not, how would you suggest to actually code this? (Create dummies per rocket that travels to the opponents, something to that effect?)
 

Uncle

Warcraft Moderator
Level 69
Joined
Aug 10, 2018
Messages
7,290
You'll have to trigger it. But you shouldn't rely on Dummy units for this sort of thing since Special Effects are more efficient - assuming that you're on version 1.31+. Also, for any kind of triggered missile you can use this system to make your life much easier: Relativistic Missiles [vJASS][LUA][GUI]

Here's an example map, it requires the latest patch to open since that's what I saved it on. That being said, the logic involved should work on version 1.31+. I can post the triggers if you can't open it.
 

Attachments

  • Cluster Rockets Example 1.w3m
    86 KB · Views: 10
Level 11
Joined
Jun 20, 2017
Messages
380
Hey Uncle, I also want this system.
How can I edit it so that it can launch a missile and increase per level?
Like 1 rocket for the first level, 2 for the second level and so on!
and it can only damage to certain heroes
Like 1/4 of their max hp


Use an ability that fires a rocket at the target area, killing the Trackers immediately and dealing 1/4 of the Hunters max hit points as damage.
  • Cluster Rockets Missile OnFinish
    • Events
    • Conditions
    • Actions
      • -------- Note, this uses the "Missile system" --------
      • -------- You must use the variables provided by the system in order to interact with the missile, missile source, missile target, etc --------
      • -------- --------
      • -------- Damage nearby enemy units --------
      • Set VariableSet CR_EnemyGroup = (Units within 90.00 of MissilePosition.)
      • Unit Group - Pick every unit in CR_EnemyGroup and do (Actions)
        • Loop - Actions
          • Set VariableSet CR_Enemy = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (CR_Enemy is alive) Equal to True
              • (CR_Enemy belongs to an enemy of (Owner of MissileSource).) Equal to True
              • And - All (Conditions) are true
                • Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • (Unit-type of CR_Enemy) Equal to Tracker
                      • (Unit-type of CR_Enemy) Equal to Tracker (2)
                      • (Unit-type of CR_Enemy) Equal to Tracker (3)
            • Then - Actions
              • Unit - Kill CR_Enemy
              • Unit - Explode CR_Enemy.
              • -------- --------
              • Set VariableSet PositionOfUnit = (Position of CR_Enemy)
              • Special Effect - Create a special effect at PositionOfUnit using Objects\Spawnmodels\Human\HumanLargeDeathExplode\HumanLargeDeathExplode.mdl
              • Set VariableSet LastCreatedSpecialEffect = (Last created special effect)
              • Special Effect - Destroy LastCreatedSpecialEffect
              • Custom script: call RemoveLocation(udg_PositionOfUnit)
              • -------- --------
              • Unit - Remove CR_Enemy from the game
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • And - All (Conditions) are true
                    • Conditions
                      • Or - Any (Conditions) are true
                        • Conditions
                          • (Unit-type of CR_Enemy) Equal to Human Hunter
                          • (Unit-type of CR_Enemy) Equal to Mystery Hunter
                • Then - Actions
                  • Unit - Cause MissileSource to damage CR_Enemy, dealing CR_Damage[MissileData] damage of attack type Spells and damage type Magic
                  • Unit - Order CR_Dummy[MissileData] to Human Mountain King - Storm Bolt CR_Enemy
                • Else - Actions
      • -------- --------
      • Custom script: call DestroyGroup(udg_CR_EnemyGroup)
 

Uncle

Warcraft Moderator
Level 69
Joined
Aug 10, 2018
Messages
7,290
You could do something like this:
  • Cluster Rockets Missile OnFinish
    • Events
    • Conditions
    • Actions
      • -------- Note, this uses the "Missile system" --------
      • -------- You must use the variables provided by the system in order to interact with the missile, missile source, missile target, etc --------
      • -------- --------
      • -------- Damage nearby enemy units --------
      • Set VariableSet CR_EnemyGroup = (Units within 90.00 of MissilePosition.)
      • Unit Group - Pick every unit in CR_EnemyGroup and do (Actions)
        • Loop - Actions
          • Set VariableSet CR_Enemy = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (CR_Enemy is alive) Equal to True
              • (CR_Enemy belongs to an enemy of (Owner of MissileSource).) Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Tracker) for CR_Enemy Greater than 0
                • Then - Actions
                  • Unit - Cause MissileSource to damage CR_Enemy, dealing 9999999 damage of attack type Chaos and damage type Universal
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Hunter) for CR_Enemy Greater than 0
                • Then - Actions
                  • Unit - Cause MissileSource to damage CR_Enemy, dealing (Max life of CR_Enemy x 0.25) damage of attack type Spells and damage type Magic
                • Else - Actions
      • -------- --------
      • Custom script: call DestroyGroup(udg_CR_EnemyGroup)
Create two abilities based on Storm Hammers and set their Art - Button Positions to X: 0, Y: -11. Name one Tracker and the other Hunter as seen in the trigger (or name them whatever you want). Then add these abilities to your different Hunter and Tracker Units in the Object Editor.
 
Last edited:
Top