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

Raigor Stonehoof the Earth Shaker spells v1.0

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
This spells created by me, they're similar to DotA hero {Raigor}.
The spells are GUI and MUI.

Please give me credits if you used it.
BY Storm_hih



Triggers:

1.Fissure

  • Fissure
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fissure
    • Actions
      • Set FissureCaster = (Triggering unit)
      • Set FissurePoint = (Position of (Triggering unit))
      • Set FissurePoint2[1] = (Target point of ability being cast)
      • Set FissureAngle = (Angle from FissurePoint to FissurePoint2[1])
      • Custom script: call RemoveLocation (udg_FissurePoint2[1])
      • For each (Integer FissureLoop) from 1 to 12, do (Actions)
        • Loop - Actions
          • Set FissurePoint2[FissureLoop] = (FissurePoint offset by (100.00 x (Real(FissureLoop))) towards FissureAngle degrees)
          • Special Effect - Create a special effect at FissurePoint2[FissureLoop] using Abilities\Spells\Other\Volcano\VolcanoDeath.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Create 1 Fissure for (Owner of FissureCaster) at FissurePoint2[FissureLoop] facing FissureAngle degrees
          • Unit - Turn collision for (Last created unit) Off
          • Unit - Add a 8.00 second Generic expiration timer to (Last created unit)
          • Unit - Create 1 Fissure Collision for (Owner of FissureCaster) at FissurePoint2[FissureLoop] facing FissureAngle degrees
          • Unit - Add a 8.00 second Generic expiration timer to (Last created unit)
          • Set FissureCheckGroup = (Units within 225.00 of FissurePoint2[FissureLoop] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is in FissureGroup) Not equal to True) and (((Matching unit) belongs to an
          • Unit Group - Pick every unit in FissureCheckGroup and do (Actions)
            • Loop - Actions
              • Unit - Cause FissureCaster to damage (Picked unit), dealing (75.00 + (50.00 x (Real((Level of Fissure for FissureCaster))))) damage of attack type Spells and damage type Universal
              • Unit Group - Add (Picked unit) to FissureGroup
              • Unit - Create 1 Dummy for (Owner of FissureCaster) at FissurePoint2[FissureLoop] facing 0.00 degrees
              • Set FissureDummy = (Last created unit)
              • Unit - Add a 1.00 second Generic expiration timer to FissureDummy
              • Unit - Add Fissure Stun to FissureDummy
              • Unit - Set level of Fissure Stun for FissureDummy to (Level of Fissure for FissureCaster)
              • Unit - Order FissureDummy to Neutral - Firebolt (Picked unit)
          • Custom script: call DestroyGroup (udg_FissureCheckGroup)
          • Custom script: call RemoveLocation (udg_FissurePoint2[udg_FissureLoop])
      • Unit Group - Remove all units from FissureGroup
      • Set FissureCaster = No unit
      • Custom script: call RemoveLocation (udg_FissurePoint)


2.Clear the Fissure and Dummies

  • Clear
    • Events
      • Unit - A unit Dies
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Unit-type of (Triggering unit)) Equal to Dummy
          • (Unit-type of (Triggering unit)) Equal to Fissure
          • (Unit-type of (Triggering unit)) Equal to Fissure Collision
    • Actions
      • Unit - Remove (Triggering unit) from the game


3.Enchant Totem Group

  • Enchant Totem Group
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is in EnchantGroup) Not equal to True
            • Then - Actions
              • Unit Group - Add (Picked unit) to EnchantGroup
              • Trigger - Add to Enchant Attack <gen> the event (Unit - (Picked unit) Takes damage)
            • Else - Actions


4.Enchant Totem Attack

  • Enchant Attack
    • Events
    • Conditions
      • ((Damage source) has buff Enchant Totem ) Equal to True
    • Actions
      • Unit - Remove Enchant Totem buff from (Damage source)


5.Aftershock

  • Aftershock
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Level of Aftershock for (Triggering unit)) Greater than 0
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to Encahnt Totem
          • (Ability being cast) Equal to Fissure
          • (Ability being cast) Equal to Echo Slam
    • Actions
      • Set AfterPoint = (Position of (Triggering unit))
      • Special Effect - Create a special effect at AfterPoint using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Create 1 Dummy for (Owner of (Triggering unit)) at AfterPoint facing 0.00 degrees
      • Set AfterDummy = (Last created unit)
      • Custom script: call RemoveLocation (udg_AfterPoint)
      • Unit - Add a 1.00 second Generic expiration timer to AfterDummy
      • Unit - Add After Shock Stun to AfterDummy
      • Unit - Set level of After Shock Stun for AfterDummy to (Level of Aftershock for (Triggering unit))
      • Unit - Order AfterDummy to Orc Tauren Chieftain - War Stomp


