Spellpack Hero: Warlock

Monsterous

In the Shadows, Lurking.
Reaction score
99
GUI: No Idea :D
MUI: No
Leakless: Hope so.


Name: Warlock
Description: The Warlock, a master of demonology and destruction, making him an extremely powerful spellcaster. Although low in health like most spellcasters, he has very good mana and has a powerful pet, depending on the Warlocks level.


Abilities:


Shadow Split: The Warlock sends a shadowbolt towards the targeted enemy, dealing damage to the unit and an AoE dealing damage divided by the amount of units in a 500 yard radius.
Level 1: Sends a shadowbolt towards the targeted enemy, dealing 150 damage to the unit and an AoE dealing 150 damage divided by the amount of units in a 500 yard radius.
Level 2: Sends a shadowbolt towards the targeted enemy, dealing 200 damage to the unit and an AoE dealing 250 damage divided by the amount of units in a 500 yard radius.
Level 3: Sends a shadowbolt towards the targeted enemy, dealing 250 damage to the unit and an AoE dealing 350 damage divided by the amount of units in a 500 yard radius.

shadowsplitjb2.jpg

Code:
AoE
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Shadow Split 
    Actions
        Set Shadow_Split_Point = (Position of (Target unit of ability being cast))
        Unit - Cause (Target unit of ability being cast) to damage circular area after 0.00 seconds of radius 500.00 at Shadow_Split_Point, dealing (((100.00 x (Real((Level of Shadow Split  for (Triggering unit))))) + 50.00) / (Real((Number of units in (Units in (Region centered at Shadow_Split_Point with size (500.00, 500.00))))))) damage of attack type Spells and damage type Normal
        Special Effect - Create a special effect at Shadow_Split_Point using Units\NightElf\Wisp\WispExplode.mdl
        Special Effect - Destroy (Last created special effect)
        Custom script:   call RemoveLocation (udg_Shadow_Split_Point)

Demonology [Passive]: The Warlock casts a permanent spell upon himself from his Demonology book, giving all his summoned pets more armour, damage and speed. Passive Ability. Increasing every level.
This is fused with the Summon Pet Trigger.

Perish: The Warlock casts a curse on his foe, dealing 50 damage per second, lasting a moderate amount of time on units but only a short amount of time on heroes. Also reduces attack speed, damage and movement speed due to the pain caused.
Level 1: The Warlock casts a curse on his foe, dealing 50 damage per second, lasting 10 seconds but only dealing half the damage towards a Hero. Also reduces attack speed, damage and movement speed due to the pain caused.
Level 2: The Warlock casts a curse on his foe, dealing 50 damage per second, lasting 12 seconds but only dealing half the damage towards a Hero. Also reduces attack speed, damage and movement speed due to the pain caused.
Level 3: The Warlock casts a curse on his foe, dealing 50 damage per second, lasting 14 seconds but only dealing half the damage towards a Hero. Also reduces attack speed, damage and movement speed due to the pain caused.

perishyv1.jpg

Code:
Perish
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Perish 
    Actions
        Set Perish_Target = (Target unit of ability being cast)
        For each (Integer A) from 1 to ((10 + (2 x (Level of Perish  for (Triggering unit)))) - 2), do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((Target unit of ability being cast) is A Hero) Equal to True
                    Then - Actions
                        Unit - Cause (Triggering unit) to damage Perish_Target, dealing 25.00 damage of attack type Spells and damage type Normal
                        Special Effect - Create a special effect attached to the chest of Perish_Target using Abilities\Spells\Undead\DeathandDecay\DeathandDecayDamage.mdl
                        Special Effect - Destroy (Last created special effect)
                        Wait 0.97 seconds
                    Else - Actions
                        Unit - Cause (Triggering unit) to damage Perish_Target, dealing 50.00 damage of attack type Chaos and damage type Normal
                        Special Effect - Create a special effect attached to the chest of Perish_Target using Abilities\Spells\Undead\DeathandDecay\DeathandDecayDamage.mdl
                        Special Effect - Destroy (Last created special effect)
                        Wait 0.97 seconds

Summon Pet: Summons a being from the Twisting Nether, depending on the Warlock's level.
Level 1/2: Giant Skeleton
Level 3/4: Fel Stalker
Level 5/6: Felguard
Level 7/8/9: Infernal
Level 10: Doom Guard

