Spellpack Earthshaker Spellpack

Ayanami

칼리
Reaction score
288
Introduction
Well, I was bored and decided to make Earthshaker's spells from DoTA.

Requirements
- Friendly-GUI Damage Detection by Weep

The spells:
  • Fissure [Active]
  • Enchant Totem [Active]
  • Aftershock [Passive]
  • Echo Slam [Active]


Details
- The spells are GUI like I stated above.
- They are leakless (hope so) and lagless (at least for me).
- It is MUI, meaning can be cast many times at the same instance.
- Easy to import.
- It's an Earthshaker from DoTA! :D


Spells

Fissure

Description:
Slams the ground with the Raigor's mighty totem, causing the ground to crack open front of him, damaging opponents and leaving an impassable crevasse for a period of time.

Level 1 - Deals 125 damage and stun lasts for 1.00 second.
Level 2 - Deals 175 damage and stun lasts for 1.25 seconds.
Level 3 - Deals 225 damage and stun lasts for 1.50 seconds.
Level 4 - Deals 275 damage and stun lasts for 1.75 seconds.

Cooldown - 15 seconds

Screenshot:

fissure.jpg

Code:
Trigger:
  • Fissure
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to FiAbilityMain
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FiCustomValue Less than 100
        • Then - Actions
          • Set FiCustomValue = (FiCustomValue + 1)
        • Else - Actions
          • Set FiCustomValue = 1
      • Set FiRealDuration[FiCustomValue] = 8.00
      • Set TempPoint = (Position of (Triggering unit))
      • Set FiTargetPoint = (Target point of ability being cast)
      • Set FiRealDistance = 0.00
      • Set TempReal = (Angle from TempPoint to FiTargetPoint)
      • For each (Integer A) from 1 to 19, do (Actions)
        • Loop - Actions
          • Set FiRealDistance = (FiRealDistance + 64.00)
          • Set TempOffset = (TempPoint offset by FiRealDistance towards TempReal degrees)
          • Special Effect - Create a special effect at TempOffset using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect at TempOffset using Abilities\Spells\Other\Volcano\VolcanoDeath.mdl
          • Special Effect - Destroy (Last created special effect)
          • Destructible - Create a FissureDestructible at TempOffset facing (Random angle) with scale 0.50 and variation (Integer(TempReal))
          • Set FiDestructible[((FiCustomValue x 20) + (Integer A))] = (Last created destructible)
          • Custom script: call RemoveLocation(udg_TempOffset)
      • Unit - Create 1 HiddenDummy for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
      • Unit - Set the custom value of (Last created unit) to FiCustomValue
      • Unit Group - Add (Last created unit) to FiDummyGroup
      • Custom script: call RemoveLocation(udg_FiTargetPoint)
      • Custom script: call RemoveLocation(udg_TempPoint)


Trigger:
  • Fissure Periodic
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Triggering unit) is in FiDummyGroup) Equal to True
    • Actions
      • Set TempInt = (Custom value of (Triggering unit))
      • For each (Integer A) from 1 to 19, do (Actions)
        • Loop - Actions
          • Destructible - Remove FiDestructible[((TempInt x 20) + (Integer A))]
      • Unit - Remove (Picked unit) from the game


Enchant Totem

Description:
Empowers the totem resting on Raigor's back, causing it to deal extra damage on the next attack. Lasts for 14 seconds or 1 attack.

Level 1 - Increases Damage by 50%.
Level 2 - Increases Damage by 100%.
Level 3 - Increases Damage by 150%.
Level 4 - Increases Damage by 200%.

Cooldown - 7 seconds

Screenshot:
enchanttotem.jpg

Code:
Trigger:
  • Enchant Totem
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to EnAbilityMain
    • Actions
      • Unit - Add EnAbilitySpellBook to (Triggering unit)
      • Unit Group - Add (Triggering unit) to EnUnitGroup


