1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. The poll for Hive's 12th Concept Art Contest is up! Go cast your vote for your favourite genie!
    Dismiss Notice
  5. Travel to distant realms and encounter scenes unknown to the common folk. The Greatest of Adventures is upon us with the 8th Cinematic Contest. Join in on a fun ride.
    Dismiss Notice
  6. The 18th Icon Contest is ON! Choose any ingame unit and give him/her Hero abilities. Good luck to all.
    Dismiss Notice
  7. Contestants are to create a scene set in the Stone Age. Come and see what you can come up with. We wish you the best of luck!
    Dismiss Notice
  8. Colour outside the lines! Techtree Contest #13 is a go. The contest is optionally paired.
    Dismiss Notice
  9. Greetings cerebrates, our Swarm needs new spawners that will have numerous children. Join the HIVE's 31st Modeling Contest - Spawners and Spawned! The contest is optionally paired.
    Dismiss Notice
  10. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Volcanic Crush V1.01

Submitted by Tank-Commander
This bundle is marked as approved. It works and satisfies the submission rules.
Earlier today, I read a comment from HammerFist saying "Personaly I dont thhink to ur spells could be usefull for anykind of pvp maps, but I think to they would be awesome for some boss fight and dungeon stile maps."

I happen to agree, I certainly don't tend to make spells which are "small" enough as it were, for PvP use, hopefully this will make a bit of a change to that, my first single-target spell (although does have AOE damage. Because reasons) which I think would fit my purposes for both a PvP spell, but also still quite nice for a boss battle.

Features

- Heavily Configurable
- Importing Instructions
- Aoe damage
- Single Target ability
- Not very demanding on your PC sfx-wise
- Channeling spell


Tooltip

Summons 5 Flaming rocks which mark a target for a volcanic energy bomb. The bomb will grow to a critical mass, and then fall onto the location of the target. Can target both enemy and friendly targets, though only damages enemies.

Level 1 - Deals 340 damage at full size.
Level 2 - Deals 380 damage at full size.
Level 3 - Deals 420 damage at full size.