6.Echo Slam

  • Echo Slam
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Echo Slam
    • Actions
      • Set EchoPoint = (Position of (Triggering unit))
      • Set EchoGroup = (Units within 500.00 of EchoPoint matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit)
      • Unit Group - Pick every unit in EchoGroup and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Echo Slam for (Triggering unit)) Equal to 1
            • Then - Actions
              • Unit - Cause (Triggering unit) to damage (Picked unit), dealing 160.00 damage of attack type Magic and damage type Universal
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Echo Slam for (Triggering unit)) Equal to 2
                • Then - Actions
                  • Unit - Cause (Triggering unit) to damage (Picked unit), dealing 210.00 damage of attack type Magic and damage type Universal
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Level of Echo Slam for (Triggering unit)) Equal to 3
                    • Then - Actions
                      • Unit - Cause (Triggering unit) to damage (Picked unit), dealing 270.00 damage of attack type Magic and damage type Universal
                    • Else - Actions
      • Custom script: call RemoveLocation (udg_EchoPoint)
      • Custom script: call DestroyGroup (udg_EchoGroup)
Contents

Earth Shaker spells by Storm_hih (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. 17:54, 19th Jul 2012 Magtheridon96: udg_FissurePoint2 doesn't need to be an array In the Echo Slam spell, you shouldn't use that if block to deal damage, use a formula. Try not to...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.

17:54, 19th Jul 2012
Magtheridon96:

  • udg_FissurePoint2 doesn't need to be an array
  • In the Echo Slam spell, you shouldn't use that if block to deal damage, use a formula.
  • Try not to repeat function calls over and over again, use variables to store the data instead.
  • Use Bribe's Damage Engine to detect damage events rather than making your own form of damage detection.
  • You have no configuration at all here. Damage should be configurable, effects should be configurable, etc...
  • Some of these spells are way too simple and your "Enchant Totem" spell registers events to a trigger more than once for the same unit.

Needs fix.
 
Level 16
Joined
May 1, 2008
Messages
1,605
Moin moin =)

Well another DotA-copy - I thought we got away from this but hey never mind:

Fissure:
- Just wondering why you use in the loop "Integer FissureLoop". For me it works without use that variable here.

Enchant Totem Group:
- You need to destroy the group you using there
- Also the point you use for the group pick need to be stored into a variable and destroy after.

Echo Slam:
- Already said: You don't need to use the actions for every level, just use the formula GIMLI_2 gave you.

Note:
You should store the caster (triggering unit) into a variable and refer to it, if you use in all of your actions of the spell more then once (triggering unit). Because (triggering unit) always calls a function.

This is all I can see so far. Since I'm not a friend of just copy some spells which already exists, you code them well, even if you would like them better in Jass.

Greetings and Peace
Dr. Boom
 
Level 12
Joined
Apr 28, 2012
Messages
166
I really do not like your dota work. U know to dota is very popular and u know to others will dl your map just because it has small part of it. If someone requested u this ok, but do something original. Nothing else to add

I don't need anything for them really, i just do them for my self for fun, and if i liked them i post them here and any one can take it.
 
@above - off-topic dude...

@Dr Boom: because integer A/B loops sometimes cause random bugs, they just suddenly stop sometimes, which is why it is preferred to use custom variable loop

@hammer - I totally agree

@storm:

again, don't DP

Hmmm... where's the echo of the echo slam? I believe echo slam is like this:

an FoK based spell (which also acts as the spell that ES casts) deals the initial damage (the huge shockwaves), then the echoes (the little shockwaves) are done via triggers (another FoK based ability, a dummy caster is created for every unit that will cause an echo)...

and oh, your enchant totem is inefficient... it will produce lots of unneeded events [once the unit dies, the event stays]...

And you should seriously learn how to make a configuration setting for your resources... its not a good idea for a user to go into the core of the triggers just to modify a basic part like damage...

I know its based from DotA, but since you uploaded it as a public resource you should put into consideration that someone will be using it in a different map, so make sure that everything that needs to be configurable is as easily configurable as possible... like the damages and the length of fissure...

The thing lacking from your spell packs was their applicability on non-DotA maps... the way you structured the triggers make it harder for the user to modify it than it should be... if you just want to recreate DotA spells, then do so, but don't upload the spells as public resource unless you make them as public friendly as possible...

I suggest you learn how to make your spells configurable first and user-friendly and update them all before uploading another one...
 
Level 8
Joined
Sep 18, 2011
Messages
195
You mean that i should write comments in the trigger to make the user know what is this?
No, You should set up a trigger to config variables such as damage for each level etc

for example a trigger:
where the event is map initialization
and the actions are:
set Damage[1] = 200;
set Damage[2] = 250;
set Damage[3] = 300;
1,2,3 for the level number

and comments if there is anything that can be changed by the user
 
Level 10
Joined
Aug 21, 2010
Messages
316
If you already want to post something here from dota, then try to start to look a little dota war3map.j file,It can be very useful for you. I am a big fan of dota, and because of this reason I have a lot of open version of dota.From 6.12 up to latest version.So it was for my eyes, this horror film.
 
Top