Code:
Summon Revised
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Summon Pet 
    Actions
        Set Summon_Pet_Point = (Position of (Triggering unit))
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Or - Any (Conditions) are true
                    Conditions
                        (Hero level of (Casting unit)) Equal to 1
                        (Hero level of (Casting unit)) Equal to 2
            Then - Actions
                Unit - Create 1 Giant Skeleton Warrior for Player 1 (Red) at Summon_Pet_Point facing Default building facing degrees
                Custom script:   call RemoveLocation (udg_Summon_Pet_Point)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Demonology  for (Triggering unit)) Greater than or equal to 1
                    Then - Actions
                        Unit - Add Deadly Strikes  to (Last created unit)
                        Unit - Set level of Deadly Strikes  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                        Unit - Add Encasement  to (Last created unit)
                        Unit - Set level of Encasement  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                        Unit - Add Fel Energy  to (Last created unit)
                        Unit - Set level of Fel Energy  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                    Else - Actions
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Or - Any (Conditions) are true
                    Conditions
                        (Hero level of (Casting unit)) Equal to 3
                        (Hero level of (Casting unit)) Equal to 4
            Then - Actions
                Unit - Create 1 Fel Stalker for Player 1 (Red) at Summon_Pet_Point facing Default building facing degrees
                Custom script:   call RemoveLocation (udg_Summon_Pet_Point)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Demonology  for (Triggering unit)) Greater than or equal to 1
                    Then - Actions
                        Unit - Add Deadly Strikes  to (Last created unit)
                        Unit - Set level of Deadly Strikes  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                        Unit - Add Encasement  to (Last created unit)
                        Unit - Set level of Encasement  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                        Unit - Add Fel Energy  to (Last created unit)
                        Unit - Set level of Fel Energy  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                    Else - Actions
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Or - Any (Conditions) are true
                    Conditions
                        (Hero level of (Casting unit)) Equal to 5
                        (Hero level of (Casting unit)) Equal to 6
            Then - Actions
                Unit - Create 1 Felguard for Player 1 (Red) at Summon_Pet_Point facing Default building facing degrees
                Custom script:   call RemoveLocation (udg_Summon_Pet_Point)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Demonology  for (Triggering unit)) Greater than or equal to 1
                    Then - Actions
                        Unit - Add Deadly Strikes  to (Last created unit)
                        Unit - Set level of Deadly Strikes  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                        Unit - Add Encasement  to (Last created unit)
                        Unit - Set level of Encasement  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                        Unit - Add Fel Energy  to (Last created unit)
                        Unit - Set level of Fel Energy  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                    Else - Actions
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Or - Any (Conditions) are true
                    Conditions
                        (Hero level of (Casting unit)) Equal to 7
                        (Hero level of (Casting unit)) Equal to 8
                        (Hero level of (Casting unit)) Equal to 9
            Then - Actions
                Unit - Create 1 Infernal for Player 1 (Red) at Summon_Pet_Point facing Default building facing degrees
                Custom script:   call RemoveLocation (udg_Summon_Pet_Point)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Demonology  for (Triggering unit)) Greater than or equal to 1
                    Then - Actions
                        Unit - Add Deadly Strikes  to (Last created unit)
                        Unit - Set level of Deadly Strikes  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                        Unit - Add Encasement  to (Last created unit)
                        Unit - Set level of Encasement  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                        Unit - Add Fel Energy  to (Last created unit)
                        Unit - Set level of Fel Energy  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                    Else - Actions
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Hero level of (Casting unit)) Equal to 10
            Then - Actions
                Unit - Create 1 Doom Guard for Player 1 (Red) at Summon_Pet_Point facing Default building facing degrees
                Custom script:   call RemoveLocation (udg_Summon_Pet_Point)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Demonology  for (Triggering unit)) Greater than or equal to 1
                    Then - Actions
                        Unit - Add Deadly Strikes  to (Last created unit)
                        Unit - Set level of Deadly Strikes  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                        Unit - Add Encasement  to (Last created unit)
                        Unit - Set level of Encasement  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                        Unit - Add Fel Energy  to (Last created unit)
                        Unit - Set level of Fel Energy  for (Last created unit) to (Level of Demonology  for (Triggering unit))
                    Else - Actions
            Else - Actions

Ultimate: Demonic Attunement: Attunes the Warlock to the demons, succumbing him into extremely dark magic - transforming him into an extremely powerful Demon. Lasts 45 seconds.

demonicattunementvq2.jpg

