• 🏆 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!

Spell request

Status
Not open for further replies.
Level 37
Joined
Mar 6, 2006
Messages
9,240
  • Deat Coil
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Death Coil
    • Actions
      • Set Temp_Loc_1 = (Position of (Triggering unit))
      • Set Temp_Loc_2 = (Position of (Target unit of ability being cast))
      • -------- -------------------- --------
      • Set Temp_Real_1 = (Distance between Temp_Loc_1 and Temp_Loc_2)
      • -------- /1000 should be replaced by the speed of your missile in object editor --------
      • Set Temp_Real_2 = (Temp_Real_1 / 1000.00)
      • -------- -------------------- --------
      • -------- Temp_Real_3 = damage done. 0.04 = 4% for example --------
      • -------- Temp_Real_4 = the ratio between damage done. and health returned --------
      • -------- With 0.5 value, you get 50% of damage done back as health --------
      • -------- -------------------- --------
      • Set Temp_Real_3 = 0.04
      • Set Temp_Real_4 = 0.50
      • -------- -------------------- --------
      • Set Temp_Real_5 = (Temp_Real_3 x Temp_Real_4)
      • -------- -------------------- --------
      • Hashtable - Save Temp_Real_2 as (Key pos) of (Key (Triggering unit)) in Death_Coil_Hash
      • Hashtable - Save Temp_Real_3 as (Key dmg) of (Key (Triggering unit)) in Death_Coil_Hash
      • Hashtable - Save Temp_Real_5 as (Key ret) of (Key (Triggering unit)) in Death_Coil_Hash
      • Hashtable - Save Handle Of(Target unit of ability being cast) as (Key target) of (Key (Triggering unit)) in Death_Coil_Hash
      • -------- -------------------- --------
      • Unit Group - Add (Triggering unit) to Death_Coil_Group
      • -------- -------------------- --------
      • Custom script: call RemoveLocation(udg_Temp_Loc_1)
      • Custom script: call RemoveLocation(udg_Temp_Loc_2)
      • -------- -------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Deat Coil Loop <gen> is on) Equal to False
        • Then - Actions
          • Trigger - Turn on Deat Coil Loop <gen>
        • Else - Actions
  • Deat Coil Loop
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Death_Coil_Group and do (Actions)
        • Loop - Actions
          • -------- -------------------- --------
          • Set Temp_Real_1 = (Load (Key pos) of (Key (Picked unit)) from Death_Coil_Hash)
          • -------- -0.05 should be replaced with the "every x.xx seconds" in the event --------
          • Set Temp_Real_1 = (Temp_Real_1 - 0.05)
          • -------- -------------------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Temp_Real_1 Less than or equal to 0.00
            • Then - Actions
              • Set Temp_Unit_1 = (Load (Key target) of (Key (Picked unit)) in Death_Coil_Hash)
              • Set Temp_Real_2 = (Load (Key dmg) of (Key (Picked unit)) from (Last created hashtable))
              • Set Temp_Real_3 = (Load (Key ret) of (Key (Picked unit)) from (Last created hashtable))
              • -------- -------------------- --------
              • Unit - Cause (Picked unit) to damage Temp_Unit_1, dealing ((Max life of Temp_Unit_1) x Temp_Real_2) damage of attack type Spells and damage type Normal
              • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + ((Max life of (Picked unit)) x Temp_Real_3))
              • -------- -------------------- --------
              • Unit Group - Remove (Picked unit) from Death_Coil_Group
              • -------- -------------------- --------
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Death_Coil_Hash
            • Else - Actions
              • Hashtable - Save Temp_Real_1 as (Key pos) of (Key (Picked unit)) in Death_Coil_Hash
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in Death_Coil_Group) Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
  • Melee Initialization
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set Death_Coil_Hash = (Last created hashtable)
Here you go. Units can resist the amount of damage you do, so it can be less than 4%. However you always get 2% of your max health back. Set the damage type to chaos to make full damage.

I based the skill on Death Coil. Removed the amount healed.
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
I changed the spell so that it does:

Level 1: 4 % of target's max HP reduction, 2 % of your max HP returned.
Level 2: 6 % of target's max HP reduction, 3 % of your max HP returned.
Level 3: 8 % of target's max HP reduction, 4 % of your max HP returned.

Those are still quite low amounts. If you hit a footman with lvl 3 spell, you do ~34 damage.

But the spell is easy to customize.
 

Attachments

  • Death Coil.w3x
    27.8 KB · Views: 81
Last edited:
Level 24
Joined
Feb 9, 2009
Messages
1,787
Map Won't open Apparently things are missing.

Trigger Function does no exist in database: InitHashtableBJ
Trigger Function does no exist in database: GetLastCreatedHashableBJ
Trigger Function does no exist in database: SaveRealBJ

This application has encountered a critical error: Not enough storage to process this command.

program: C:\program files\warcraft iii\worldedit.exe
Object: .PAVCWETriggerFunction@@

Press A not to die
 
Last edited:
Status
Not open for further replies.
Top