Spellpack Death Knight

vypur85

Hibernate
Reaction score
803
Death Knight
Hi. This is my first spell submission. Hope you guys like it. It based of Death Knight. I guess the spells should tally correctly with the hero :). There are 4 abilities + 1 dummy ability. All the abilities are interconnected with each other. So, if you want to use the spells, copy them as a whole. The idea is taken from Shadow Fiend in DotA (in terms of the Corpse Counter ability).

GUI: Yes
MUI: Should be yes.
Import difficulty: For me, it's tedious :p.
Leaks: Should be none. Tell me if there is.

Hero Setup
Code:
Death Knight Hero Setup
    Events
        Unit - A unit Learns a skill
    Conditions
        Or - Any (Conditions) are true
            Conditions
                (Learned Hero Skill) Equal to (DEATH) Death Armor 
                (Learned Hero Skill) Equal to (DEATH) Death Stomp 
                (Learned Hero Skill) Equal to (DEATH) Death Conversion 
                (Learned Hero Skill) Equal to (DEATH) Summon Corpse 
        (Level of (DEATH) Corpse Counter  for (Triggering unit)) Equal to 0
    Actions
        Unit - Add (DEATH) Corpse Counter  to (Learning Hero)
        -------- ============================================================================ --------
        -------- CORPSE COUNTER: This is for the minimum level for the corpse counter to drop after any spell is used (Note: 1 means the min corpse is 0) --------
        Set Deft_int_DK_COUNTER_minlvl = 1
        -------- CORPSE COUNTER: This is for the maximum level for the corpse counter (Note: 11 means the max corpse is 10) --------
        Set Deft_int_DK_COUNTER_maxlevel = 11
        -------- ============================================================================ --------
        -------- DEATH STOMP: This value accounts for the initial damage (Each level increases the damage by one time) --------
        Set Deft_real_DK_STOMP_dmg[1] = 250.00
        -------- DEATH STOMP: This value accounts for the damage increment per corpse (Each level increases the damage by one time) --------
        Set Deft_real_DK_STOMP_dmg[2] = 250.00
        -------- ============================================================================ --------
        -------- SUMMON CORPSE: This for Summon Corpse unit-type setup --------
        Set Deft_unittype_DK_CORPSE_corpse[1] = The Undead Level 1
        Set Deft_unittype_DK_CORPSE_corpse[2] = The Undead Level 2
        Set Deft_unittype_DK_CORPSE_corpse[3] = The Undead Level 3
        Set Deft_unittype_DK_CORPSE_corpse[4] = The Undead Level 4
        -------- ============================================================================ --------
        -------- DEATH ARMOR: This for Death Armor ability-type setup --------
        Set Deft_abi_DK_ARMOR_abitype[1] = (DEATH) Armor Bonus Level 1
        Set Deft_abi_DK_ARMOR_abitype[2] = (DEATH) Armor Bonus Level 2
        Set Deft_abi_DK_ARMOR_abitype[3] = (DEATH) Armor Bonus Level 3
        Set Deft_abi_DK_ARMOR_abitype[4] = (DEATH) Armor Bonus Level 4
        -------- ============================================================================ --------

1. Corpse Counter (Passive - Learnt through trigger)
This ability does nothing. It is just a dummy ability. It serves as counter, to take record of the number of units killed by the Death Knight. Every unit killed by the DK will increase the level of this ability, hence the corpse count.

Code:
Corpse Counter
    Events
        Unit - A unit Dies
    Conditions
        (Level of (DEATH) Corpse Counter  for (Killing unit)) Greater than 0
        (Level of (DEATH) Corpse Counter  for (Killing unit)) Less than or equal to (Deft_int_DK_COUNTER_maxlevel - 1)
    Actions
        Set Deft_int_DK_COUNTER_lastlvl = (Level of (DEATH) Corpse Counter  for (Killing unit))
        Unit - Remove (DEATH) Corpse Counter  from (Killing unit)
        Unit - Add (DEATH) Corpse Counter  to (Killing unit)
        Unit - Set level of (DEATH) Corpse Counter  for (Killing unit) to (1 + Deft_int_DK_COUNTER_lastlvl)
        Set Deft_int_DK_COUNTER_lastlvl = 0

2. Death Stomp (Active)
Deals damage to enemy units around the Death Knight with damage depending on the amount of corpse stored. Upon activation of this ability, all of the corpse will be used up.

Example:
Level 1 - Damages enemy units around 500 aoe of the Death Knight with 250 damage. Each corpse availability increases the damage by 250.