Triggers

  • Volcanic Crush
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- -------- --------
      • -------- Theme Controls --------
      • -------- Randomise Theme --------
      • Set VC_Conditions[0] = False
      • -------- Cycle Themes --------
      • Set VC_Conditions[1] = True
      • -------- If cycle themes is set to False, this determines which Theme will be used --------
      • Set VC_DefaultTheme = 1
      • -------- Total amount of themes available (for randomisation) --------
      • Set VC_SpellsThemeCount = 3
      • -------- Damage Health --------
      • Set VC_Conditions[2] = True
      • -------- Damage Mana --------
      • Set VC_Conditions[3] = True
      • -------- Determines the targets available for the spell --------
      • -------- Target is alive --------
      • Set VC_Conditions[4] = True
      • -------- Target is Magic Immune --------
      • Set VC_Conditions[5] = False
      • -------- Target is Structure --------
      • Set VC_Conditions[6] = False
      • -------- Target is Ground unit --------
      • Set VC_Conditions[7] = True
      • -------- Target is Belongs to an enemy --------
      • Set VC_Conditions[8] = True
      • -------- Spin Clockwise/Spin AntiClockwise --------
      • Set VC_Conditions[9] = True
      • -------- Rock spin TrueSpeed/TimeSpeed --------
      • Set VC_Conditions[10] = False
      • -------- Rock fall TrueSpeed/TimeSpeed --------
      • Set VC_Conditions[11] = True
      • -------- Controls the Distance of the spinning sub-rocks from the centre --------
      • Set VC_RockDistanceBase = 150.00
      • Set VC_RockDistancePerLevel = 0.00
      • -------- Controls the Spinning speed of the rocks --------
      • Set VC_RockSpinSpeedBase = 7.00
      • Set VC_RockSpinSpeedPerLevel = 0.00
      • Set VC_ActivatedSpeedMultiplyer = 1.50
      • Set VC_RockSpinIncomingTimeBase = 1.50
      • Set VC_RockSpinIncomingTimePL = 0.00
      • -------- Controls the facing of the rocks (relative to the direction and from the target) --------
      • Set VC_RockFacingAngle = 90.00
      • -------- Determines the area that the Rock will damage upon falling --------
      • Set VC_AoeBase = 150.00
      • Set VC_AoePerLevel = 25.00
      • -------- Determines The Z offset of the various parts --------
      • Set VC_ZHeightSubRocksBase = 200.00
      • Set VC_ZHeightSubRocksPerLevel = 0.00
      • Set VC_ZHeightVolRockBase = 300.00
      • Set VC_ZHeightVolRockPerLevel = 0.00
      • -------- Determines the amount of Drain areas created --------
      • Set VC_SpinningRocksBase = 5
      • Set VC_SpinningRocksPerLevel = 0
      • -------- Determines how much Health damage a unit takes per second --------
      • Set VC_HealthDamageBase = 300.00
      • Set VC_HealthDamagePerLevel = 40.00
      • -------- Determines how much Mana damage a unit takes per second --------
      • Set VC_ManaDamageBase = 0.00
      • Set VC_ManaDamagePerLevel = 0.00
      • -------- Determines the Falling speed of the rock --------
      • Set VC_VolRockFallSpeedBase = 200.00
      • Set VC_VolRockFallSpeedPerLevel = 0.00
      • Set VC_VolRockFallIncomingTimeBase = 3.00
      • Set VC_VolRockFallIncomingTimePL = 0.00
      • Set VC_ImpactHeight = 90.00
      • -------- Determines the Max scaling of the rock --------
      • Set VC_EffectScalingVolRockMaxBase = 1000.00
      • Set VC_EffectScalingVolRockMaxPL = 300.00
      • -------- Determines the scaling of the spinning sub-rocks --------
      • Set VC_EffectScalingSpinRocksBase = 150.00
      • Set VC_EffectScalingSpinRocksPL = 0.00
      • -------- Determines the scaling of the Rock at the start of the spell --------
      • Set VC_EffectScalingVolRockBase = 0.00
      • Set VC_EffectScalingVolRockPL = 0.00
      • -------- Determines the scaling increase of the rock per second --------
      • Set VC_EffectScalingVolSpeedBase = 100.00
      • Set VC_EffectScalingVolSpeedPL = 100.00
      • -------- Determines the scaling of the explosion --------
      • Set VC_EffectScalingExplosionBase = 200.00
      • Set VC_EffectScalingExplosionPL = 50.00
      • -------- Determines the SFX used as the Volcanic Rock --------
      • Set VC_CrushingRockSFX[1] = Abilities\Weapons\BloodElfMissile\BloodElfMissile.mdl
      • Set VC_CrushingRockSFX[2] = Abilities\Weapons\BloodElfMissile\BloodElfMissile.mdl
      • Set VC_CrushingRockSFX[3] = Abilities\Weapons\BloodElfMissile\BloodElfMissile.mdl
      • -------- Determines the SFX used as the Summoning sfx --------
      • Set VC_SummonSFX[1] = Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
      • Set VC_SummonSFX[2] = Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
      • Set VC_SummonSFX[3] = Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
      • -------- Determines the unit model used for the spinning rocks --------
      • Set VC_SpinningRocksSFX[1] = Abilities\Weapons\LavaSpawnMissile\LavaSpawnMissile.mdl
      • Set VC_SpinningRocksSFX[2] = Abilities\Weapons\LavaSpawnMissile\LavaSpawnMissile.mdl
      • Set VC_SpinningRocksSFX[3] = Abilities\Weapons\LavaSpawnMissile\LavaSpawnMissile.mdl
      • -------- Determines the unit model used as the Explosion --------
      • Set VC_EndSpellSFX[1] = Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
      • Set VC_EndSpellSFX[2] = Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
      • Set VC_EndSpellSFX[3] = Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
      • -------- Determines the unit model used when the spell stops channeling --------
      • Set VC_EndChannelSFX[1] = Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
      • Set VC_EndChannelSFX[2] = Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
      • Set VC_EndChannelSFX[3] = Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
      • -------- Determines how fast dummys are removed (needs to be about a second and a half to allow ending effects to occur) --------
      • Set VC_ExpireTime = 1.50
      • -------- Determines the unit model use when the effect is cancelled early --------
      • Set VC_Spell = Volcanic Crush
      • -------- Determines the order string of the spell used (should match ability used as a base) --------
      • Set VC_Order = channel
      • -------- Determines the Dummy used to attach all the effects to --------
      • Set VC_DummyType = Volcanic Crush
      • -------- -------- --------
      • -------- Determines the Speed of the loop trigger --------
      • Set VC_TimerSpeed = 0.03
      • Trigger - Add to Volcanic Crush Loop <gen> the event (Time - Every VC_TimerSpeed seconds of game time)
      • -------- -------- --------

  • Volcanic Crush Activation
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to VC_Spell
    • Actions
      • Set VC_TempUnit2 = (Triggering unit)
      • Set VC_TempUnit3 = (Target unit of ability being cast)
      • Set VC_TempPlayer = (Owner of VC_TempUnit2)
      • Set VC_TempInteger2 = (Level of VC_Spell for VC_TempUnit2)
      • Set VC_TempReal = (Real(VC_TempInteger2))
      • Set VC_TempReal2 = 0.00
      • Set VC_TempInteger = (VC_SpinningRocksBase + (VC_SpinningRocksPerLevel x (Integer(VC_TempReal))))
      • Set VC_TempReal3 = (360.00 / (Real(VC_TempInteger)))
      • Set VC_TempPoint2 = (Position of VC_TempUnit3)
      • -------- Identifies if you want the theme to change upon level up, randomly, or not at all --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • VC_Conditions[0] Equal to True
        • Then - Actions
          • Set VC_TempInteger2 = (Random integer number between 1 and VC_SpellsThemeCount)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • VC_Conditions[1] Equal to False
            • Then - Actions
              • Set VC_TempInteger2 = VC_DefaultTheme
            • Else - Actions
      • -------- Deactivates any previous casts --------
      • For each (Integer VC_Index) from 1 to VC_MaxIndex, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • VC_OriginalCaster[VC_Index] Equal to VC_TempUnit2
              • VC_StageID[VC_Index] Equal to 1
            • Then - Actions
              • Special Effect - Create a special effect attached to the origin of VC_UnitIndex[VC_Index] using VC_EndChannelSFX[VC_Index]
              • Special Effect - Destroy (Last created special effect)
              • Set VC_StageID[VC_Index] = 2
            • Else - Actions
      • -------- Spinning sub-rocks creation --------
      • For each (Integer VC_Index) from 1 to VC_TempInteger, do (Actions)
        • Loop - Actions
          • Set VC_TempReal2 = (VC_TempReal2 + VC_TempReal3)
          • Set VC_MaxIndex = (VC_MaxIndex + 1)
          • Set VC_RockDistance[VC_MaxIndex] = (VC_RockDistanceBase + (VC_RockDistancePerLevel x VC_TempReal))
          • Set VC_TempPoint = (VC_TempPoint2 offset by VC_RockDistance[VC_MaxIndex] towards VC_TempReal2 degrees)
          • Set VC_CurrentAngle[VC_MaxIndex] = (Angle from VC_TempPoint2 to VC_TempPoint)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • VC_Conditions[10] Equal to True
            • Then - Actions
              • Set VC_RockSpinSpeed[VC_MaxIndex] = (VC_RockSpinSpeedBase + (VC_RockSpinSpeedPerLevel x VC_TempReal))
            • Else - Actions
              • Set VC_RockSpinSpeed[VC_MaxIndex] = ((360.00 x VC_TimerSpeed) / (VC_RockSpinIncomingTimeBase + (VC_RockSpinIncomingTimePL x VC_TempReal)))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • VC_Conditions[9] Equal to True
            • Then - Actions
              • Set VC_Rotation[VC_MaxIndex] = (VC_RockFacingAngle x -1.00)
              • Set VC_RockSpinSpeed[VC_MaxIndex] = (VC_RockSpinSpeed[VC_MaxIndex] x -1.00)
            • Else - Actions
              • Set VC_Rotation[VC_MaxIndex] = VC_RockFacingAngle
          • Unit - Create 1 VC_DummyType for VC_TempPlayer at VC_TempPoint facing (VC_CurrentAngle[VC_MaxIndex] + VC_Rotation[VC_MaxIndex]) degrees
          • Set VC_TempUnit = (Last created unit)
          • Custom script: call SetUnitFacing(udg_VC_TempUnit, udg_VC_CurrentAngle[udg_VC_Index] + udg_VC_Rotation[udg_VC_Index])
          • Animation - Change VC_TempUnit's size to ((VC_EffectScalingSpinRocksBase + (VC_EffectScalingSpinRocksPL x VC_TempReal))%, 0.00%, 0.00%) of its original size
          • Special Effect - Create a special effect attached to the origin of VC_TempUnit using VC_SummonSFX[VC_TempInteger2]
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect attached to the origin of VC_TempUnit using VC_SpinningRocksSFX[VC_TempInteger2]
          • Set VC_SpecialEffect[VC_MaxIndex] = (Last created special effect)
          • Set VC_OriginalCaster[VC_MaxIndex] = VC_TempUnit2
          • Set VC_ZHeight[VC_MaxIndex] = (VC_ZHeightSubRocksBase + (VC_ZHeightSubRocksPerLevel x VC_TempReal))
          • Animation - Change VC_TempUnit flying height to VC_ZHeight[VC_MaxIndex] at 0.00
          • Set VC_VolRock[VC_MaxIndex] = False
          • Set VC_Target[VC_MaxIndex] = VC_TempUnit3
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • VC_Conditions[11] Equal to True
            • Then - Actions
              • Set VC_FallSpeed[VC_MaxIndex] = ((VC_VolRockFallSpeedBase + (VC_VolRockFallSpeedPerLevel x VC_TempReal)) x VC_TimerSpeed)
            • Else - Actions
              • Set VC_RockSpinSpeed[VC_MaxIndex] = ((VC_ZHeight[VC_MaxIndex] x VC_TimerSpeed) / (VC_VolRockFallIncomingTimeBase + (VC_VolRockFallIncomingTimePL x VC_TempReal)))
          • Set VC_GrowthSpeed[VC_MaxIndex] = ((VC_EffectScalingVolSpeedBase + (VC_EffectScalingVolSpeedPL x VC_TempReal)) x VC_TimerSpeed)
          • Set VC_MaxSize[VC_MaxIndex] = (VC_EffectScalingVolRockMaxBase + (VC_EffectScalingVolRockMaxPL x VC_TempReal))
          • Set VC_ExpirationTimer[VC_MaxIndex] = 0.00
          • Set VC_ZHeight[VC_MaxIndex] = (VC_ZHeightVolRockBase + (VC_ZHeightVolRockPerLevel x VC_TempReal))
          • Set VC_CurrentSize[VC_MaxIndex] = 0.00
          • Set VC_Theme[VC_MaxIndex] = VC_TempInteger2
          • Custom script: set udg_VC_CasterX[udg_VC_MaxIndex] = GetUnitX(udg_VC_TempUnit2)
          • Custom script: set udg_VC_CasterY[udg_VC_MaxIndex] = GetUnitY(udg_VC_TempUnit2)
          • Set VC_UnitIndex[VC_MaxIndex] = VC_TempUnit
          • Set VC_StageID[VC_MaxIndex] = 1
          • Custom script: call RemoveLocation (udg_VC_TempPoint)
          • Custom script: set udg_VC_TempPoint = null
      • -------- Main Rock creation --------
      • Set VC_MaxIndex = (VC_MaxIndex + 1)
      • Unit - Create 1 VC_DummyType for VC_TempPlayer at VC_TempPoint2 facing (VC_CurrentAngle[VC_MaxIndex] + VC_Rotation[VC_MaxIndex]) degrees
      • Set VC_TempUnit = (Last created unit)
      • Animation - Change VC_TempUnit's size to ((VC_EffectScalingVolRockBase + (VC_EffectScalingVolRockPL x VC_TempReal))%, 0.00%, 0.00%) of its original size
      • Special Effect - Create a special effect attached to the origin of VC_TempUnit using VC_CrushingRockSFX[VC_TempInteger2]
      • Set VC_SpecialEffect[VC_MaxIndex] = (Last created special effect)
      • Set VC_OriginalCaster[VC_MaxIndex] = VC_TempUnit2
      • Set VC_ZHeight[VC_MaxIndex] = (VC_ZHeightVolRockBase + (VC_ZHeightVolRockPerLevel x VC_TempReal))
      • Animation - Change VC_TempUnit flying height to VC_ZHeight[VC_MaxIndex] at 0.00
      • Set VC_VolRock[VC_MaxIndex] = True
      • Set VC_Target[VC_MaxIndex] = VC_TempUnit3
      • Set VC_CurrentAngle[VC_MaxIndex] = 0.00
      • Set VC_GrowthSpeed[VC_MaxIndex] = ((VC_EffectScalingVolSpeedBase + (VC_EffectScalingVolSpeedPL x VC_TempReal)) x VC_TimerSpeed)
      • Set VC_AOE[VC_MaxIndex] = (VC_AoeBase + (VC_AoePerLevel x VC_TempReal))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • VC_Conditions[11] Equal to True
        • Then - Actions
          • Set VC_FallSpeed[VC_MaxIndex] = ((VC_VolRockFallSpeedBase + (VC_VolRockFallSpeedPerLevel x VC_TempReal)) x VC_TimerSpeed)
        • Else - Actions
          • Set VC_FallSpeed[VC_MaxIndex] = ((VC_ZHeight[VC_MaxIndex] x VC_TimerSpeed) / (VC_VolRockFallIncomingTimeBase + (VC_VolRockFallIncomingTimePL x VC_TempReal)))
      • Set VC_HealthDamage[VC_MaxIndex] = (VC_HealthDamageBase + (VC_HealthDamagePerLevel x VC_TempReal))
      • Set VC_ManaDamage[VC_MaxIndex] = (VC_ManaDamageBase + (VC_ManaDamagePerLevel x VC_TempReal))
      • Set VC_ExplosionScale[VC_MaxIndex] = (VC_EffectScalingExplosionBase + (VC_EffectScalingExplosionPL x VC_TempReal))
      • Set VC_ExpirationTimer[VC_MaxIndex] = 0.00
      • Set VC_RockDistance[VC_MaxIndex] = 0.00
      • Set VC_MaxSize[VC_MaxIndex] = (VC_EffectScalingVolRockMaxBase + (VC_EffectScalingVolRockMaxPL x VC_TempReal))
      • Set VC_CurrentSize[VC_MaxIndex] = 0.00
      • Set VC_Theme[VC_MaxIndex] = VC_TempInteger2
      • Custom script: set udg_VC_CasterX[udg_VC_MaxIndex] = GetUnitX(udg_VC_TempUnit2)
      • Custom script: set udg_VC_CasterY[udg_VC_MaxIndex] = GetUnitY(udg_VC_TempUnit2)
      • Set VC_UnitIndex[VC_MaxIndex] = VC_TempUnit
      • Set VC_StageID[VC_MaxIndex] = 1
      • Custom script: call RemoveLocation (udg_VC_TempPoint2)
      • Custom script: set udg_VC_TempPoint2 = null
      • -------- Activates the loop --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Volcanic Crush Loop <gen> is on) Equal to False
          • VC_MaxIndex Greater than or equal to 1
        • Then - Actions
          • Trigger - Turn on Volcanic Crush Loop <gen>
        • Else - Actions

  • Volcanic Crush Loop
    • Events
    • Conditions
    • Actions
      • For each (Integer VC_Index) from 1 to VC_MaxIndex, do (Actions)
        • Loop - Actions
          • -------- Growth/Spin Controls --------
          • Set VC_TempUnit = VC_UnitIndex[VC_Index]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • VC_StageID[VC_Index] Equal to 1
            • Then - Actions
              • Custom script: set udg_VC_TempX = GetUnitX(udg_VC_Target[udg_VC_Index])
              • Custom script: set udg_VC_TempY = GetUnitY(udg_VC_Target[udg_VC_Index])
              • Set VC_CurrentSize[VC_Index] = (VC_CurrentSize[VC_Index] + VC_GrowthSpeed[VC_Index])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • VC_VolRock[VC_Index] Equal to True
                • Then - Actions
                  • Animation - Change VC_TempUnit's size to (VC_CurrentSize[VC_Index]%, 0.00%, 0.00%) of its original size
                  • Custom script: set udg_VC_Angle = 0.00
                • Else - Actions
                  • Custom script: set udg_VC_CurrentAngle[udg_VC_Index] = udg_VC_CurrentAngle[udg_VC_Index] + udg_VC_RockSpinSpeed[udg_VC_Index]
                  • Custom script: call SetUnitFacing(udg_VC_TempUnit, udg_VC_CurrentAngle[udg_VC_Index] + udg_VC_Rotation[udg_VC_Index])
                  • Custom script: set udg_VC_Angle = udg_VC_CurrentAngle[udg_VC_Index] * bj_DEGTORAD
              • Custom script: call SetUnitX(udg_VC_TempUnit, udg_VC_TempX + udg_VC_RockDistance[udg_VC_Index] * Cos(udg_VC_Angle))
              • Custom script: call SetUnitY(udg_VC_TempUnit, udg_VC_TempY + udg_VC_RockDistance[udg_VC_Index] * Sin(udg_VC_Angle))
              • Custom script: set udg_VC_TempX = GetUnitX(udg_VC_OriginalCaster[udg_VC_Index])
              • Custom script: set udg_VC_TempY = GetUnitY(udg_VC_OriginalCaster[udg_VC_Index])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • VC_CurrentSize[VC_Index] Greater than or equal to VC_MaxSize[VC_Index]
                      • (Current order of VC_OriginalCaster[VC_Index]) Not equal to (Order(VC_Order))
                      • VC_CasterX[VC_Index] Not equal to VC_TempX
                      • VC_CasterY[VC_Index] Not equal to VC_TempY
                • Then - Actions
                  • Special Effect - Create a special effect attached to the origin of VC_TempUnit using VC_EndChannelSFX[VC_Theme[VC_Index]]
                  • Special Effect - Destroy (Last created special effect)
                  • Set VC_StageID[VC_Index] = 2
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • VC_VolRock[VC_Index] Equal to False
                    • Then - Actions
                      • Set VC_RockSpinSpeed[VC_Index] = (VC_RockSpinSpeed[VC_Index] x VC_ActivatedSpeedMultiplyer)
                      • Custom script: set udg_VC_TargetX[udg_VC_Index] = GetUnitX(udg_VC_Target[udg_VC_Index])
                      • Custom script: set udg_VC_TargetY[udg_VC_Index] = GetUnitY(udg_VC_Target[udg_VC_Index])
                    • Else - Actions
                      • Set VC_HealthDamage[VC_Index] = ((VC_CurrentSize[VC_Index] / VC_MaxSize[VC_Index]) x VC_HealthDamage[VC_Index])
                • Else - Actions
              • Custom script: set udg_VC_CasterX[udg_VC_Index] = udg_VC_TempX
              • Custom script: set udg_VC_CasterY[udg_VC_Index] = udg_VC_TempY
            • Else - Actions
              • -------- Falling/Detonation --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • VC_StageID[VC_Index] Equal to 2
                • Then - Actions
                  • Set VC_ZHeight[VC_Index] = (VC_ZHeight[VC_Index] - VC_FallSpeed[VC_Index])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • VC_VolRock[VC_Index] Equal to True
                    • Then - Actions
                      • Animation - Change VC_TempUnit flying height to VC_ZHeight[VC_Index] at 0.00
                    • Else - Actions
                      • Custom script: set udg_VC_CurrentAngle[udg_VC_Index] = udg_VC_CurrentAngle[udg_VC_Index] + udg_VC_RockSpinSpeed[udg_VC_Index]
                      • Custom script: call SetUnitFacing(udg_VC_TempUnit, udg_VC_CurrentAngle[udg_VC_Index] + udg_VC_Rotation[udg_VC_Index])
                      • Custom script: set udg_VC_Angle = udg_VC_CurrentAngle[udg_VC_Index] * bj_DEGTORAD
                      • Custom script: call SetUnitX(udg_VC_TempUnit, udg_VC_TargetX[udg_VC_Index] + udg_VC_RockDistance[udg_VC_Index] * Cos(udg_VC_Angle))
                      • Custom script: call SetUnitY(udg_VC_TempUnit, udg_VC_TargetY[udg_VC_Index] + udg_VC_RockDistance[udg_VC_Index] * Sin(udg_VC_Angle))
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • VC_ZHeight[VC_Index] Less than or equal to VC_ImpactHeight
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • VC_VolRock[VC_Index] Equal to True
                        • Then - Actions
                          • Animation - Change VC_TempUnit's size to (VC_ExplosionScale[VC_Index]%, 0.00%, 0.00%) of its original size
                          • Animation - Change VC_TempUnit flying height to 0.00 at 0.00
                          • Set VC_TempPoint = (Position of VC_TempUnit)
                          • Set VC_TempGroup = (Units within VC_AOE[VC_Index] of VC_TempPoint)
                          • Unit Group - Pick every unit in VC_TempGroup and do (Actions)
                            • Loop - Actions
                              • Set VC_TempUnit2 = (Picked unit)
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (VC_TempUnit2 is alive) Equal to VC_Conditions[4]
                                  • (VC_TempUnit2 is Magic Immune) Equal to VC_Conditions[5]
                                  • (VC_TempUnit2 is A structure) Equal to VC_Conditions[6]
                                  • (VC_TempUnit2 is A ground unit) Equal to VC_Conditions[7]
                                  • (VC_TempUnit2 belongs to an enemy of (Owner of VC_OriginalCaster[VC_Index])) Equal to VC_Conditions[8]
                                • Then - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • VC_Conditions[2] Equal to True
                                    • Then - Actions
                                      • Unit - Cause VC_OriginalCaster[VC_Index] to damage VC_TempUnit2, dealing VC_HealthDamage[VC_Index] damage of attack type Spells and damage type Normal
                                    • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • VC_Conditions[3] Equal to True
                                    • Then - Actions
                                      • Unit - Set mana of VC_TempUnit2 to ((Mana of VC_TempUnit2) - VC_ManaDamage[VC_Index])
                                    • Else - Actions
                                • Else - Actions
                          • Set VC_StageID[VC_Index] = 3
                          • Custom script: call RemoveLocation (udg_VC_TempPoint)
                          • Custom script: call DestroyGroup (udg_VC_TempGroup)
                          • Custom script: set udg_VC_TempGroup = null
                          • Custom script: set udg_VC_TempPoint = null
                        • Else - Actions
                      • Special Effect - Create a special effect attached to the origin of VC_TempUnit using VC_EndSpellSFX[VC_Theme[VC_Index]]
                      • Special Effect - Destroy (Last created special effect)
                      • Set VC_StageID[VC_Index] = 3
                      • Special Effect - Destroy VC_SpecialEffect[VC_Index]
                    • Else - Actions
                • Else - Actions
                  • -------- Cleanup --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • VC_StageID[VC_Index] Equal to 3
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • VC_ExpirationTimer[VC_Index] Greater than or equal to VC_ExpireTime
                        • Then - Actions
                          • Unit - Remove VC_TempUnit from the game
                          • Set VC_SpecialEffect[VC_Index] = VC_SpecialEffect[VC_MaxIndex]
                          • Set VC_OriginalCaster[VC_Index] = VC_OriginalCaster[VC_MaxIndex]
                          • Set VC_ZHeight[VC_Index] = VC_ZHeight[VC_MaxIndex]
                          • Set VC_VolRock[VC_Index] = VC_VolRock[VC_MaxIndex]
                          • Set VC_ExpirationTimer[VC_Index] = VC_ExpirationTimer[VC_MaxIndex]
                          • Set VC_Target[VC_Index] = VC_Target[VC_MaxIndex]
                          • Set VC_GrowthSpeed[VC_Index] = VC_GrowthSpeed[VC_MaxIndex]
                          • Set VC_FallSpeed[VC_Index] = VC_FallSpeed[VC_MaxIndex]
                          • Set VC_ExplosionScale[VC_Index] = VC_ExplosionScale[VC_MaxIndex]
                          • Set VC_CurrentAngle[VC_Index] = VC_CurrentAngle[VC_MaxIndex]
                          • Set VC_HealthDamage[VC_Index] = VC_HealthDamage[VC_MaxIndex]
                          • Set VC_Rotation[VC_Index] = VC_Rotation[VC_MaxIndex]
                          • Set VC_RockDistance[VC_Index] = VC_RockDistance[VC_MaxIndex]
                          • Set VC_RockSpinSpeed[VC_Index] = VC_RockSpinSpeed[VC_MaxIndex]
                          • Set VC_ManaDamage[VC_Index] = VC_ManaDamage[VC_MaxIndex]
                          • Set VC_AOE[VC_Index] = VC_AOE[VC_MaxIndex]
                          • Set VC_ExplosionScale[VC_Index] = VC_ExplosionScale[VC_MaxIndex]
                          • Set VC_MaxSize[VC_Index] = VC_MaxSize[VC_MaxIndex]
                          • Set VC_CurrentSize[VC_Index] = VC_CurrentSize[VC_MaxIndex]
                          • Set VC_Theme[VC_Index] = VC_Theme[VC_MaxIndex]
                          • Set VC_CasterX[VC_Index] = VC_CasterX[VC_MaxIndex]
                          • Set VC_CasterY[VC_Index] = VC_CasterY[VC_MaxIndex]
                          • Set VC_TargetX[VC_Index] = VC_TargetX[VC_MaxIndex]
                          • Set VC_TargetY[VC_Index] = VC_TargetY[VC_MaxIndex]
                          • Set VC_UnitIndex[VC_Index] = VC_UnitIndex[VC_MaxIndex]
                          • Set VC_StageID[VC_Index] = VC_StageID[VC_MaxIndex]
                          • Set VC_MaxIndex = (VC_MaxIndex - 1)
                          • Set VC_Index = (VC_Index - 1)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • VC_MaxIndex Equal to 0
                            • Then - Actions
                              • Trigger - Turn off Volcanic Crush Loop <gen>
                            • Else - Actions
                        • Else - Actions
                          • Set VC_ExpirationTimer[VC_Index] = (VC_ExpirationTimer[VC_Index] + VC_TimerSpeed)
                    • Else - Actions



