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 haven't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. Ride into the sunset with the 32nd Modeling Contest.
    Dismiss Notice
  5. This adventure has come to an end. Congratulate our heroes in the 16th Mini Mapping Contest Results.
    Dismiss Notice
  6. From the gates of hell, the 5th Special Effect Contest Results have emerged.
    Dismiss Notice
  7. Race against the odds and Reforge, Don't Refund. The 14th Techtree Contest has begun!
    Dismiss Notice
  8. 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.

Trigger Viewer

Flaming Phoenix Bombs v0.2 By B-UP.w3x
Variables
Map Only
Init
Creep Spawn
Level UP
Refresh
Flaming Bombs
FB Config
FB Cast
FB Loop
FB Dummy Dies
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
FPB_Angle real Yes
FPB_Ball_Model string No
FPB_Balls integer Yes
FPB_BallsPerLevel integer No
FPB_Base_Balls integer No
FPB_BaseDamage real No
FPB_Caster unit Yes
FPB_Current_Index integer No
FPB_Damage real No
FPB_DamagePerLevel real No
FPB_Distance real Yes
FPB_DistanceIncrease real No
FPB_Dummy unit Yes
FPB_DummyPoint location Yes
FPB_Effect_Model string No
FPB_Explode_Model string No
FPB_ExplodeGroup group No
FPB_ExplodePickRange real No
FPB_Fall_Speed real No
FPB_GroundDummy_Size real No
FPB_GroundEffect_Dummy unit Yes
FPB_GroundEffect_Model string No
FPB_Height real Yes
FPB_Index_Container integer Yes
FPB_Index_Listener integer No
FPB_Index_Size integer No
FPB_Integer integer No
FPB_Level integer No
FPB_Loop integer No
FPB_Move location Yes
FPB_Picked_Unit unit Yes
FPB_Picked_Unit_Position location Yes
FPB_Player player No
FPB_PU_Angle real No
FPB_PU_Picked_Position location No
FPB_PU_Picked_Unit unit Yes
FPB_Push location No
FPB_Push_Model string No
FPB_PushGroup group Yes
FPB_PushPickRange real No
FPB_PushSpeed real No
FPB_Recycle_Container integer Yes
FPB_Recycle_Size integer No
FPB_Size real No
FPB_Slow_Dummy unit No
FPB_SpawnPoint location Yes
FPB_SpinSpeed real No
FPB_StartDistance real No
FPB_StartHeight real No
FPB_TargetPoint location Yes
Map_Unit unit No
Init
  Events
    Map initialization
  Conditions
  Actions
    Unit - Create 1.Phoenix for Player 1 (Red) at (Center of (Playable map area)) facing Default building facing degrees
    Set VariableSet Map_Unit = (Last created unit)
    Visibility - Create an initially Enabled visibility modifier for Player 1 (Red) emitting Visibility across (Playable map area)
    Game - Display to (All players) the text: Creeps will spawn in 10 Seconds.They will spawn every 10 seconds.-lvl to Level UPEsc for Cooldown,health,mana(??)
Creep Spawn
  Events
    Time - Every 10.00 seconds of game time
  Conditions
  Actions
    Unit - Create 4.Footman for Player 2 (Blue) at (Center of Region_000 <gen>) facing Default building facing degrees
    Unit - Create 4.Footman for Player 2 (Blue) at (Center of Region_001 <gen>) facing Default building facing degrees
    Unit - Create 4.Footman for Player 2 (Blue) at (Center of Region_002 <gen>) facing Default building facing degrees
    Unit - Create 4.Footman for Player 2 (Blue) at (Center of Region_003 <gen>) facing Default building facing degrees
Level UP
  Events
    Player - Player 1 (Red) types a chat message containing -lvl (stringnoformat) as An exact match
  Conditions
  Actions
    Hero - Set Map_Unit Hero-level to ((Hero level of Map_Unit) + 1), Show level-up graphics
Refresh
  Events
    Player - Player 1 (Red) skips a cinematic sequence
  Conditions
  Actions
    Unit - Set life of Map_Unit to 100%
    Unit - Set mana of Map_Unit to 100%
    Unit - Reset ability cooldowns for Map_Unit.
    Special Effect - Create a special effect attached to the origin (attachpoint) of Map_Unit using Abilities\Spells\Human\Polymorph\PolyMorphDoneGround.mdl
    Special Effect - Destroy (Last created special effect)