Code:
Death Stomp
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to (DEATH) Death Stomp 
    Actions
        Trigger - Turn off Corpse Counter <gen>
        Trigger - Turn off Death Armor Increment <gen>
        Set Deft_unitgp_DK_STOMP_aoedmg = (Units within 500.00 of (Position of (Triggering unit)) matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to False))))
        Unit Group - Pick every unit in Deft_unitgp_DK_STOMP_aoedmg and do (Actions)
            Loop - Actions
                Unit - Cause (Triggering unit) to damage (Picked unit), dealing ((Deft_real_DK_STOMP_dmg[1] x (Real((Level of (DEATH) Death Stomp  for (Triggering unit))))) + (((Real((Level of (DEATH) Corpse Counter  for (Triggering unit)))) - 1.00) x ((Real((Level of (DEATH) Death Stomp  for (Triggering unit)))) x Deft_real_DK_STOMP_dmg damage of attack type Spells and damage type Normal
                Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
                Special Effect - Destroy (Last created special effect)
        -------- This is to set the Corpse Counter to minimum level and changes the armor level --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of (DEATH) Corpse Counter  for (Triggering unit)) Greater than or equal to Deft_int_DK_COUNTER_minlvl
                (Level of (DEATH) Corpse Counter  for (Triggering unit)) Less than or equal to Deft_int_DK_COUNTER_maxlevel
            Then - Actions
                Unit - Remove (DEATH) Corpse Counter  from (Triggering unit)
                Unit - Add (DEATH) Corpse Counter  to (Triggering unit)
                Unit - Set level of (DEATH) Corpse Counter  for (Triggering unit) to Deft_int_DK_COUNTER_minlvl
                For each (Integer A) from 1 to 4, do (Actions)
                    Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Level of Deft_abi_DK_ARMOR_abitype[(Integer A)] for (Triggering unit)) Greater than or equal to Deft_int_DK_COUNTER_minlvl
                            Then - Actions
                                Unit - Remove Deft_abi_DK_ARMOR_abitype[(Integer A)] from (Triggering unit)
                                Unit - Add Deft_abi_DK_ARMOR_abitype[(Integer A)] to (Triggering unit)
                                Unit - Set level of Deft_abi_DK_ARMOR_abitype[(Integer A)] for (Triggering unit) to (Level of (DEATH) Corpse Counter  for (Triggering unit))
                            Else - Actions
                                Do nothing
            Else - Actions
                Do nothing
        Trigger - Turn on Corpse Counter <gen>
        Trigger - Turn on Death Armor Increment <gen>
        Custom script:   call DestroyGroup (udg_Deft_unitgp_DK_STOMP_aoedmg)

3. Summon Corpse (Active)
Summons Undead Corpse to assist the Death Knight in battle. The number of summoned units depends on the corpse availability. Upon activation of this ability, all of the corpse will be used up.

Example:
Level 1 - Summons weak melee Undead Corpse to assist the Death Knight. The number of units summoned is depending on the availability of corpse. Killing credits done by the corpse will not affect the Corpse Counter status of Death Knight.

Code:
Summon Corpse
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to (DEATH) Summon Corpse 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of (DEATH) Corpse Counter  for (Triggering unit)) Equal to 1
            Then - Actions
                Set Deft_int_DK_CORPSE_corpselvl = (Level of (DEATH) Summon Corpse  for (Triggering unit))
                Game - Display to (All players controlled by a ((Triggering player) controller) player) for 1.00 seconds the text: |cffffcc00No corpse...
                Unit - Remove (DEATH) Summon Corpse  from (Triggering unit)
                Unit - Add (DEATH) Summon Corpse  to (Triggering unit)
                Unit - Set level of (DEATH) Summon Corpse  for (Triggering unit) to Deft_int_DK_CORPSE_corpselvl
            Else - Actions
                Do nothing
        For each (Integer A) from 1 to ((Level of (DEATH) Corpse Counter  for (Triggering unit)) - 1), do (Actions)
            Loop - Actions
                Set Deft_pt_DK_CORPSE_triggerpos = (Position of (Triggering unit))
                For each (Integer B) from 1 to 4, do (Actions)
                    Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Level of (DEATH) Summon Corpse  for (Triggering unit)) Equal to (Integer B)
                            Then - Actions
                                Unit - Create 1 Deft_unittype_DK_CORPSE_corpse[(Integer B)] for (Owner of (Triggering unit)) at (Deft_pt_DK_CORPSE_triggerpos offset by 150.00 towards (Random angle) degrees) facing Deft_pt_DK_CORPSE_triggerpos
                                Set Deft_pt_DK_CORPSE_corpsepos = (Position of (Last created unit))
                                Unit - Add a 45.00 second Generic expiration timer to (Last created unit)
                                Special Effect - Create a special effect at Deft_pt_DK_CORPSE_corpsepos using Abilities\Spells\Undead\RaiseSkeletonWarrior\RaiseSkeleton.mdl
                                Special Effect - Destroy (Last created special effect)
                                Custom script:   call RemoveLocation (udg_Deft_pt_DK_CORPSE_corpsepos)
                            Else - Actions
                                Do nothing
                Custom script:   call RemoveLocation (udg_Deft_pt_DK_CORPSE_triggerpos)
        -------- This is to set the Corpse Counter to minimum level --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of (DEATH) Corpse Counter  for (Triggering unit)) Greater than or equal to Deft_int_DK_COUNTER_minlvl
            Then - Actions
                Unit - Remove (DEATH) Corpse Counter  from (Triggering unit)
                Unit - Add (DEATH) Corpse Counter  to (Triggering unit)
                Unit - Set level of (DEATH) Corpse Counter  for (Triggering unit) to Deft_int_DK_COUNTER_minlvl
            Else - Actions
                Do nothing
        -------- This is for the armor reduction according to corpse reduction --------
        For each (Integer A) from 1 to 4, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Deft_abi_DK_ARMOR_abitype[(Integer A)] for (Triggering unit)) Greater than or equal to Deft_int_DK_COUNTER_minlvl
                    Then - Actions
                        Unit - Remove Deft_abi_DK_ARMOR_abitype[(Integer A)] from (Triggering unit)
                        Unit - Add Deft_abi_DK_ARMOR_abitype[(Integer A)] to (Triggering unit)
                        Unit - Set level of Deft_abi_DK_ARMOR_abitype[(Integer A)] for (Triggering unit) to (Level of (DEATH) Corpse Counter  for (Triggering unit))
                    Else - Actions
                        Do nothing