Changelog

-=V1.00=-
- Initial Upload
-=V1.01=-
- Rearranged the ability button
- Nulled variables after use (locations and groups)
- Moved TempUnit set to earlier
- Made order configurable


Give credits if you use this spell in your map, and enjoy.

Keywords:
Volcanic, Bomb, Single Target, Channel, Crush, Explosion, Homing, Explode, Detonate, Grow.
Contents

Volcanic Crush (Map)

Reviews
Moderator
Volcanic Crush V1.00 | Reviewed by Maker | 20th Mar 2013 APPROVED [tr] [IMG] This is a nice, smooth spell with no lag or leaks
  1. Volcanic Crush V1.00 | Reviewed by Maker | 20th Mar 2013
    APPROVED

    [​IMG]
    • This is a nice, smooth spell with no lag or leaks

     
  2. UndeadImmortal

    UndeadImmortal

    Joined:
    Jun 27, 2011
    Messages:
    1,584
    Resources:
    7
    Maps:
    7
    Resources:
    7
    The caster is still channeling even tho the spell is finished.
     
  3. Tank-Commander

    Tank-Commander

    Spell Reviewer

    Joined:
    May 26, 2009
    Messages:
    1,543
    Resources:
    44
    Packs:
    1
    Spells:
    41
    Tutorials:
    2
    Resources:
    44
    Ah, that was leftover laziness from before I'd settled on time for how long the spells take, will change that quickly XD

    Edit: There you go, channel time set to 5.50 seconds
     
  4. Almia

    Almia

    Joined:
    Apr 24, 2012
    Messages:
    4,860
    Resources:
    35
    Spells:
    30
    Tutorials:
    4
    JASS:
    1
    Resources:
    35
    Oh you <3
    Now i have to spread reputation just to give you one XD

    Btw, I found out that your spell code is much shorter than your past spells :D


    edit

    I like the idea of using Kael's missile :D , it looks like a burning pearl XD

    edit
    • -------- Determines the SFX used as the Summong sfx --------


    Typo :D
     
    Last edited: Mar 20, 2013
  5. Tank-Commander

    Tank-Commander

    Spell Reviewer

    Joined:
    May 26, 2009
    Messages:
    1,543
    Resources:
    44
    Packs:
    1
    Spells:
    41
    Tutorials:
    2
    Resources:
    44
    There, fixed the damn typo XD
     
  6. Nordmar

    Nordmar

    Joined:
    Jan 13, 2008
    Messages:
    560
    Resources:
    1
    Skins:
    1
    Resources:
    1
    it doesnt work for me. According to JassHelper:

    Line 13795: Undeclared variable udg_VC_Anlge
    set_udg_VC_Angle = 0.00

    why aint it working?

    /e: okay I see..it didn't take copy the CV_Angle variable for some reason lol
     
  7. Fiend_68

    Fiend_68

    Joined:
    Apr 14, 2012
    Messages:
    72
    Resources:
    0
    Resources:
    0
    I wish I could make so (LONG triggered) good spells... ;D
    Sooo many variables :vw_wtf:

    Good job the spell is very good, keep the good work, there aren't many ppl so good
    :goblin_good_job:
     
  8. mjsawwan

    mjsawwan

    Joined:
    May 22, 2011
    Messages:
    0
    Resources:
    0
    Resources:
    0
    please help :\
    i got compile error...
    for 7 lines and this line is one of them
    set udg_VC_Angle = 0.00
    why is this happening ?? some spells when i try to import them the same problem come even they are working in the original map the creator create...
     
  9. Tank-Commander

    Tank-Commander

    Spell Reviewer

    Joined:
    May 26, 2009
    Messages:
    1,543
    Resources:
    44
    Packs:
    1
    Spells:
    41
    Tutorials:
    2
    Resources:
    44
    Variable editor - create variable, set the name to VC_Angle, set type to real, press ok, should fix the issue