FB Config
  Events
    Map initialization
  Conditions
  Actions
    -------- --------------CONFIGURATION START--------------- --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- (FB_Base_Balls) + [(FB_BallPerLevel) x (Current Level)] = Total Balls Created --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_Base_Balls = 2
    Set VariableSet FPB_BallsPerLevel = 2
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- (FB_BaseDamage) + [(FB_DamagePerLevel) x (Current Level)] = Total Damage Caused To A Unit --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_BaseDamage = 100.00
    Set VariableSet FPB_DamagePerLevel = 30.00
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- The size of the ground effect --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_GroundDummy_Size = 400.00
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- The size of the balls --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_Size = 150.00
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- The range that will be effected to push --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_PushPickRange = 400.00
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- The range that will be effected to explode --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_ExplodePickRange = 200.00
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- The starting height of the balls --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_StartHeight = 1250.00
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- The models effects --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_GroundEffect_Model = Abilities\Spells\Other\Doom\DoomTarget.mdl
    Set VariableSet FPB_Push_Model = Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
    Set VariableSet FPB_Ball_Model = Abilities\Weapons\LordofFlameMissile\LordofFlameMissile.mdl
    Set VariableSet FPB_Effect_Model = Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl
    Set VariableSet FPB_Explode_Model = Abilities\Spells\Other\Doom\DoomDeath.mdl
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- The speed that the balls will fall --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_Fall_Speed = 15.00
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- The speed that the balls will spin --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_SpinSpeed = 10.00
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- The distance increasing speed of the balls when they fall --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_DistanceIncrease = 4.00
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- The pushing speed of the enemy units in the center --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_PushSpeed = 12.00
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- The distance of the balls that will spawn from the center of the target point --------
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet FPB_StartDistance = 10.00
    -------- ------------------------------------------------------------------------------------------------------------------------ --------
    -------- --------------CONFIGURATION END--------------- --------
FB Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Flaming Phoenix Bombs
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        FPB_Index_Listener Equal to 0
      Then - Actions
        Trigger - Turn on FB_Loop <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        FPB_Recycle_Size Greater than 0
      Then - Actions
        Set VariableSet FPB_Recycle_Size = (FPB_Recycle_Size - 1)
        Set VariableSet FPB_Current_Index = FPB_Recycle_Container[FPB_Recycle_Size]
      Else - Actions
        Set VariableSet FPB_Current_Index = FPB_Index_Size
        Set VariableSet FPB_Index_Size = (FPB_Index_Size + 1)
    Set VariableSet FPB_Caster[FPB_Current_Index] = (Triggering unit)
    Set VariableSet FPB_Player = (Owner of FPB_Caster[FPB_Current_Index])
    Set VariableSet FPB_Level = (Level of Flaming Phoenix Bombs for FPB_Caster[FPB_Current_Index])
    Set VariableSet FPB_TargetPoint[FPB_Current_Index] = (Target point of ability being cast)
    Set VariableSet FPB_Balls[FPB_Current_Index] = (FPB_Base_Balls + (FPB_BallsPerLevel x FPB_Level))
    Set VariableSet FPB_Damage = (FPB_BaseDamage + (FPB_DamagePerLevel x (Real(FPB_Level))))
    For each (Integer FPB_Integer) from 1 to FPB_Balls[FPB_Current_Index], do (Actions)
      Loop - Actions
        Set VariableSet FPB_SpawnPoint[FPB_Integer] = (FPB_TargetPoint[FPB_Current_Index] offset by FPB_StartDistance towards ((360.00 / (Real(FPB_Balls[FPB_Current_Index]))) x (Real(FPB_Integer))) degrees.)
        Set VariableSet FPB_Height[FPB_Integer] = FPB_StartHeight
        Unit - Create 1.Dummy for (Owner of FPB_Caster[FPB_Current_Index]) at FPB_SpawnPoint[FPB_Integer] facing Default building facing degrees
        Custom script: call RemoveLocation(udg_FPB_SpawnPoint[udg_FPB_Integer])
        Set VariableSet FPB_Dummy[FPB_Integer] = (Last created unit)
        Custom script: if UnitAddAbility(udg_FPB_Dummy[udg_FPB_Integer],'Amrf') then
        Custom script: call UnitRemoveAbility(udg_FPB_Dummy[udg_FPB_Integer],'Amrf')
        Custom script: endif
        Special Effect - Create a special effect attached to the chest (attachpoint) of FPB_Dummy[FPB_Integer] using FPB_Ball_Model
        Special Effect - Create a special effect attached to the chest (attachpoint) of FPB_Dummy[FPB_Integer] using FPB_Effect_Model
        Animation - Change FPB_Dummy[FPB_Integer] flying height to FPB_Height[FPB_Integer] at 0.00
        Animation - Change FPB_Dummy[FPB_Integer]'s size to (FPB_Size%, 0.00%, 0.00%) of its original size
    Unit - Create 1.Dummy for (Owner of FPB_Caster[FPB_Current_Index]) at FPB_TargetPoint[FPB_Current_Index] facing Default building facing degrees
    Set VariableSet FPB_GroundEffect_Dummy[FPB_Current_Index] = (Last created unit)
    Special Effect - Create a special effect attached to the origin (attachpoint) of FPB_GroundEffect_Dummy[FPB_Current_Index] using FPB_GroundEffect_Model
    Animation - Change FPB_GroundEffect_Dummy[FPB_Current_Index]'s size to (FPB_GroundDummy_Size%, 0.00%, 0.00%) of its original size
    Set VariableSet FPB_Index_Container[FPB_Index_Listener] = FPB_Current_Index
    Set VariableSet FPB_Index_Listener = (FPB_Index_Listener + 1)