4. Death Armor (Passive)
Allows the Death Knight to increase its armor according to the amount of corpse stored.

Example:
Level 1 - Increases the Death Knight armor by 5 with every corpse available. A maximum of 50 armor.

Code:
Death Armor Learning Rule
    Events
        Unit - A unit Learns a skill
    Conditions
        (Learned Hero Skill) Equal to (DEATH) Death Armor 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of (DEATH) Death Armor  for (Learning Hero)) Equal to 1
            Then - Actions
                Unit - Add (DEATH) Armor Bonus Level 1 to (Learning Hero)
                Unit - Set level of (DEATH) Armor Bonus Level 1 for (Learning Hero) to (Level of (DEATH) Corpse Counter  for (Learning Hero))
                Skip remaining actions
            Else - Actions
                Do nothing
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of (DEATH) Death Armor  for (Learning Hero)) Equal to 2
            Then - Actions
                Unit - Remove (DEATH) Armor Bonus Level 1 from (Learning Hero)
                Unit - Add (DEATH) Armor Bonus Level 2 to (Learning Hero)
                Unit - Set level of (DEATH) Armor Bonus Level 2 for (Learning Hero) to (Level of (DEATH) Corpse Counter  for (Learning Hero))
                Skip remaining actions
            Else - Actions
                Do nothing
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of (DEATH) Death Armor  for (Learning Hero)) Equal to 3
            Then - Actions
                Unit - Remove (DEATH) Armor Bonus Level 2 from (Learning Hero)
                Unit - Add (DEATH) Armor Bonus Level 3 to (Learning Hero)
                Unit - Set level of (DEATH) Armor Bonus Level 3 for (Learning Hero) to (Level of (DEATH) Corpse Counter  for (Learning Hero))
                Skip remaining actions
            Else - Actions
                Do nothing
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of (DEATH) Death Armor  for (Learning Hero)) Equal to 4
            Then - Actions
                Unit - Remove (DEATH) Armor Bonus Level 3 from (Learning Hero)
                Unit - Add (DEATH) Armor Bonus Level 4 to (Learning Hero)
                Unit - Set level of (DEATH) Armor Bonus Level 4 for (Learning Hero) to (Level of (DEATH) Corpse Counter  for (Learning Hero))
            Else - Actions
                Do nothing

Code:
Death Armor Increment
    Events
        Unit - A unit Dies
    Conditions
        (Level of (DEATH) Corpse Counter  for (Killing unit)) Greater than or equal to 1
        (Level of (DEATH) Corpse Counter  for (Killing unit)) Less than or equal to 11
    Actions
        For each (Integer A) from 1 to 4, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Deft_abi_DK_ARMOR_abitype[(Integer A)] for (Killing unit)) Greater than or equal to 1
                    Then - Actions
                        Unit - Remove Deft_abi_DK_ARMOR_abitype[(Integer A)] from (Killing unit)
                        Unit - Add Deft_abi_DK_ARMOR_abitype[(Integer A)] to (Killing unit)
                        Unit - Set level of Deft_abi_DK_ARMOR_abitype[(Integer A)] for (Killing unit) to (Level of (DEATH) Corpse Counter  for (Killing unit))
                    Else - Actions
                        Do nothing

5. Death Conversion (Active)
Converts corpse into the source of Strength for Death Knight. Each additional corpse amplifies its Strength conversion. Amount of Strength gain increases with level. Upon activation of this ability, all of the corpse will be used up.

