• 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.

[Trigger] Ravage spell fron dota 1

Rheiko

Spell Reviewer
Level 27
Joined
Aug 27, 2013
Messages
4,221
Might not be the best way to do it, but this should work. Made on version 1.31.1.

  • Ravage Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- - --------
      • -------- Ravage ability based on Thunder Clap or any other instant cast ability for your hero --------
      • -------- - --------
      • Set Ravage_SpellId = Ravage
      • -------- - --------
      • -------- Ravage ability based on impale for your dummy --------
      • -------- - --------
      • Set Ravage_DummySpellId = Ravage (Dummy)
      • -------- - --------
      • -------- RavageDummy unit from object editor --------
      • -------- - --------
      • Set Ravage_DummyId = RavageDummy
      • -------- - --------
      • -------- The number of ravage waves --------
      • -------- - --------
      • Set Ravage_WaveNumber[1] = 18
      • Set Ravage_WaveNumber[2] = 18
      • Set Ravage_WaveNumber[3] = 18
      • -------- - --------
      • -------- DO NOT TOUCH ANYTHING BELOW THIS --------
      • -------- Preloading purposes to avoid lag spike on first cast --------
      • -------- - --------
      • Set Ravage_Loc = (Center of (Playable map area))
      • Unit - Create 1 Ravage_DummyId for Player 1 (Red) at Ravage_Loc facing Default building facing degrees
      • Unit - Add Ravage_SpellId to (Last created unit)
      • Unit - Add Ravage_DummySpellId to (Last created unit)
      • Unit - Kill (Last created unit)
      • Game - Preload all files listed in Abilities\Spells\Undead\Impale\ImpaleMissTarget.mdl
      • Game - Preload all files listed in Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl


  • Ravage Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ravage_SpellId
    • Actions
      • -------- - --------
      • -------- Store the caster into a variable --------
      • -------- - --------
      • Set Ravage_Caster = (Triggering unit)
      • -------- - --------
      • -------- Store the level into a variable --------
      • -------- - --------
      • Set Ravage_Level = (Level of Ravage_SpellId for Ravage_Caster)
      • -------- - --------
      • -------- Store caster's current position --------
      • -------- - --------
      • Set Ravage_Loc = (Position of Ravage_Caster)
      • -------- - --------
      • -------- Loop for "number of waves" times --------
      • -------- - --------
      • For each (Integer Ravage_TempInteger) from 1 to Ravage_WaveNumber[Ravage_Level], do (Actions)
        • Loop - Actions
          • -------- - --------
          • -------- Setup the correct angle to form a circle --------
          • -------- - --------
          • Set Ravage_Angle = ((Real(Ravage_TempInteger)) x (360.00 / (Real(Ravage_WaveNumber[Ravage_Level]))))
          • -------- - --------
          • -------- Setup the point where the dummy should cast the ability while taking the angle into consideration --------
          • -------- - --------
          • Set Ravage_Loc2 = (Ravage_Loc offset by 128.00 towards Ravage_Angle degrees)
          • -------- - --------
          • -------- Create the dummy unit to cast impale --------
          • -------- - --------
          • Unit - Create 1 Ravage_DummyId for (Owner of Ravage_Caster) at Ravage_Loc facing Default building facing degrees
          • -------- - --------
          • -------- Store the dummy into a variable --------
          • -------- - --------
          • Set Ravage_Dummy = (Last created unit)
          • -------- - --------
          • -------- Add "impale" ability to the dummy --------
          • -------- - --------
          • Unit - Add Ravage_DummySpellId to Ravage_Dummy
          • -------- - --------
          • -------- Set the level to match your hero's ability --------
          • -------- - --------
          • Unit - Set level of Ravage (Dummy) for Ravage_Dummy to Ravage_Level
          • -------- - --------
          • -------- Gives the dummy an expiration timer so it doesn't stay in the map permanently --------
          • -------- But still has enough time to cast impale --------
          • -------- - --------
          • Unit - Add a 1.00 second Generic expiration timer to Ravage_Dummy
          • -------- - --------
          • -------- Order the dummy to cast impale at target location around the caster --------
          • -------- - --------
          • Unit - Order Ravage_Dummy to Undead Crypt Lord - Impale Ravage_Loc2
          • -------- - --------
          • -------- Remove location reference to prevent memory leak --------
          • -------- - --------
          • Custom script: call RemoveLocation(udg_Ravage_Loc2)
      • -------- - --------
      • -------- Remove location reference to prevent memory leak --------
      • -------- - --------
      • Custom script: call RemoveLocation(udg_Ravage_Loc)

You can change most of the values from object editor.
One thing to note is since this relies on dummy unit to cast the spell, the kill credit doesn't go to the caster, you can work around this by using damage detection, though. I hope it satisfies your need.

Edit: Forgot to mention, you can press ESC to refresh your cooldown and restore HP/Mana in the testmap. :)
 

