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

Magma Crater

Magma Crater

Created by x-omg-x




Description

The hero creates a heavy magma explosion at a target position, pulling nearby enemy units around in circles untill they dont burn anymore. Burning units will take 20 damage each secound, for 5/6/7 seconds. If the burning unit is a hero it will loose 20 mana each second, instead of taking damage. Burning units is also destroying nearby trees.
How to import

Go to "File->Preferences" and check "Automatically create unknown variables when pasting trigger data".
Copy/Paste the folder "Magma Crater" into your map.
Copy/Paste the abillity "Magma Crater" into your map.
You're done!
About

A simple spell made as a request.
The spell is MUI, MPI, leakless and bugless.
It contains 2 triggers and is operating with indexing by me.
Copyright

This spell is made by me and all credits goes to me.
Do not distribute this spell to any other sites.
You're allowed to use it and edit it if you give credits to me.
Triggers
  • MagmaCraterCast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Magma Crater
    • Actions
      • -------- --------
      • -------- Magma Crater --------
      • -------- Created by x-omg-x --------
      • -------- --------
      • -------- --------
      • -------- Indexing.. Do not touch this without any knowledge. --------
      • Set MC_MaxIndex = 500
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • MC_IndexSize Greater than or equal to MC_MaxIndex
        • Then - Actions
          • Set MC_IndexSize = 1
        • Else - Actions
          • Set MC_IndexSize = (MC_IndexSize + 1)
      • Set MC_Index[MC_IndexSize] = MC_IndexSize
      • Set INDEX = MC_Index[MC_IndexSize]
      • -------- Indexing done.. Do not touch it without any knowledge. --------
      • -------- --------
      • -------- The casting unit --------
      • Set MC_Caster[INDEX] = (Triggering unit)
      • -------- The target point of abillity being cast --------
      • Set MC_TargetPoint[INDEX] = (Target point of ability being cast)
      • -------- The level of the spell --------
      • Set MC_Level[INDEX] = (Level of Magma Crater for MC_Caster[INDEX])
      • -------- The duration of the spell --------
      • Set MC_Duration[INDEX] = (4.00 + (Real(MC_Level[INDEX])))
      • -------- Destroy trees hit by the affacted units? --------
      • Set MC_DestroyTrees = True
      • -------- The special effect created at the target location --------
      • Special Effect - Create a special effect at MC_TargetPoint[INDEX] using Abilities\Spells\Other\Doom\DoomDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- This clears the memory of the group below --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 300.00 of MC_TargetPoint[INDEX] matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of MC_Caster[INDEX])) Equal to True))) and do (Actions)
        • Loop - Actions
          • -------- Making the picked unit unable to move, attack and cast spells --------
          • Unit - Pause (Picked unit)
          • -------- Adding the picked unit to the affacted units --------
          • Unit Group - Add (Picked unit) to MC_DamageGroup
      • -------- Turns the trigger on if it is turned off --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in MC_DamageGroup) Greater than 0
        • Then - Actions
          • Trigger - Turn on MagmaCraterRun <gen>
        • Else - Actions
  • MagmaCraterRun
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • -------- DO NOT THOUCH ANYTHING IN THIS TRIGGER WITHOUT A KNOWLEDGE ABOUT IT --------
      • -------- DO NOT THOUCH ANYTHING IN THIS TRIGGER WITHOUT A KNOWLEDGE ABOUT IT --------
      • Set MC_Duration[INDEX] = (MC_Duration[INDEX] - 0.02)
      • Unit Group - Pick every unit in MC_DamageGroup and do (Actions)
        • Loop - Actions
          • Unit - Set the custom value of (Picked unit) to (Integer(MC_Duration[INDEX]))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Custom value of (Picked unit)) Less than or equal to 0) or (((Picked unit) is alive) Equal to False)
            • Then - Actions
              • Unit - Unpause (Picked unit)
              • Unit Group - Remove (Picked unit) from MC_DamageGroup
              • Custom script: call RemoveLocation(udg_MC_TargetPoint[udg_INDEX])
            • Else - Actions
              • Set MC_OffsetPoint[INDEX] = (Position of (Picked unit))
              • Set MC_OffsetNewPos[INDEX] = (MC_OffsetPoint[INDEX] offset by (MC_Duration[INDEX] x 1.50) towards ((Angle from MC_TargetPoint[INDEX] to MC_OffsetPoint[INDEX]) + 80.00) degrees)
              • Unit - Move (Picked unit) instantly to MC_OffsetNewPos[INDEX]
              • Special Effect - Create a special effect at MC_OffsetPoint[INDEX] using Environment\SmallBuildingFire\SmallBuildingFire2.mdl
              • Special Effect - Destroy (Last created special effect)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Picked unit) is A Hero) Equal to False
                • Then - Actions
                  • Unit - Cause MC_Caster[INDEX] to damage (Picked unit), dealing 1.00 damage of attack type Spells and damage type Normal
                • Else - Actions
                  • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) - 1.00)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • MC_DestroyTrees Equal to True
                • Then - Actions
                  • Destructible - Pick every destructible within 100.00 of MC_OffsetNewPos[INDEX] and do (Actions)
                    • Loop - Actions
                      • Destructible - Kill (Picked destructible)
                • Else - Actions
              • Custom script: call RemoveLocation(udg_MC_OffsetPoint[udg_INDEX])
              • Custom script: call RemoveLocation(udg_MC_OffsetNewPos[udg_INDEX])
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in MC_DamageGroup) Less than or equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
      • -------- DO NOT THOUCH ANYTHING IN THIS TRIGGER WITHOUT A KNOWLEDGE ABOUT IT --------
      • -------- DO NOT THOUCH ANYTHING IN THIS TRIGGER WITHOUT A KNOWLEDGE ABOUT IT --------

Enjoy and have fun!


Keywords:
magma, lava, fire, explosion, damage, crater, whole, spell, x-omg-x, eye, candy, eyecandy, knockback, pull
Contents

Magma Crater (Map)

Reviews
13:50, 4th Jan 2010 TriggerHappy: Well, you never recycle your indices and the spell is pretty simple. But I think it's good enough to be approved.

Moderator

M

Moderator

13:50, 4th Jan 2010
TriggerHappy:

Well, you never recycle your indices and the spell is pretty simple. But I think it's good enough to be approved.
 
Level 6
Joined
Jan 6, 2006
Messages
204
Oh sweet!

Now this spell looks much cooler and smoother now that you've added destructable trees.

However I recommend to increase the destructable area of effect to 128 as a range of a hundred can sometimes cause malfunction and not properly destroy trees in path.

Overall ranking from me is 4/5 ;)

Keep on coding
 
Top