• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Random Infernals

Status
Not open for further replies.
Level 4
Joined
Aug 2, 2015
Messages
50
I want to make dummies spawn random Infernal balls using the basic "Infernal" skill so I tried like this:

  • Armageddon
    • Events
      • Time - Every 10.00 seconds of game time
    • Conditions
    • Actions
      • Unit - Create 1 Armageddon for Player 21 (Coal) at (Random point in meteor 1 <gen>) facing Default building facing degrees
      • Unit - Hide (Last created unit)
      • Unit - Order (Last created unit) to Undead Dreadlord - Inferno (Position of (Last created unit))
      • Special Effect - Create a special effect at (Position of (Last created unit)) using Abilities\Spells\Human\FlameStrike\FlameStrikeTarget.mdl
      • Set VariableSet A1 = (Last created special effect)
      • Unit - Create 1 Armageddon for Player 21 (Coal) at (Random point in meteor 2 <gen>) facing Default building facing degrees
      • Unit - Hide (Last created unit)
      • Unit - Order (Last created unit) to Undead Dreadlord - Inferno (Position of (Last created unit))
      • Special Effect - Create a special effect at (Position of (Last created unit)) using Abilities\Spells\Human\FlameStrike\FlameStrikeTarget.mdl
      • Set VariableSet A2 = (Last created special effect)
      • Unit - Create 1 Armageddon for Player 21 (Coal) at (Random point in meteor 2 <gen>) facing Default building facing degrees
      • Unit - Hide (Last created unit)
      • Unit - Order (Last created unit) to Undead Dreadlord - Inferno (Position of (Last created unit))
      • Special Effect - Create a special effect at (Position of (Last created unit)) using Abilities\Spells\Human\FlameStrike\FlameStrikeTarget.mdl
      • Set VariableSet A3 = (Last created special effect)
      • Wait 7.90 seconds
      • Special Effect - Destroy A1
      • Special Effect - Destroy A2
      • Special Effect - Destroy A3
Everything looks like its working, just one problem, enemy units doesnt recive any dmg at landing spot?

Skills stats:

dmg: 1000
Duration: 0.1s
Impact delay: 1s
Aoe: 300
Cast time: 8s
 
Level 4
Joined
Aug 2, 2015
Messages
50
1) Don't hide the dummy
2) Make sure the dummy can cast the ability (cast range, mana cost, requirements, etc)
3) You're leaking points

as I said, the spell goes off, its just the dmg part buggering :)
The Special effect is just there to warn player for inc Infernal in 8s (the greenish flame effect)

  • Armageddon
    • Events
      • Time - Every 10.00 seconds of game time
    • Conditions
    • Actions
      • Unit - Create 1 Armageddon for Player 21 (Coal) at (Random point in meteor 1 <gen>) facing Default building facing degrees
      • Set VariableSet Arm1 = (Position of (Last created unit))
      • Unit - Order (Last created unit) to Undead Dreadlord - Inferno Arm1
      • Special Effect - Create a special effect at Arm1 using Abilities\Spells\Human\FlameStrike\FlameStrikeTarget.mdl
      • Set VariableSet A1 = (Last created special effect)
      • Unit - Create 1 Armageddon for Player 21 (Coal) at (Random point in meteor 2 <gen>) facing Default building facing degrees
      • Set VariableSet Arm2 = (Position of (Last created unit))
      • Unit - Order (Last created unit) to Undead Dreadlord - Inferno Arm2
      • Special Effect - Create a special effect at Arm2 using Abilities\Spells\Human\FlameStrike\FlameStrikeTarget.mdl
      • Set VariableSet A2 = (Last created special effect)
      • Unit - Create 1 Armageddon for Player 21 (Coal) at (Random point in meteor 2 <gen>) facing Default building facing degrees
      • Set VariableSet Arm3 = (Position of (Last created unit))
      • Unit - Order (Last created unit) to Undead Dreadlord - Inferno Arm3
      • Special Effect - Create a special effect at Arm3 using Abilities\Spells\Human\FlameStrike\FlameStrikeTarget.mdl
      • Set VariableSet A3 = (Last created special effect)
      • Wait 7.90 seconds
      • Special Effect - Destroy A1
      • Special Effect - Destroy A2
      • Special Effect - Destroy A3
still leaking?

Targets allowed: air,debris,ground, enemy, structure
 
Level 12
Joined
Feb 5, 2018
Messages
521
Whenever you use a point you need to remove it when it is no longer in use.

  • Customscript: call RemoveLocation (udg_TempPoint)
EDIT: After you destroy the special effects use this codeline to remove your locations.

EDIT: Things That Leak This is a very useful and a must learn thing if you wanna be a mapper :)
 
Level 29
Joined
Jul 29, 2007
Messages
5,174
Is Player 21 an enemy of whichever player's unit's don't get damaged?

  • Unit - Create 1 Armageddon for Player 21 (Coal) at (Random point in meteor 1 <gen>) facing Default building facing degrees
  • Set VariableSet Arm1 = (Position of (Last created unit))
Both of these lines create new locations, which are never destroyed automatically by the game.
Therefore every time this trigger runs, you have more and more locations that are only used once, and then reside in your game's memory forever until you close it.
Look at the message above how to destroy them.

In this case, one of the locations you store in a variable that you can later destroy, and the other location you don't store anywhere and thus cannot destroy.
To fix this, reverse the order of operations.
First create the location where you want the inferno to land and store it in your variable.
Then order to cast the spell and create the sfx on this stored variable.
Then destroy the location referenced by this variable.
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,552
You need to create the Dummys at the points.