Trigger:
  • Enchant Totem Damage
    • Events
      • Game - GDD_Event becomes Equal to 0.00
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (GDD_DamagedUnit has buff Enchant Totem (Non-stacking)) Equal to True
          • (GDD_DamagedUnit has buff Enchant Totem (Stacking)) Equal to True
    • Actions
      • Unit - Remove EnAbilitySpellBook from GDD_DamageSource
      • Unit - Remove Enchant Totem buff from GDD_DamageSource
      • Unit - Remove Enchant Totem (Non-stacking) buff from GDD_DamagedUnit
      • Unit - Remove Enchant Totem (Stacking) buff from GDD_DamagedUnit
      • Unit Group - Remove (Picked unit) from EnUnitGroup


Trigger:
  • Enchant Totem Periodic
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in EnUnitGroup and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) has buff Enchant Totem ) Equal to False
            • Then - Actions
              • Unit - Remove EnAbilitySpellBook from (Picked unit)
              • Unit Group - Remove (Picked unit) from EnUnitGroup
            • Else - Actions


Aftershock

Description:
The power of Raigor casting a spell causes the earth to shake below him, dealing additional damage and stunning.

Level 1 - Deals 25 damage and 0.3 seconds stun.
Level 2 - Deals 45 damage and 0.7 seconds stun.
Level 3 - Deals 75 damage and 1.2 seconds stun
Level 4 - Deals 225 damage and 1.5 seconds stun

Passive

Code:
Trigger:
  • Aftershock
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to FiAbilityMain
          • (Ability being cast) Equal to EnAbilityMain
          • (Ability being cast) Equal to ESAbilityMain
      • (Level of AfAbilityMain for (Triggering unit)) Greater than 0
    • Actions
      • Set TempPoint = (Position of (Triggering unit))
      • Special Effect - Create a special effect at TempPoint using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Create 1 CasterDummy for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
      • Unit - Add AfAbilityStun to (Last created unit)
      • Unit - Set level of AfAbilityStun for (Last created unit) to (Level of AfAbilityMain for (Triggering unit))
      • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Custom script: call RemoveLocation(udg_TempPoint)

Echo Slam

Description:
Raigor sends shockwaves shooting through the ground, dealing damage ricocheting to nearby targets for additional damage.

Level 1 - 200 Initial Damage and 35 Echo Damage.
Level 2 - 275 Initial Damage and 45 Echo Damage.
Level 3 - 350 Initial Damage and 65 Echo Damage.

Cooldown - Cooldown: 150/130/110 seconds

Screenshot:
echoslam.jpg

Code:
Trigger:
  • Echo Slam
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to ESAbilityMain
    • Actions
      • Set TempPoint = (Position of (Triggering unit))
      • Set TempUnitGroup = (Units within 500.00 of TempPoint matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))))
      • Set ESUnitGroup = (Units within 500.00 of TempPoint matching ((((Matching unit) is A structure) Equal to False) and (((Matching unit) is A flying unit) Equal to False)))
      • Unit Group - Pick every unit in ESUnitGroup and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is alive) Equal to True
            • Then - Actions
              • Set TempOffset = (Position of (Picked unit))
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Picked unit) is in TempUnitGroup) Equal to True
                • Then - Actions
                  • Unit Group - Remove (Picked unit) from TempUnitGroup
                  • Unit Group - Pick every unit in TempUnitGroup and do (Actions)
                    • Loop - Actions
                      • Unit - Create 1 CasterDummy for (Owner of (Triggering unit)) at TempOffset facing Default building facing degrees
                      • Unit - Add ESAbilityDamageAlive to (Last created unit)
                      • Unit - Set level of ESAbilityDamageAlive for (Last created unit) to (Level of AfAbilityMain for (Triggering unit))
                      • Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
                      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
                  • Unit Group - Add (Picked unit) to TempUnitGroup
                • Else - Actions
                  • Unit Group - Pick every unit in TempUnitGroup and do (Actions)
                    • Loop - Actions
                      • Unit - Create 1 CasterDummy for (Owner of (Triggering unit)) at TempOffset facing Default building facing degrees
                      • Unit - Add ESAbilityDamageAlive to (Last created unit)
                      • Unit - Set level of ESAbilityDamageAlive for (Last created unit) to (Level of AfAbilityMain for (Triggering unit))
                      • Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
                      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
              • Custom script: call RemoveLocation(udg_TempOffset)
            • Else - Actions
              • Set TempOffset = (Position of (Picked unit))
              • Unit Group - Pick every unit in TempUnitGroup and do (Actions)
                • Loop - Actions
                  • Unit - Create 1 CasterDummy for (Owner of (Triggering unit)) at TempOffset facing Default building facing degrees
                  • Unit - Add ESAbilityDamageDead to (Last created unit)
                  • Unit - Set level of ESAbilityDamageDead for (Last created unit) to (Level of AfAbilityMain for (Triggering unit))
                  • Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
                  • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
              • Custom script: call RemoveLocation(udg_TempOffset)
      • Unit Group - Pick every unit in TempUnitGroup and do (Actions)
        • Loop - Actions
          • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (125.00 + (75.00 x (Real((Level of ESAbilityMain for (Triggering unit)))))) damage of attack type Spells and damage type Magic
      • Custom script: call DestroyGroup(udg_ESUnitGroup)
      • Custom script: call DestroyGroup(udg_TempUnitGroup)
      • Custom script: call RemoveLocation(udg_TempPoint)