Code:
Start Change
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Demonic Attunement 
    Actions
        Set Demon_Attune_Point = (Position of (Triggering unit))
        Set Demon_Attune_SE_Offset_Points[1] = (Demon_Attune_Point offset by (0.00, 180.00))
        Set Demon_Attune_SE_Offset_Points[2] = (Demon_Attune_Point offset by (90.00, 90.00))
        Set Demon_Attune_SE_Offset_Points[3] = (Demon_Attune_Point offset by (180.00, 0.00))
        Set Demon_Attune_SE_Offset_Points[4] = (Demon_Attune_Point offset by (-90.00, 90.00))
        Set Demon_Attune_SE_Offset_Points[5] = (Demon_Attune_Point offset by (-180.00, 0.00))
        Set Demon_Attune_SE_Offset_Points[6] = (Demon_Attune_Point offset by (-90.00, -90.00))
        Set Demon_Attune_SE_Offset_Points[7] = (Demon_Attune_Point offset by (0.00, -180.00))
        Set Demon_Attune_SE_Offset_Points[8] = (Demon_Attune_Point offset by (90.00, -90.00))
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at Demon_Attune_SE_Offset_Points[1] facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at Demon_Attune_SE_Offset_Points[2] facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at Demon_Attune_SE_Offset_Points[3] facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at Demon_Attune_SE_Offset_Points[4] facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at Demon_Attune_SE_Offset_Points[5] facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at Demon_Attune_SE_Offset_Points[6] facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at Demon_Attune_SE_Offset_Points[7] facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at Demon_Attune_SE_Offset_Points[8] facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Wait 1.00 seconds
        Unit Group - Pick every unit in Demon_Attune_Unit_Group and do (Actions)
            Loop - Actions
                Unit - Remove (Picked unit) from the game
        Special Effect - Create a special effect attached to the origin of (Triggering unit) using Abilities\Spells\Undead\ReplenishMana\ReplenishManaCaster.mdl
        Special Effect - Destroy (Last created special effect)
        Special Effect - Create a special effect attached to the origin of (Triggering unit) using Abilities\Spells\NightElf\BattleRoar\RoarCaster.mdl
        Special Effect - Destroy (Last created special effect)
        Custom script:   call DestroyGroup (udg_Demon_Attune_Unit_Group)
        Custom script:   call RemoveLocation (udg_Demon_Attune_Point)
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[1])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[2])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[3])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[4])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[5])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[6])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[7])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[8])


Pet Abilities:

Giant Skeletal Warrior [Non-Triggered]:
Shield Bash:
Bashs the enemy unit, dealing small damage and a short stun.

Fel Stalker [Non-Triggered]:
Mana Burn:
Strikes the enemy with a bolt of negative energy, draining 125 mana.

Fel Guard [Triggered]:
Fel Charge:
Sends the Felguard towards the targeted enemy unit, moving incredibly fast and dealing 200 damage to the unit, also dealing an additional 100 damage to nearby units around the Felguard.

Infernal [Triggered]:
Meteor Strike:
Sends 8 small meteorites nearby towards the Infernal, causing 50 damage to whomever is hit by a Meteor.

Doom Guard [Non-Triggered]:
Demon Grasp:
The Doom Guard stomps his hoof, dealing 100 damage to nearby units and stopping them from moving for 5 seconds. Does not work against Heroes.

Tell me what you think :D
 

Attachments

  • Warlock Spellpack.w3x
    29 KB · Views: 255
I like the effects of the ultimate, and I reckon your triggers can be shortened further.

For e.g, Shadow Split, it can be (100 + (level of ability * 50)) giving you the same amount, instead of 150, 200, 250 resulting in one large chunk of actions.

The same for your pet trigger, instead of 1, 1, 1, do "Set blah to (level of Demonology of Triggering Unit)" etc. It can shorten way madly, and how come that ability has 10 levels lol.
 
N-I-C-E I like it, good job man spells really do represent a warlock.
 
To Kenoriga:
The ability only has one level, it detetcs the level of the hero to determine what pet to choose. Edit: Ah i see what you mean now - never occured to me. Ill fix that later, on a different computer :D And thanks for the ultimate comment :p

To Juty: Thanks :D
 
Whoops missed the "depending on the Warlock's level". Haha. I shall start playing with angles one day... Your ultimate inspires me, no matter how simple it looks.
 
Nice one :D +repo
I just though it was the warlock from DotA :p LoL
 
Now you mentioned, I just tested the map :p
 
