1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Find your way through the deepest dungeon in the 18th Mini Mapping Contest Poll.
    Dismiss Notice
  3. A brave new world lies beyond the seven seas. Join the 34th Modeling Contest today!
    Dismiss Notice
  4. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
Hive 3 Remoosed BETA - NOW LIVE. Go check it out at BETA Hive Workshop! Post your feedback in this new forum BETA Feedback.
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

Fire Spellpack.w3x
Variables
Fire Spells
Fire Blast
Fire blast init
Fire Blast loop
Blaze
Blaze init
Blaze loop
Molten Armor
Molten Armor
Shattered Universe
Shattered universe init
Shattered universe loop
Enter map-specific custom script code below. This text will be included in the map script after variables are declared and before any trigger code.

		
Name Type Is Array Initial Value
BlazeCaster unit Yes
BlazeDuration real Yes
BlazeIndexsize integer No
BlazeInteger integer Yes
BlazeLoop integer No
BlazeMaxsize integer No
BlazePoint location No
BlazeTemp integer No
FB_Blast unit Yes
FB_Caster unit Yes
FB_Dummy unit Yes
FB_Explosion integer Yes
FB_Indexsize integer No
FB_Integer integer Yes
FB_Loop integer No
FB_Maxindexsize integer No
FB_Point location Yes
FB_Real real Yes
FB_Temp integer No
MA_Chance integer No
MA_Chance2 real No
MA_Nova integer No
MA_Point location Yes
MA_Real real No
SU_Caster unit Yes
SU_Explosion integer Yes
SU_Fall real Yes
SU_Indexsize integer No
SU_Integer integer Yes
SU_Loop integer No
SU_Maxsize integer No
SU_Meteor unit Yes
SU_Point location Yes
SU_Real real Yes
SU_Temp integer No
Instructions how to import.
Firstly there are 2 dummies to be copied.The orb and the dummy for explosion and the point of the explosion.Nothing to be changed with them.
Secondly the 2 dummy abilities.The damage and the AoE range can be changed in the fire blast dummy ability.The range where the orb can be shooted can be changed in the fire blast ability.
Finally you will need to copy the fire blast triggers in your map(don`t forget to change the allow custom variable data)

You are done and ready to use the spell
The damage and the AoE radius can be changed in the fire blast dummy ability,while the distance of the orb is changed in the fire blast ability.
Fire blast init
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Fire Blast
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        FB_Indexsize Equal to 0
      Then - Actions
        Trigger - Turn on Fire_Blast_loop <gen>
      Else - Actions
    Set VariableSet FB_Indexsize = (FB_Indexsize + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        FB_Indexsize Greater than FB_Maxindexsize
      Then - Actions
        Set VariableSet FB_Integer[FB_Indexsize] = FB_Indexsize
        Set VariableSet FB_Maxindexsize = FB_Indexsize
      Else - Actions
    Set VariableSet FB_Temp = FB_Integer[FB_Indexsize]
    -------- nothing new here --------
    Set VariableSet FB_Caster[FB_Temp] = (Triggering unit)
    Set VariableSet FB_Point[1] = (Position of FB_Caster[FB_Temp])
    Set VariableSet FB_Point[2] = (Target point of ability being cast)
    -------- Creates a dummy that will mark the point where the explosion will be. --------
    Unit - Create 1.Dummy Fire Blast for (Owner of FB_Caster[FB_Temp]) at FB_Point[2] facing Default building facing degrees
    Set VariableSet FB_Dummy[FB_Temp] = (Last created unit)
    -------- This is the orb.It is ordered to move to the targeted area --------
    Unit - Create 1.Fire Blast for (Owner of FB_Caster[FB_Temp]) at FB_Point[1] facing Default building facing degrees
    Set VariableSet FB_Blast[FB_Temp] = (Last created unit)
    Unit - Order FB_Blast[FB_Temp] to Move To.FB_Point[2]
    Custom script: call RemoveLocation(udg_FB_Point[1])
    Custom script: call RemoveLocation(udg_FB_Point[2])
Fire Blast loop
  Events
    Time - Every 0.10 seconds of game time
  Conditions
  Actions
    For each (Integer FB_Loop) from 1 to FB_Indexsize, do (Actions)
      Loop - Actions
        Set VariableSet FB_Temp = FB_Integer[FB_Loop]
        Set VariableSet FB_Point[3] = (Position of FB_Blast[FB_Temp])
        Set VariableSet FB_Point[4] = (Position of FB_Dummy[FB_Temp])
        Set VariableSet FB_Real[FB_Temp] = 0.00
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Distance between FB_Point[3] and FB_Point[4]) Greater than or equal to 50.00
          Then - Actions
            -------- If you want to add some effects or other things while the orb is moving you can do it in this loop.Since I don`t add anything it`s empty --------
          Else - Actions
            Unit - Kill FB_Blast[FB_Temp]
            Unit - Kill FB_Dummy[FB_Temp]
            For each (Integer FB_Explosion[FB_Temp]) from 1 to 10, do (Actions)
              Loop - Actions
                -------- This will be the explosion --------
                Set VariableSet FB_Point[5] = (FB_Point[3] offset by 300.00 towards FB_Real[FB_Temp] degrees.)
                Unit - Create 1.Dummy Fire Blast for (Owner of FB_Caster[FB_Temp]) at FB_Point[3] facing Default building facing degrees
                Unit - Add Fire Blast dummy to (Last created unit)
                Unit - Set level of Fire Blast dummy for (Last created unit) to (Level of Fire Blast for FB_Caster[FB_Temp])
                Unit - Order (Last created unit) to Undead Crypt Lord - Impale.FB_Point[5]
                Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                Set VariableSet FB_Real[FB_Temp] = (FB_Real[FB_Temp] + (360.00 / 10.00))
                Custom script: call RemoveLocation(udg_FB_Point[5])
            Set VariableSet FB_Integer[FB_Loop] = FB_Integer[FB_Indexsize]
            Set VariableSet FB_Integer[FB_Indexsize] = FB_Temp
            Set VariableSet FB_Indexsize = (FB_Indexsize - 1)
            Set VariableSet FB_Loop = (FB_Loop - 1)
        Custom script: call RemoveLocation(udg_FB_Point[3])
        Custom script: call RemoveLocation(udg_FB_Point[4])
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        FB_Indexsize Equal to 0
      Then - Actions
        Trigger - Turn off (This trigger)
      Else - Actions
Instructions how to import.
Easy to copy spell.Copy the dummy unit and the 2 abilites in your map.The damage and the radius is based on the dummy ability.Nothing to be changed on the blaze ability.After that copy the blaze triggers in your map.
Blaze init
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Blaze
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        BlazeIndexsize Equal to 0
      Then - Actions
        Trigger - Turn on Blaze_loop <gen>
      Else - Actions
    Set VariableSet BlazeIndexsize = (BlazeIndexsize + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        BlazeIndexsize Greater than BlazeMaxsize
      Then - Actions
        Set VariableSet BlazeInteger[BlazeIndexsize] = BlazeIndexsize
        Set VariableSet BlazeMaxsize = BlazeIndexsize
      Else - Actions
    Set VariableSet BlazeTemp = BlazeInteger[BlazeIndexsize]
    -------- Thats all no need for many variables for this spell --------
    Set VariableSet BlazeCaster[BlazeTemp] = (Triggering unit)
    Set VariableSet BlazeDuration[BlazeTemp] = ((Real((Level of Blaze for BlazeCaster[BlazeTemp]))) + 12.00)
Blaze loop
  Events
    Time - Every 0.25 seconds of game time
  Conditions
  Actions
    For each (Integer BlazeLoop) from 1 to BlazeIndexsize, do (Actions)
      Loop - Actions
        Set VariableSet BlazeTemp = BlazeInteger[BlazeLoop]
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            BlazeDuration[BlazeTemp] Greater than 0.00
          Then - Actions
            Set VariableSet BlazeDuration[BlazeTemp] = (BlazeDuration[BlazeTemp] - 0.25)
            -------- this is the fire trail --------
            Set VariableSet BlazePoint = (Position of BlazeCaster[BlazeTemp])
            Unit - Create 1.Dummy Blaze for (Owner of BlazeCaster[BlazeTemp]) at BlazePoint facing Default building facing degrees
            Unit - Add Blaze dummy to (Last created unit)
            Unit - Set level of Blaze dummy for (Last created unit) to (Level of Blaze for BlazeCaster[BlazeTemp])
            Unit - Order (Last created unit) to Human Blood Mage - Flame Strike.BlazePoint
            Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            Custom script: call RemoveLocation(udg_BlazePoint)
          Else - Actions
            Set VariableSet BlazeInteger[BlazeLoop] = BlazeInteger[BlazeIndexsize]
            Set VariableSet BlazeInteger[BlazeIndexsize] = BlazeTemp
            Set VariableSet BlazeIndexsize = (BlazeIndexsize - 1)
            Set VariableSet BlazeLoop = (BlazeLoop - 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        BlazeIndexsize Equal to 0
      Then - Actions
        Trigger - Turn off (This trigger)
      Else - Actions
Instructions how to import.
Copy the dummy unit,the 2 dummy abilities(fire bolt and breath of fire) and the Molten Armor ability in your map.As always the damage,the stun rate,the nova damage and the nova distance is based on the dummies.Nothing to change in the molten armor ability.Copy the Molten armor trigger in your map.
Molten Armor
  Events
    Unit - A unit Is attacked
  Conditions
    (Level of Molten Armor for (Triggering unit)) Greater than 0
  Actions
    -------- The first variable is for the fire bolt chance and the second is for nova chance --------
    Set VariableSet MA_Chance = (Random integer number between 1 and 10)
    Set VariableSet MA_Chance2 = (Random real number between 1.00 and 10.00)
    Set VariableSet MA_Real = 0.00
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        MA_Chance Less than or equal to ((Level of Molten Armor for (Triggering unit)) + 3)
      Then - Actions
        -------- The arithmetic is:Level of molten armor +3 so if the level is 2 then 2+3=5 - 50% chance. --------
        Set VariableSet MA_Point[1] = (Position of (Triggering unit))
        Unit - Create 1.Dummy Molten Armor for (Owner of (Triggering unit)) at MA_Point[1] facing Default building facing degrees
        Unit - Add Firebolt (Molten Armor) to (Last created unit)
        Unit - Set level of Firebolt (Molten Armor) for (Last created unit) to (Level of Molten Armor for (Triggering unit))
        Unit - Order (Last created unit) to Neutral - Firebolt.(Attacking unit)
        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
        Custom script: call RemoveLocation(udg_MA_Point[1])
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        MA_Chance2 Less than or equal to ((Real((Level of Molten Armor for (Triggering unit)))) x 0.50)
      Then - Actions
        Set VariableSet MA_Point[1] = (Position of (Triggering unit))
        For each (Integer MA_Nova) from 1 to 8, do (Actions)
          Loop - Actions
            -------- The arithmetic is:Level of molten armor x0.5 so if the level is 2 then 2x0.5=1 - 10% chance. --------
            Set VariableSet MA_Point[2] = (MA_Point[1] offset by 400.00 towards MA_Real degrees.)
            Unit - Create 1.Dummy Molten Armor for (Owner of (Triggering unit)) at MA_Point[1] facing Default building facing degrees
            Unit - Add Breath of Fire (Molten Armor to (Last created unit)
            Unit - Set level of Breath of Fire (Molten Armor for (Last created unit) to (Level of Molten Armor for (Triggering unit))
            Unit - Order (Last created unit) to Neutral Brewmaster - Breath Of Fire.MA_Point[2]
            Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            Set VariableSet MA_Real = (MA_Real + (360.00 / 8.00))
            Custom script: call RemoveLocation(udg_MA_Point[2])
        Custom script: call RemoveLocation(udg_MA_Point[1])
      Else - Actions
How to import:
Copy the dummy units(shattered universe and shattered univese dummy),the abilities(shattered universe and shattered universe dummy) and the triggers.Damage and area can be changed in the shattered universe dummy ability.
Shattered universe init
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Shattered Universe
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        SU_Indexsize Equal to 0
      Then - Actions
        Trigger - Turn on Shattered_universe_loop <gen>
      Else - Actions
    Set VariableSet SU_Indexsize = (SU_Indexsize + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        SU_Indexsize Greater than SU_Maxsize
      Then - Actions
        Set VariableSet SU_Integer[SU_Indexsize] = SU_Indexsize
        Set VariableSet SU_Maxsize = SU_Indexsize
      Else - Actions
    Set VariableSet SU_Temp = SU_Integer[SU_Indexsize]
    Set VariableSet SU_Caster[SU_Temp] = (Triggering unit)
    Set VariableSet SU_Point[1] = (Target point of ability being cast)
    Unit - Create 1.Shattered Universe for (Owner of SU_Caster[SU_Temp]) at SU_Point[1] facing Default building facing degrees
    Set VariableSet SU_Meteor[SU_Temp] = (Last created unit)
    -------- This action determines the fall speed of the meteor --------
    Set VariableSet SU_Fall[SU_Temp] = 7.50
    Custom script: call RemoveLocation(udg_SU_Point[1])
Shattered universe loop
  Events
    Time - Every 0.03 seconds of game time
  Conditions
  Actions
    For each (Integer SU_Loop) from 1 to SU_Indexsize, do (Actions)
      Loop - Actions
        Set VariableSet SU_Temp = SU_Integer[SU_Loop]
        Set VariableSet SU_Point[2] = (Position of SU_Meteor[SU_Temp])
        Set VariableSet SU_Real[SU_Temp] = 0.00
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Current flying height of SU_Meteor[SU_Temp]) Greater than 30.00
          Then - Actions
            -------- changing the flight height of the meteor --------
            Animation - Change SU_Meteor[SU_Temp] flying height to ((Current flying height of SU_Meteor[SU_Temp]) - SU_Fall[SU_Temp]) at 0.00
          Else - Actions
            Unit - Explode SU_Meteor[SU_Temp].
            -------- These are the dummy explosions.You can make more or less explosions by changing the number 20 to higher or lower --------
            For each (Integer SU_Explosion[SU_Temp]) from 1 to 20, do (Actions)
              Loop - Actions
                Set VariableSet SU_Point[3] = (SU_Point[2] offset by 500.00 towards SU_Real[SU_Temp] degrees.)
                Unit - Create 1.Shattered Universe Dummy for (Owner of SU_Meteor[SU_Temp]) at SU_Point[2] facing Default building facing degrees
                Unit - Add Shattered universe dummy to (Last created unit)
                Unit - Order (Last created unit) to Undead Crypt Lord - Impale.SU_Point[3]
                Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                Set VariableSet SU_Real[SU_Temp] = (SU_Real[SU_Temp] + (360.00 / 20.00))
                Custom script: call RemoveLocation(udg_SU_Point[3])
            Set VariableSet SU_Integer[SU_Loop] = SU_Integer[SU_Indexsize]
            Set VariableSet SU_Integer[SU_Indexsize] = SU_Temp
            Set VariableSet SU_Indexsize = (SU_Indexsize - 1)
            Set VariableSet SU_Loop = (SU_Loop - 1)
        Custom script: call RemoveLocation(udg_SU_Point[2])
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        SU_Indexsize Equal to 0
      Then - Actions
        Trigger - Turn off (This trigger)
      Else - Actions