Credits
Code:
[COLOR="Red"]GUI-Friendly Damage Detection[/COLOR] - Weep @ [URL="www.thehelper.net"]TheHelper[/URL]


Changelogs
Code:
Version 1.0
- Initial relase
Version 1.1
- Changed the base spell of Echo Slam from Channel to Fan of Knives
Version 1.2
- Fixed the issue where Aftershock occurs even though it is not learned.
- Removed unecessary conditions in the triggers: "Fissure Periodic" and "Enchant Totem Perodic"
- "Fissure Periodic" no longer uses periodic trigger. Instead uses a death detection event.
- Enchant Totem now correctly removes the Buff Placer ability when duration of the spell is over.

Any comments, flame or any kind of encouragement will be appreciated. Just give me a feedback :p
 

Attachments

  • Earthshaker Spellpack v1.2.w3x
    55.9 KB · Views: 1,189

Angel_Island

Much long, many time, wow
Reaction score
56
The Echo slam shall be cast instantly without casting time. Base it on fan of knives instead.
 

avalya

New Member
Reaction score
37
I believe the Echo Slam's echoes are Fan of Knives as well, so your base spell is Fan of Knives, dealing X damage to targets within 500 AOE, then pick the targets and create dummies at their location that uses Fan of Knives that deals the minor damage in an AOE of 300 or whatever it is.
 

Ayanami

칼리
Reaction score
288
I believe the Echo Slam's echoes are Fan of Knives as well, so your base spell is Fan of Knives, dealing X damage to targets within 500 AOE, then pick the targets and create dummies at their location that uses Fan of Knives that deals the minor damage in an AOE of 300 or whatever it is.

Are you sure the echo damage is Fan of Knives? Then how would the echo have shock waves homing the enemies?
 

kingkingyyk3

Visitor (Welcome to the Jungle, Baby!)
Reaction score
216
emjlr3's did it based on fan of knifes.
The map is quite old, need some time to find it.
 

Viikuna

No Marlo no game.
Reaction score
265
Yep, its all fan of knives all the way.

You should probably try if you can do all those fan of knives with one dummy, btw. It should reduce some lagg, sicne you dont have to create one dummy for each unit hit by the spell.

( Even if DotA created new dummies alla time, it doesnt mean that you have to do it as badly )
 

Ayanami

칼리
Reaction score
288
Well, I tried fan of knives but seems that the shock waves don't appear. Fixed Aftershock from occurring even though it wasn't learned.
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
Nice to see someone else using my GDD. :)

It would make it easier to import if you left the "GDD Variable Creator" trigger in place...

Trigger:
  • Fissure Periodic
    • [...]
      • For each (Integer A) from 1 to 19, do (Actions)
        • Loop - Actions
          • Destructible - Remove FiDestructible[((TempInt x 20) + (Integer A))]
      • Unit - Remove (Picked unit) from the game
It would be good to remove the unit from the group before removing it from the game, so you don't build up lag from "shadow references" in the group. Also, you don't really need the trigger's condition, because the loop already won't run if there are no units in it.

Since you're already using a dummy unit as a reference placeholder, you don't even need that periodic trigger - give the dummy unit an expiration timer when it's created, and have the removal trigger's event be unit death, with condition that the triggering unit is in FiDummyGroup, and the actions only need to be the part within the unit group loop.