Code:
Then - Actions
                Unit - Cause (Target unit of ability being cast) to damage circular area after 0.00 seconds of radius 500.00 at Shadow_Split_Point, dealing (350.00 / (Real((Number of units in (Units in (Region centered at Shadow_Split_Point with size (500.00, 500.00))))))) damage of attack type Spells and damage type Normal
                [B]Special Effect - Create a special effect at Shadow_Split_Point using Units\NightElf\Wisp\WispExplode.mdl[/B]
                Custom script:   call RemoveLocation (udg_Shadow_Split_Point)
Is this..?
 
Fixed that leak - thanks GaLs.

Also implemented a shorter trigger for Shadow Split (thanks to Kenoriga). + rep to both of you :D
 
for shadow split, it may damages ur units too...because ur using the area damage, not using unit groups

but still nice
 
You know that u are leaking a lots of location right ?
Code:
    Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at (Demon_Attune_Point offset by (0.00, 180.00)) facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at (Demon_Attune_Point offset by (90.00, 90.00)) facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at (Demon_Attune_Point offset by (180.00, 0.00)) facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at (Demon_Attune_Point offset by (-90.00, 90.00)) facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at (Demon_Attune_Point offset by (-180.00, 0.00)) facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at (Demon_Attune_Point offset by (-90.00, -90.00)) facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at (Demon_Attune_Point offset by (0.00, -180.00)) facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
        Unit - Create 1 Demonic Attunement Dummy for (Owner of (Triggering unit)) at (Demon_Attune_Point offset by (90.00, -90.00)) facing Default building facing degrees
        Unit Group - Add (Last created unit) to Demon_Attune_Unit_Group
Also you can simplify that with a some loops

The leaks are all those Offset Points
 
is the Point and Offset an entirely different leak? If so how would i fix the offset one :D
 
yes it's another point inside a point :p set The offset to a point and use in that OffSetVariablePoint the VariablePoint that you setted for tha caster.

Code:
set YourPointOffSetVariableThatYouWantAndItisAVariablePoint=(Demon_Attune_Point offset by (0.00, 180.00))

Of course don't use that name :p Maybe you want also to make the variable an array
 
Code:
   Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[1])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[2])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[3])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[4])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[5])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[6])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[7])
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[8])

Could be
Code:
For each (Integer A) from 1 to 8, do (Actions)
    Loop - Actions
        Custom script:   call RemoveLocation (udg_Demon_Attune_SE_Offset_Points[bj_forLoopAIndex])
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • The Helper The Helper:
    News portal has been retired. Main page of site goes to Headline News forum now
  • The Helper The Helper:
    I am working on getting access to the old news portal under a different URL for those that would rather use that for news before we get a different news view.
  • Ghan Ghan:
    Easily done
    +1
  • The Helper The Helper:
    https://www.thehelper.net/pages/news/ is a link to the old news portal - i will integrate it into the interface somewhere when i figure it out
  • Ghan Ghan:
    Need to try something
  • Ghan Ghan:
    Hopefully this won't cause problems.
  • Ghan Ghan:
    Hmm
  • Ghan Ghan:
    I have converted the Headline News forum to an Article type forum. It will now show the top 20 threads with more detail of each thread.
  • Ghan Ghan:
    See how we like that.
  • The Helper The Helper:
    I do not see a way to go past the 1st page of posts on the forum though
  • The Helper The Helper:
    It is OK though for the main page to open up on the forum in the view it was before. As long as the portal has its own URL so it can be viewed that way I do want to try it as a regular forum view for a while
  • Ghan Ghan:
    Yeah I'm not sure what the deal is with the pagination.
  • Ghan Ghan:
    It SHOULD be there so I think it might just be an artifact of having an older style.
  • Ghan Ghan:
    I switched it to a "Standard" article forum. This will show the thread list like normal, but the threads themselves will have the first post set up above the rest of the "comments"
  • The Helper The Helper:
    I don't really get that article forum but I think it is because I have never really seen it used on a multi post thread
  • Ghan Ghan:
    RpNation makes more use of it right now as an example: https://www.rpnation.com/news/
  • The Helper The Helper:
  • The Helper The Helper:
    What do you think Tom?
  • tom_mai78101 tom_mai78101:
    I will have to get used to this.
  • tom_mai78101 tom_mai78101:
    The latest news feed looks good
  • The Helper The Helper:
    I would like to see it again like Ghan had it the first time with pagination though - without the pagination that view will not work but with pagination it just might...
  • The Helper The Helper:
    This drink recipe I have had more than a few times back in the day! Mind Eraser https://www.thehelper.net/threads/cocktail-mind-eraser.194720/

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top