(Random point in meteor 1 <gen>) needs to become Arm1

And there's no reason to Hide a Dummy unit, Dummys use the Locust ability which makes the unselectable, untargetable, and uncommandable (outside of triggers). You can set their Model to a blank path like "none" and they won't be visible.

You should add an Expiration Timer to your Dummys as well, so that they're destroyed after some time.
 
Level 4
Joined
Aug 2, 2015
Messages
50
Is Player 21 an enemy of whichever player's unit's don't get damaged?

Yes, ofcourse :) Player 21 have the boss triggering all things in its arsenal.

  • Unit - Create 1 Armageddon for Player 21 (Coal) at (Random point in meteor 1 <gen>) facing Default building facing degrees
  • Set VariableSet Arm1 = (Position of (Last created unit))
Both of these lines create new locations, which are never destroyed automatically by the game.
Therefore every time this trigger runs, you have more and more locations that are only used once, and then reside in your game's memory forever until you close it.
Look at the message above how to destroy them.

In this case, one of the locations you store in a variable that you can later destroy, and the other location you don't store anywhere and thus cannot destroy.
To fix this, reverse the order of operations.
First create the location where you want the inferno to land and store it in your variable.
Then order to cast the spell and create the sfx on this stored variable.
Then destroy the location referenced by this variable.


Cheers for guiding a lost soul back on its path :)

However, this does not solve my main issue, the no dmg part...

Could it have something to do with that Inferno skill doesnt work so good with delayed casting time? (from instant cast to 8s cast]
 
Level 12
Joined
Feb 5, 2018
Messages
521
The inferno spell by default, does not deal damage if the unit is not summoned. Or at least it used to be that way.

Since you already have everything else you can trigger the damage too.

  • Setvarible InfernoGroup = Units in range of (your location) matching condition
EDIT: Nevermind I made it for you.

  • Armageddon
    • Events
      • Time - Every 10.00 seconds of game time
    • Conditions
    • Actions
      • -------- Setting up Random Loc --------
      • Set VariableSet Armageddon_Loc[1] = (Random point in Armageddon <gen>)
      • Set VariableSet Armageddon_Loc[2] = (Random point in Armageddon <gen>)
      • Set VariableSet Armageddon_Loc[3] = (Random point in Armageddon <gen>)
      • -------- Create the units --------
      • Unit - Create 1 Armageddon for Player 21 (Coal) at Armageddon_Loc[1] facing Default building facing degrees
      • Set VariableSet Armageddon_Unit[1] = (Last created unit)
      • Unit - Add a 9.00 second Generic expiration timer to Armageddon_Unit[1]
      • -------- ------- --------
      • Unit - Create 1 Armageddon for Player 21 (Coal) at Armageddon_Loc[2] facing Default building facing degrees
      • Set VariableSet Armageddon_Unit[2] = (Last created unit)
      • Unit - Add a 9.00 second Generic expiration timer to Armageddon_Unit[2]
      • -------- ------- --------
      • Unit - Create 1 Armageddon for Player 21 (Coal) at Armageddon_Loc[3] facing Default building facing degrees
      • Set VariableSet Armageddon_Unit[3] = (Last created unit)
      • Unit - Add a 9.00 second Generic expiration timer to Armageddon_Unit[3]
      • -------- Make Special Effects --------
      • Special Effect - Create a special effect at Armageddon_Loc[1] using Abilities\Spells\Human\FlameStrike\FlameStrikeTarget.mdl
      • Set VariableSet Armageddon_SFX[1] = (Last created special effect)
      • Special Effect - Create a special effect at Armageddon_Loc[2] using Abilities\Spells\Human\FlameStrike\FlameStrikeTarget.mdl
      • Set VariableSet Armageddon_SFX[2] = (Last created special effect)
      • Special Effect - Create a special effect at Armageddon_Loc[3] using Abilities\Spells\Human\FlameStrike\FlameStrikeTarget.mdl
      • Set VariableSet Armageddon_SFX[3] = (Last created special effect)
      • -------- Damage delay --------
      • Wait 7.90 seconds
      • Unit - Order Armageddon_Unit[1] to Undead Dreadlord - Inferno Armageddon_Loc[1]
      • Unit - Order Armageddon_Unit[2] to Undead Dreadlord - Inferno Armageddon_Loc[2]
      • Unit - Order Armageddon_Unit[3] to Undead Dreadlord - Inferno Armageddon_Loc[3]
      • -------- Remove Special Effects --------
      • Special Effect - Destroy Armageddon_SFX[1]
      • Special Effect - Destroy Armageddon_SFX[2]
      • Special Effect - Destroy Armageddon_SFX[3]
      • -------- Remove Location --------
      • Custom script: call RemoveLocation (udg_Armageddon_Loc[1])
      • Custom script: call RemoveLocation (udg_Armageddon_Loc[2])
      • Custom script: call RemoveLocation (udg_Armageddon_Loc[3])

  • Remove Infernal
    • Events
      • Unit - A unit owned by Player 21 (Coal) Spawns a summoned unit
    • Conditions
      • (Unit-type of (Summoned unit)) Equal to Infernal
    • Actions
      • Wait 1.10 seconds
      • Unit - Remove (Summoned unit) from the game
 
Last edited:
Status
Not open for further replies.
Top