Enchant Totem Periodic
Again, you don't really need the condition. Also, the spell book with the buff placer should be removed by this trigger, when the buff is gone.

Trigger:
  • Aftershock
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to FiAbilityMain
          • (Ability being cast) Equal to EnAbilityMain
          • (Ability being cast) Equal to ESAbilityMain
    • Actions
The conditions ought to include "(Level of AfAbilityMain for (Triggering unit)) Greater than 0" - as it is, Aftershock will trigger even when the hero has not put any points in the ability.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Varine Varine:
    How can you tell the difference between real traffic and indexing or AI generation bots?
  • The Helper The Helper:
    The bots will show up as users online in the forum software but they do not show up in my stats tracking. I am sure there are bots in the stats but the way alot of the bots treat the site do not show up on the stats
  • Varine Varine:
    I want to build a filtration system for my 3d printer, and that shit is so much more complicated than I thought it would be
  • Varine Varine:
    Apparently ABS emits styrene particulates which can be like .2 micrometers, which idk if the VOC detectors I have can even catch that
  • Varine Varine:
    Anyway I need to get some of those sensors and two air pressure sensors installed before an after the filters, which I need to figure out how to calculate the necessary pressure for and I have yet to find anything that tells me how to actually do that, just the cfm ratings
  • Varine Varine:
    And then I have to set up an arduino board to read those sensors, which I also don't know very much about but I have a whole bunch of crash course things for that
  • Varine Varine:
    These sensors are also a lot more than I thought they would be. Like 5 to 10 each, idk why but I assumed they would be like 2 dollars
  • Varine Varine:
    Another issue I'm learning is that a lot of the air quality sensors don't work at very high ambient temperatures. I'm planning on heating this enclosure to like 60C or so, and that's the upper limit of their functionality
  • Varine Varine:
    Although I don't know if I need to actually actively heat it or just let the plate and hotend bring the ambient temp to whatever it will, but even then I need to figure out an exfiltration for hot air. I think I kind of know what to do but it's still fucking confusing
  • The Helper The Helper:
    Maybe you could find some of that information from AC tech - like how they detect freon and such
  • Varine Varine:
    That's mostly what I've been looking at
  • Varine Varine:
    I don't think I'm dealing with quite the same pressures though, at the very least its a significantly smaller system. For the time being I'm just going to put together a quick scrubby box though and hope it works good enough to not make my house toxic
  • Varine Varine:
    I mean I don't use this enough to pose any significant danger I don't think, but I would still rather not be throwing styrene all over the air
  • The Helper The Helper:
    New dessert added to recipes Southern Pecan Praline Cake https://www.thehelper.net/threads/recipe-southern-pecan-praline-cake.193555/
  • The Helper The Helper:
    Another bot invasion 493 members online most of them bots that do not show up on stats
  • Varine Varine:
    I'm looking at a solid 378 guests, but 3 members. Of which two are me and VSNES. The third is unlisted, which makes me think its a ghost.
    +1
  • The Helper The Helper:
    Some members choose invisibility mode
    +1
  • The Helper The Helper:
    I bitch about Xenforo sometimes but it really is full featured you just have to really know what you are doing to get the most out of it.
  • The Helper The Helper:
    It is just not easy to fix styles and customize but it definitely can be done
  • The Helper The Helper:
    I do know this - xenforo dropped the ball by not keeping the vbulletin reputation comments as a feature. The loss of the Reputation comments data when we switched to Xenforo really was the death knell for the site when it came to all the users that left. I know I missed it so much and I got way less interested in the site when that feature was gone and I run the site.
  • Blackveiled Blackveiled:
    People love rep, lol
    +1
  • The Helper The Helper:
    The recipe today is Sloppy Joe Casserole - one of my faves LOL https://www.thehelper.net/threads/sloppy-joe-casserole-with-manwich.193585/
  • The Helper The Helper:
    Decided to put up a healthier type recipe to mix it up - Honey Garlic Shrimp Stir-Fry https://www.thehelper.net/threads/recipe-honey-garlic-shrimp-stir-fry.193595/

      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