Attachments

  • Leviathan Ravage.w3x
    23.9 KB · Views: 0
Last edited:
Level 26
Joined
Sep 7, 2018
Messages
551
Might not be the best way to do it, but this should work. Made on version 1.31.1.

  • Ravage Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- - --------
      • -------- Ravage ability based on Thunder Clap or any other instant cast ability for your hero --------
      • -------- - --------
      • Set Ravage_SpellId = Ravage
      • -------- - --------
      • -------- Ravage ability based on impale for your dummy --------
      • -------- - --------
      • Set Ravage_DummySpellId = Ravage (Dummy)
      • -------- - --------
      • -------- RavageDummy unit from object editor --------
      • -------- - --------
      • Set Ravage_DummyId = RavageDummy
      • -------- - --------
      • -------- The number of ravage waves --------
      • -------- - --------
      • Set Ravage_WaveNumber[1] = 18
      • Set Ravage_WaveNumber[2] = 18
      • Set Ravage_WaveNumber[3] = 18
      • -------- - --------
      • -------- DO NOT TOUCH ANYTHING BELOW THIS --------
      • -------- Preloading purposes to avoid lag spike on first cast --------
      • -------- - --------
      • Set Ravage_Loc = (Center of (Playable map area))
      • Unit - Create 1 Ravage_DummyId for Player 1 (Red) at Ravage_Loc facing Default building facing degrees
      • Unit - Add Ravage_SpellId to (Last created unit)
      • Unit - Add Ravage_DummySpellId to (Last created unit)
      • Unit - Kill (Last created unit)
      • Game - Preload all files listed in Abilities\Spells\Undead\Impale\ImpaleMissTarget.mdl
      • Game - Preload all files listed in Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl


  • Ravage Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ravage_SpellId
    • Actions
      • -------- - --------
      • -------- Store the caster into a variable --------
      • -------- - --------
      • Set Ravage_Caster = (Triggering unit)
      • -------- - --------
      • -------- Store the level into a variable --------
      • -------- - --------
      • Set Ravage_Level = (Level of Ravage_SpellId for Ravage_Caster)
      • -------- - --------
      • -------- Store caster's current position --------
      • -------- - --------
      • Set Ravage_Loc = (Position of Ravage_Caster)
      • -------- - --------
      • -------- Loop for "number of waves" times --------
      • -------- - --------
      • For each (Integer Ravage_TempInteger) from 1 to Ravage_WaveNumber[Ravage_Level], do (Actions)
        • Loop - Actions
          • -------- - --------
          • -------- Setup the correct angle to form a circle --------
          • -------- - --------
          • Set Ravage_Angle = ((Real(Ravage_TempInteger)) x (360.00 / (Real(Ravage_WaveNumber[Ravage_Level]))))
          • -------- - --------
          • -------- Setup the point where the dummy should cast the ability while taking the angle into consideration --------
          • -------- - --------
          • Set Ravage_Loc2 = (Ravage_Loc offset by 128.00 towards Ravage_Angle degrees)
          • -------- - --------
          • -------- Create the dummy unit to cast impale --------
          • -------- - --------
          • Unit - Create 1 Ravage_DummyId for (Owner of Ravage_Caster) at Ravage_Loc facing Default building facing degrees
          • -------- - --------
          • -------- Store the dummy into a variable --------
          • -------- - --------
          • Set Ravage_Dummy = (Last created unit)
          • -------- - --------
          • -------- Add "impale" ability to the dummy --------
          • -------- - --------
          • Unit - Add Ravage_DummySpellId to Ravage_Dummy
          • -------- - --------
          • -------- Set the level to match your hero's ability --------
          • -------- - --------
          • Unit - Set level of Ravage (Dummy) for Ravage_Dummy to Ravage_Level
          • -------- - --------
          • -------- Gives the dummy an expiration timer so it doesn't stay in the map permanently --------
          • -------- But still has enough time to cast impale --------
          • -------- - --------
          • Unit - Add a 1.00 second Generic expiration timer to Ravage_Dummy
          • -------- - --------
          • -------- Order the dummy to cast impale at target location around the caster --------
          • -------- - --------
          • Unit - Order Ravage_Dummy to Undead Crypt Lord - Impale Ravage_Loc2
          • -------- - --------
          • -------- Remove location reference to prevent memory leak --------
          • -------- - --------
          • Custom script: call RemoveLocation(udg_Ravage_Loc2)
      • -------- - --------
      • -------- Remove location reference to prevent memory leak --------
      • -------- - --------
      • Custom script: call RemoveLocation(udg_Ravage_Loc)

You can change most of the values from object editor.
One thing to note is since this relies on dummy unit to cast the spell, the kill credit doesn't go to the caster, you can work around this by using damage detection, though. I hope it satisfies your need.

Edit: Forgot to mention, you can press ESC to refresh your cooldown and restore HP/Mana in the testmap. :)
Thanks alot, does it work with 1.29.2?
 
Top