FB Loop
  Events
    Time - Every 0.03 seconds of game time
  Conditions
  Actions
    For each (Integer FPB_Loop) from 0 to (FPB_Index_Listener - 1), do (Actions)
      Loop - Actions
        Set VariableSet FPB_Current_Index = FPB_Index_Container[FPB_Loop]
        For each (Integer FPB_Integer) from 1 to FPB_Balls[FPB_Current_Index], do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                FPB_Height[FPB_Integer] Greater than 0.00
              Then - Actions
                Set VariableSet FPB_Height[FPB_Integer] = (FPB_Height[FPB_Integer] - FPB_Fall_Speed)
                Set VariableSet FPB_DummyPoint[FPB_Integer] = (Position of FPB_Dummy[FPB_Integer])
                Set VariableSet FPB_Angle[FPB_Integer] = (Angle from FPB_TargetPoint[FPB_Current_Index] to FPB_DummyPoint[FPB_Integer])
                Set VariableSet FPB_Distance[FPB_Integer] = (Distance between FPB_DummyPoint[FPB_Integer] and FPB_TargetPoint[FPB_Current_Index])
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    FPB_Angle[FPB_Integer] Greater than or equal to 360.00
                  Then - Actions
                    Set VariableSet FPB_Angle[FPB_Integer] = 0.00
                  Else - Actions
                Set VariableSet FPB_Move[FPB_Integer] = (FPB_TargetPoint[FPB_Current_Index] offset by (FPB_Distance[FPB_Integer] + FPB_DistanceIncrease) towards (FPB_Angle[FPB_Integer] - FPB_SpinSpeed) degrees.)
                Animation - Change FPB_Dummy[FPB_Integer] flying height to FPB_Height[FPB_Integer] at 0.00
                Unit - Move FPB_Dummy[FPB_Integer] instantly to FPB_Move[FPB_Integer], facing (FPB_Angle[FPB_Integer] - 90.00) degrees
                Custom script: call RemoveLocation(udg_FPB_Move[udg_FPB_Integer])
                Custom script: call RemoveLocation(udg_FPB_DummyPoint[udg_FPB_Integer])
              Else - Actions
                For each (Integer FPB_Integer) from 1 to FPB_Balls[FPB_Current_Index], do (Actions)
                  Loop - Actions
                    Set VariableSet FPB_DummyPoint[FPB_Integer] = (Position of FPB_Dummy[FPB_Integer])
                    Unit - Kill FPB_Dummy[FPB_Integer]
                    Unit - Kill FPB_GroundEffect_Dummy[FPB_Current_Index]
                    Special Effect - Create a special effect at FPB_DummyPoint[FPB_Integer] using FPB_Explode_Model
                    Unit - Create 1.Dummy for (Owner of FPB_Caster[FPB_Current_Index]) at FPB_DummyPoint[FPB_Integer] facing Default building facing degrees
                    Set VariableSet FPB_Slow_Dummy = (Last created unit)
                    Unit - Add Flaming Bombs (Dummy) to FPB_Slow_Dummy
                    Unit - Set level of Flaming Bombs (Dummy) for FPB_Slow_Dummy to FPB_Level
                    Unit - Add a 1.00 second Generic expiration timer to FPB_Slow_Dummy
                    Set VariableSet FPB_ExplodeGroup = (Units within FPB_ExplodePickRange of FPB_DummyPoint[FPB_Integer] matching (((((Matching unit) is A structure) Not equal to True) and (((Matching unit) is Magic Immune) Not equal to True)) and ((((Matching unit) belongs to an enemy of FPB_Player.) Equal to True) and (((Matching unit) is alive) Equal to True))).)
                    Unit Group - Pick every unit in FPB_ExplodeGroup and do (Actions)
                      Loop - Actions
                        Set VariableSet FPB_Picked_Unit[FPB_Integer] = (Picked unit)
                        Unit - Cause FPB_Caster[FPB_Current_Index] to damage FPB_Picked_Unit[FPB_Integer], dealing FPB_Damage damage of attack type Spells and damage type Normal
                        Unit - Order FPB_Slow_Dummy to Human Sorceress - Slow.FPB_Picked_Unit[FPB_Integer]
                    Custom script: call DestroyGroup(udg_FPB_ExplodeGroup)
                    Custom script: call RemoveLocation(udg_FPB_DummyPoint[udg_FPB_Integer])
                    Custom script: call RemoveLocation(udg_FPB_TargetPoint[udg_FPB_Current_Index])
                Set VariableSet FPB_Index_Listener = (FPB_Index_Listener - 1)
                Set VariableSet FPB_Index_Container[FPB_Loop] = FPB_Index_Container[FPB_Index_Listener]
                Set VariableSet FPB_Recycle_Container[FPB_Recycle_Size] = FPB_Current_Index
                Set VariableSet FPB_Recycle_Size = (FPB_Recycle_Size + 1)
                Set VariableSet FPB_Loop = (FPB_Loop - 1)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    FPB_Index_Listener Equal to 0
                  Then - Actions
                    Trigger - Turn off FB_Loop <gen>
                  Else - Actions
    Set VariableSet FPB_PushGroup[FPB_Current_Index] = (Units within FPB_PushPickRange of FPB_TargetPoint[FPB_Current_Index] matching (((((Matching unit) is A structure) Not equal to True) and (((Matching unit) is Magic Immune) Not equal to True)) and ((((Matching unit) belongs to an enemy of FPB_Player.) Equal to True) and (((Matching unit) is alive) Equal to True))).)
    Unit Group - Pick every unit in FPB_PushGroup[FPB_Current_Index] and do (Actions)
      Loop - Actions
        Set VariableSet FPB_PU_Picked_Unit[FPB_Current_Index] = (Picked unit)
        Set VariableSet FPB_PU_Picked_Position = (Position of FPB_PU_Picked_Unit[FPB_Current_Index])
        Set VariableSet FPB_PU_Angle = (Angle from FPB_TargetPoint[FPB_Current_Index] to FPB_PU_Picked_Position)
        Set VariableSet FPB_Push = (FPB_PU_Picked_Position offset by FPB_PushSpeed towards FPB_PU_Angle degrees.)
        Unit - Move FPB_PU_Picked_Unit[FPB_Current_Index] instantly to FPB_Push, facing Default building facing degrees
        Custom script: call RemoveLocation(udg_FPB_Push)
        Custom script: call RemoveLocation(udg_FPB_PU_Picked_Position)
    Custom script: call DestroyGroup(udg_FPB_PushGroup[udg_FPB_Current_Index])
FB Dummy Dies
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Dying unit)) Equal to Dummy
  Actions
    Unit - Remove (Triggering unit) from the game