Example:
Level 1 - Each corpse available increases the Strength of Death Knight with 1.

Code:
Death Conversion
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to (DEATH) Death Conversion 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of (DEATH) Corpse Counter  for (Triggering unit)) Equal to 1
            Then - Actions
                Set DEATHcurrentstatslevel = (Level of (DEATH) Death Conversion  for (Triggering unit))
                Game - Display to (All players controlled by a ((Triggering player) controller) player) for 1.00 seconds the text: |cffffcc00No corpse...
                Unit - Remove (DEATH) Death Conversion  from (Triggering unit)
                Unit - Add (DEATH) Death Conversion  to (Triggering unit)
                Unit - Set level of (DEATH) Death Conversion  for (Triggering unit) to DEATHcurrentstatslevel
            Else - Actions
                Do nothing
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of (DEATH) Corpse Counter  for (Triggering unit)) Greater than or equal to 2
            Then - Actions
                Hero - Modify Strength of (Triggering unit): Add (((Level of (DEATH) Corpse Counter  for (Triggering unit)) - 1) x (Level of (DEATH) Death Conversion  for (Triggering unit)))
                Special Effect - Create a special effect attached to the origin of (Triggering unit) using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
                Special Effect - Destroy (Last created special effect)
                -------- This is to set the Corpse Counter to Level 1 (ZERO corpse) --------
                Unit - Remove (DEATH) Corpse Counter  from (Triggering unit)
                Unit - Add (DEATH) Corpse Counter  to (Triggering unit)
                Unit - Set level of (DEATH) Corpse Counter  for (Triggering unit) to 1
            Else - Actions
                Do nothing
        -------- This is for the armor reduction according to corpse reduction --------
        For each (Integer A) from 1 to 4, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Deft_abi_DK_ARMOR_abitype[(Integer A)] for (Triggering unit)) Greater than or equal to Deft_int_DK_COUNTER_minlvl
                    Then - Actions
                        Unit - Remove Deft_abi_DK_ARMOR_abitype[(Integer A)] from (Triggering unit)
                        Unit - Add Deft_abi_DK_ARMOR_abitype[(Integer A)] to (Triggering unit)
                        Unit - Set level of Deft_abi_DK_ARMOR_abitype[(Integer A)] for (Triggering unit) to (Level of (DEATH) Corpse Counter  for (Triggering unit))
                    Else - Actions
                        Do nothing


Sorry but there is no screenshot available because all the abilities rely on maths instead of graphics. So there is no point of putting pictures :p. Please leave comments regarding the triggering. I'm trying my best to improve my skills. :)



Hope I did everything correctly in posting this.

PS: The variables have 'Deft_' in front of them. Its meant for 'Default', which is how i recognise them in my map. Please dun comment about them :eek:. The damage and armor values I set are rather high because this unit was supposed to be used in my Siege Map (which seems never-to-be finished, that's why I'm sharing this Spellpack).
 

Attachments

  • Death Knight.w3x
    72.2 KB · Views: 282
  • Death Knight Sshot.jpg
    Death Knight Sshot.jpg
    125.2 KB · Views: 343

Doomhammer

Bob Kotick - Gamers' corporate spoilsport No. 1
Reaction score
67
Several times I had the message "no corpse nearby" when there were plenty.
All in all: not too bad; improvements among other things: a bonus should be displayed as bonus: e.g. armor 8 + 5 and not be added directly.

+rep for NOT calling it a "DoTa" Spellpack :D
 

vypur85

Hibernate
Reaction score
803
Demi: Explained above. I can do the s/c for the icons and all (gimme 5 mins). Other than that, the abilities are non-eyecandy.

Hammer: Is the armor bonus not displayed? It is i think. No corpse means that the corpse counter is zero. Not no corpse nearby. You need to kill creeps before you can actually see the effect.
 

Doomhammer

Bob Kotick - Gamers' corporate spoilsport No. 1
Reaction score
67
yeah, somehow a bit misleading, your message. Dunno, maybe wyou want to change it or leave it away.
 

vypur85

Hibernate
Reaction score
803
Hmmm.... Maybe u misunderstood. Lemme simplify it. Learn all the abilities first. Then kill a creep. The corpse counter will turn into 1 (means one creep killed). This will increase the armor value accordingly depending on the corpse counter.

The no corpse text is created mainly was just to refresh the ability again (see the trigger to know). I wanna make sure that the hero's ability gets refreshed if the ability is clicked when the corpse counter is zero (i never bother about the mana though because its a siege map hero, maybe i'll fix that if being requested).
 

Attachments

  • Double Strafe.w3x
    25.4 KB · Views: 188
  • Spells (vypur).w3x
    29.3 KB · Views: 193
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Monovertex Monovertex:
    How are you all? :D
    +1
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top