Splitting Fireballs [MUI] v1.36

The caster, creates 2 lines of Fireballs, which move torwards the target position following its movement, dealing a quarter of the max damage to units within 250 range of target. The balls have 1% chance to split into another fireball which add an extra 125 damage.
Each level adds 125 damage,
Also decreases cooldown by 2 seconds.

  • Splitting Fireball
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Splitting Fireball
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SF_Index1 Equal to 0
        • Then - Actions
          • Trigger - Turn on Splitting Fireball Loop <gen>
        • Else - Actions
      • -------- --------------------------------------------------------------------- --------
      • -------- ------ Recycling Constants ------ --------
      • -------- --------------------------------------------------------------------- --------
      • Set SF_Index1 = (SF_Index1 + 1)
      • Set SF_Index2 = (SF_Index2 + 1)
      • -------- --------------------------------------------------------------------- --------
      • -------- ------ Unit Constants ------ --------
      • -------- --------------------------------------------------------------------- --------
      • Set SF_Caster[SF_Index2] = (Triggering unit)
      • Set SF_Target[SF_Index2] = (Target unit of ability being cast)
      • Set SF_TargetPoint[SF_Index2] = (Position of SF_Target[SF_Index2])
      • -------- --------------------------------------------------------------------- --------
      • -------- ------ Spell Constants ------ --------
      • -------- --------------------------------------------------------------------- --------
      • Set SF_Angle[SF_Index2] = 0.00
      • Set SF_Angle2[SF_Index2] = 0.00
      • -------- --------------------------------------------------------------------- --------
      • -------- Choose the variable below to how many times you want to loop the fireball creation --------
      • -------- Each 0.03 seconds --------
      • -------- Default is 1 --------
      • -------- --------------------------------------------------------------------- --------
      • Set SF_Damage[SF_Index2] = (125.00 x (Real((Level of Splitting Fireball for SF_Caster[SF_Index2]))))
      • Set SF_Distance[SF_Index2] = 8.00
      • Set SF_Distances[SF_Index2] = 0.00
      • Set SF_Duration[SF_Index2] = 3.00
      • Set SF_Expired[SF_Index2] = 0.00
      • Set SF_Player[SF_Index2] = (Owner of SF_Caster[SF_Index2])
      • Set SF_Splitted[SF_Index2] = False
      • -------- --------------------------------------------------------------------- --------
      • Set SF_TempPoint = (Position of SF_Caster[SF_Index2])
      • -------- --------------------------------------------------------------------- --------
      • -------- Create Dummies (Main) --------
      • -------- --------------------------------------------------------------------- --------
      • Unit - Create 1 SF_Dummy for SF_Player[SF_Index2] at SF_TempPoint facing SF_TargetPoint[SF_Index2]
      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      • Set SF_Dummy[SF_Index2] = (Last created unit)
      • Unit - Create 1 SF_Dummy for SF_Player[SF_Index2] at SF_TempPoint facing SF_TargetPoint[SF_Index2]
      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      • Set SF_Dummy2[SF_Index2] = (Last created unit)
      • -------- --------------------------------------------------------------------- --------
      • Set SF_DummyPoint[SF_Index2] = (Position of SF_Dummy[SF_Index2])
      • Set SF_DummyPoint2[SF_Index2] = (Position of SF_Dummy2[SF_Index2])
      • Custom script: call RemoveLocation(udg_SF_TempPoint)
  • Splitting Fireball Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer SF_loop) from 1 to SF_Index2, do (Actions)
        • Loop - Actions
          • Set SF_Distances[SF_loop] = (Distance between SF_DummyPoint[SF_loop] and SF_TargetPoint[SF_loop])
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • SF_Distances[SF_loop] Greater than 20.00
              • (SF_Target[SF_loop] is dead) Not equal to True
              • (SF_Caster[SF_loop] is dead) Not equal to True
              • SF_Expired[SF_loop] Less than SF_Duration[SF_loop]
            • Then - Actions
              • Set SF_Expired[SF_loop] = (SF_Expired[SF_loop] + 0.03)
              • Set SF_TargetPoint[SF_loop] = (Position of SF_Target[SF_loop])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SF_Angle[SF_loop] Less than 30.00
                  • SF_Angle2[SF_loop] Less than 30.00
                • Then - Actions
                  • Set SF_Angle[SF_loop] = (SF_Angle[SF_loop] + 5.00)
                  • Set SF_Angle2[SF_loop] = (SF_Angle2[SF_loop] - 5.00)
                • Else - Actions
                  • Set SF_Angle[SF_loop] = (SF_Angle[SF_loop] - 5.00)
                  • Set SF_Angle2[SF_loop] = (SF_Angle2[SF_loop] + 5.00)
              • -------- --------------------------------------------------------------------- --------
              • -------- Create Dummies (Main) --------
              • -------- --------------------------------------------------------------------- --------
              • Set SF_TempPoint = (Position of SF_Dummy[SF_loop])
              • Set SF_TempPoint2 = (SF_TempPoint offset by SF_Distance[SF_loop] towards ((Facing of SF_Dummy[SF_loop]) + SF_Angle[SF_loop]) degrees)
              • Unit - Create 1 SF_Dummy for SF_Player[SF_loop] at SF_TempPoint2 facing SF_TargetPoint[SF_loop]
              • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
              • Set SF_Dummy[SF_loop] = (Last created unit)
              • Custom script: call RemoveLocation(udg_SF_TempPoint)
              • Custom script: call RemoveLocation(udg_SF_TempPoint2)
              • -------- --------------------------------------------------------------------- --------
              • -------- Create Dummies (Main) --------
              • -------- --------------------------------------------------------------------- --------
              • Set SF_TempPoint = (Position of SF_Dummy2[SF_loop])
              • Set SF_TempPoint2 = (SF_TempPoint offset by SF_Distance[SF_loop] towards ((Facing of SF_Dummy2[SF_loop]) + SF_Angle2[SF_loop]) degrees)
              • Unit - Create 1 SF_Dummy for SF_Player[SF_loop] at SF_TempPoint2 facing SF_TargetPoint[SF_loop]
              • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
              • Set SF_Dummy2[SF_loop] = (Last created unit)
              • Custom script: call RemoveLocation(udg_SF_TempPoint)
              • Custom script: call RemoveLocation(udg_SF_TempPoint2)
              • -------- --------------------------------------------------------------------- --------
              • Custom script: call RemoveLocation(udg_SF_DummyPoint[udg_SF_loop])
              • Custom script: call RemoveLocation(udg_SF_DummyPoint2[udg_SF_loop])
              • Set SF_DummyPoint[SF_loop] = (Position of SF_Dummy[SF_loop])
              • Set SF_DummyPoint2[SF_loop] = (Position of SF_Dummy2[SF_loop])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SF_Expired[SF_loop] Greater than or equal to 0.12
                  • SF_Splitted[SF_loop] Equal to False
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Random integer number between 1 and 100) Equal to 1
                    • Then - Actions
                      • Set SF_Splitted[SF_loop] = True
                      • -------- --------------------------------------------------------------------- --------
                      • -------- Create Dummies (Main) --------
                      • -------- --------------------------------------------------------------------- --------
                      • Set SF_TempPoint = (Position of SF_Dummy[SF_loop])
                      • Set SF_TempPoint2 = (SF_TempPoint offset by 150.00 towards ((Facing of SF_Dummy[SF_loop]) - 90.00) degrees)
                      • Unit - Create 1 SF_Dummy for SF_Player[SF_loop] at SF_TempPoint2 facing SF_TargetPoint[SF_loop]
                      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
                      • Set SF_Dummy3[SF_loop] = (Last created unit)
                      • Custom script: call RemoveLocation(udg_SF_TempPoint)
                      • Custom script: call RemoveLocation(udg_SF_TempPoint2)
                      • -------- --------------------------------------------------------------------- --------
                      • -------- Create Dummies (Main) --------
                      • -------- --------------------------------------------------------------------- --------
                      • Set SF_TempPoint = (Position of SF_Dummy2[SF_loop])
                      • Set SF_TempPoint2 = (SF_TempPoint offset by 150.00 towards ((Facing of SF_Dummy2[SF_loop]) + 90.00) degrees)
                      • Unit - Create 1 SF_Dummy for SF_Player[SF_loop] at SF_TempPoint2 facing SF_TargetPoint[SF_loop]
                      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
                      • Set SF_Dummy4[SF_loop] = (Last created unit)
                      • Custom script: call RemoveLocation(udg_SF_TempPoint)
                      • Custom script: call RemoveLocation(udg_SF_TempPoint2)
                      • -------- --------------------------------------------------------------------- --------
                      • Set SF_DummyPoint3[SF_loop] = (Position of SF_Dummy3[SF_loop])
                      • Set SF_DummyPoint4[SF_loop] = (Position of SF_Dummy4[SF_loop])
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SF_Splitted[SF_loop] Equal to True
                    • Then - Actions
                      • -------- --------------------------------------------------------------------- --------
                      • -------- Create Dummies (Main) --------
                      • -------- --------------------------------------------------------------------- --------
                      • Set SF_TempPoint = (Position of SF_Dummy3[SF_loop])
                      • Set SF_TempPoint2 = (SF_TempPoint offset by SF_Distance[SF_loop] towards ((Facing of SF_Dummy3[SF_loop]) + SF_Angle[SF_loop]) degrees)
                      • Unit - Create 1 SF_Dummy for SF_Player[SF_loop] at SF_TempPoint2 facing SF_TargetPoint[SF_loop]
                      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
                      • Set SF_Dummy3[SF_loop] = (Last created unit)
                      • Custom script: call RemoveLocation(udg_SF_TempPoint)
                      • Custom script: call RemoveLocation(udg_SF_TempPoint2)
                      • -------- --------------------------------------------------------------------- --------
                      • -------- Create Dummies (Main) --------
                      • -------- --------------------------------------------------------------------- --------
                      • Set SF_TempPoint = (Position of SF_Dummy4[SF_loop])
                      • Set SF_TempPoint2 = (SF_TempPoint offset by SF_Distance[SF_loop] towards ((Facing of SF_Dummy4[SF_loop]) + SF_Angle2[SF_loop]) degrees)
                      • Unit - Create 1 SF_Dummy for SF_Player[SF_loop] at SF_TempPoint2 facing SF_TargetPoint[SF_loop]
                      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
                      • Set SF_Dummy4[SF_loop] = (Last created unit)
                      • Custom script: call RemoveLocation(udg_SF_TempPoint)
                      • Custom script: call RemoveLocation(udg_SF_TempPoint2)
                      • -------- --------------------------------------------------------------------- --------
                      • Custom script: call RemoveLocation(udg_SF_DummyPoint3[udg_SF_loop])
                      • Custom script: call RemoveLocation(udg_SF_DummyPoint4[udg_SF_loop])
                      • Set SF_DummyPoint3[SF_loop] = (Position of SF_Dummy3[SF_loop])
                      • Set SF_DummyPoint4[SF_loop] = (Position of SF_Dummy4[SF_loop])
                    • Else - Actions
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SF_Splitted[SF_loop] Equal to True
                • Then - Actions
                  • Custom script: set bj_wantDestroyGroup = true
                  • Unit Group - Pick every unit in (Units within 400.00 of SF_TargetPoint[SF_loop] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Magic Immune) Not equal to True) and (((Matching unit) belongs to an enemy and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to SF_Target[SF_loop]
                        • Then - Actions
                          • -------- --------------------------------------------------------------------- --------
                          • -------- Deal damage x 2 to the main target --------
                          • -------- --------------------------------------------------------------------- --------
                          • Unit - Cause SF_Caster[SF_loop] to damage SF_Target[SF_loop], dealing (SF_Damage[SF_loop] x 2.00) damage of attack type Spells and damage type Normal
                        • Else - Actions
                          • -------- --------------------------------------------------------------------- --------
                          • -------- Deal half damage to surronding enemies --------
                          • -------- --------------------------------------------------------------------- --------
                          • Unit - Cause SF_Caster[SF_loop] to damage (Picked unit), dealing (SF_Damage[SF_loop] / 2.00) damage of attack type Spells and damage type Normal
                • Else - Actions
                  • Custom script: set bj_wantDestroyGroup = true
                  • Unit Group - Pick every unit in (Units within 400.00 of SF_TargetPoint[SF_loop] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Magic Immune) Not equal to True) and (((Matching unit) belongs to an enemy and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to SF_Target[SF_loop]
                        • Then - Actions
                          • -------- --------------------------------------------------------------------- --------
                          • -------- Deal damage to the main target --------
                          • -------- --------------------------------------------------------------------- --------
                          • Unit - Cause SF_Caster[SF_loop] to damage SF_Target[SF_loop], dealing SF_Damage[SF_loop] damage of attack type Spells and damage type Normal
                        • Else - Actions
                          • -------- --------------------------------------------------------------------- --------
                          • -------- Deal quarter damage to surronding enemies --------
                          • -------- --------------------------------------------------------------------- --------
                          • Unit - Cause SF_Caster[SF_loop] to damage (Picked unit), dealing (SF_Damage[SF_loop] / 4.00) damage of attack type Spells and damage type Normal
              • Custom script: call RemoveLocation(udg_SF_DummyPoint[udg_SF_loop])
              • Custom script: call RemoveLocation(udg_SF_DummyPoint2[udg_SF_loop])
              • Custom script: call RemoveLocation(udg_SF_DummyPoint3[udg_SF_loop])
              • Custom script: call RemoveLocation(udg_SF_DummyPoint4[udg_SF_loop])
              • Custom script: call RemoveLocation(udg_SF_TargetPoint[udg_SF_loop])
              • Set SF_Index2 = (SF_Index2 - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SF_Index2 Equal to 0
                • Then - Actions
                  • Set SF_Index1 = 0
                  • Trigger - Turn off (This trigger)
                • Else - Actions
  • [/hidden]
Instructions on how to move into your map :

1. Copy Abilitiy (Splitting Fireballs) and Unit (SF_Dummy)
2. Copy Splitting Fireball <gen> and Splitting Fireball Loop
3. Make sure all values are right;
Ability being cast is equal to Splitting Fireball
The right unit is created.
And damage is "X" level of Spitting Fireball

Update :
Removed un-needed wait.
Added a 1% chance that the fireballs will split into another.
Redone the 1% chane so it only happens every 0.12
Units removed in a more clean way.
If Target is not in 250 range of Dummy position then, target not hurt.
Small changes
- Moved triggers around abit
- Got rid of Dummy Group
- Got rid of some unneccesary variables.
- Increased damage select range to 400.
Changed from Owner of to Player.

Keywords:
fire, ball, fireball, split, four, damage, aoe, spell, gui, mui
Contents

Splitting Fireballs v1.36 (Map)

Reviews
v1.36, 23rd Sep 2011] The fireballs spawn above the caster. Maybe change the height to lower. You could use better indexing. Hanky's dynamic indexing or Bribe's unit indexer. Approved.

Moderator

M

Moderator

Maker, Splitting Fireballs [MUI
v1.36, 23rd Sep 2011]
The fireballs spawn above the caster. Maybe change the height to lower.
You could use better indexing. Hanky's dynamic indexing or Bribe's unit indexer.

Approved.
 

  • Splitting Fireball
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Splitting Fireball
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SF_Index1 Equal to 0
        • Then - Actions
          • Trigger - Turn on Splitting Fireball Loop <gen>
        • Else - Actions
      • Set SF_Index1 = (SF_Index1 + 1)
      • Set SF_Index2 = (SF_Index2 + 1)
      • Set SF_Caster[SF_Index2] = (Triggering unit)
      • Set SF_Target[SF_Index2] = (Target unit of ability being cast)
      • Set SF_TargetPoint[SF_Index2] = (Position of SF_Target[SF_Index2])
      • Set SF_Angle[SF_Index2] = 0.00
      • Set SF_Angle2[SF_Index2] = 0.00
      • Set SF_Damage[SF_Index2] = (125.00 x (Real((Level of Splitting Fireball for SF_Caster[SF_Index2]))))
      • Set SF_Distance[SF_Index2] = 8.00
      • Set SF_Duration[SF_Index2] = 3.00
      • Set SF_Expired[SF_Index2] = 0.00
      • Set SF_TempPoint = (Position of SF_Caster[SF_Index2])
      • -------- Create Dummies (Main) --------
      • Unit - Create 1 SF_Dummy for (Owner of SF_Caster[SF_Index2]) at SF_TempPoint facing SF_TargetPoint[SF_Index2]
      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      • Set SF_Dummy[SF_Index2] = (Last created unit)
      • Unit Group - Add (Last created unit) to SF_DummyGroup[SF_Index2]
      • Unit - Create 1 SF_Dummy for (Owner of SF_Caster[SF_Index2]) at SF_TempPoint facing SF_TargetPoint[SF_Index2]
      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      • Set SF_Dummy2[SF_Index2] = (Last created unit)
      • Unit Group - Add (Last created unit) to SF_DummyGroup[SF_Index2]
      • -------- ------------------ --------
      • Set SF_DummyPoint[SF_Index2] = (Position of SF_Dummy[SF_Index2])
      • Set SF_DummyPoint2[SF_Index2] = (Position of SF_Dummy2[SF_Index2])
      • Custom script: call RemoveLocation(udg_SF_TempPoint)
  • Splitting Fireball Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer SF_loop) from 1 to SF_Index2, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between SF_DummyPoint[SF_loop] and SF_TargetPoint[SF_loop]) Greater than 50.00
              • (Distance between SF_DummyPoint2[SF_loop] and SF_TargetPoint[SF_loop]) Greater than 50.00
              • (SF_Target[SF_loop] is dead) Not equal to True
              • (SF_Caster[SF_loop] is dead) Not equal to True
              • SF_Expired[SF_loop] Less than SF_Duration[SF_loop]
            • Then - Actions
              • Set SF_Expired[SF_loop] = (SF_Expired[SF_loop] + 0.03)
              • Set SF_TargetPoint[SF_loop] = (Position of SF_Target[SF_loop])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SF_Angle[SF_loop] Less than 30.00
                  • SF_Angle2[SF_loop] Less than 30.00
                • Then - Actions
                  • Set SF_Angle[SF_loop] = (SF_Angle[SF_loop] + 5.00)
                  • Set SF_Angle2[SF_loop] = (SF_Angle2[SF_loop] - 5.00)
                • Else - Actions
                  • Set SF_Angle[SF_loop] = (SF_Angle[SF_loop] - 5.00)
                  • Set SF_Angle2[SF_loop] = (SF_Angle2[SF_loop] + 5.00)
              • -------- Create Dummies (Main) --------
              • Set SF_TempPoint = (Position of SF_Dummy[SF_loop])
              • Set SF_TempPoint2 = (SF_TempPoint offset by SF_Distance[SF_loop] towards ((Facing of SF_Dummy[SF_loop]) + SF_Angle[SF_loop]) degrees)
              • Unit - Create 1 SF_Dummy for (Owner of SF_Caster[SF_loop]) at SF_TempPoint2 facing SF_TargetPoint[SF_loop]
              • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
              • Set SF_Dummy[SF_loop] = (Last created unit)
              • Unit Group - Add (Last created unit) to SF_DummyGroup[SF_loop]
              • Custom script: call RemoveLocation(udg_SF_TempPoint)
              • Custom script: call RemoveLocation(udg_SF_TempPoint2)
              • -------- Create Dummies (Main) --------
              • Set SF_TempPoint = (Position of SF_Dummy2[SF_loop])
              • Set SF_TempPoint2 = (SF_TempPoint offset by SF_Distance[SF_loop] towards ((Facing of SF_Dummy2[SF_loop]) + SF_Angle2[SF_loop]) degrees)
              • Unit - Create 1 SF_Dummy for (Owner of SF_Caster[SF_loop]) at SF_TempPoint2 facing SF_TargetPoint[SF_loop]
              • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
              • Set SF_Dummy2[SF_loop] = (Last created unit)
              • Unit Group - Add (Last created unit) to SF_DummyGroup[SF_loop]
              • Custom script: call RemoveLocation(udg_SF_TempPoint)
              • Custom script: call RemoveLocation(udg_SF_TempPoint2)
              • -------- ------------------ --------
              • Custom script: call RemoveLocation(udg_SF_DummyPoint[udg_SF_loop])
              • Custom script: call RemoveLocation(udg_SF_DummyPoint2[udg_SF_loop])
              • Set SF_DummyPoint[SF_loop] = (Position of SF_Dummy[SF_loop])
              • Set SF_DummyPoint2[SF_loop] = (Position of SF_Dummy2[SF_loop])
            • Else - Actions
              • Unit - Cause SF_Caster[SF_loop] to damage SF_Target[SF_loop], dealing SF_Damage[SF_loop] damage of attack type Spells and damage type Normal
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within 250.00 of SF_TargetPoint[SF_loop] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Magic Immune) Not equal to True) and (((Matching unit) belongs to an enemy and do (Actions)
                • Loop - Actions
                  • Unit - Cause SF_Caster[SF_loop] to damage (Picked unit), dealing (SF_Damage[SF_loop] / 4.00) damage of attack type Spells and damage type Normal
              • Custom script: call RemoveLocation(udg_SF_DummyPoint[udg_SF_loop])
              • Custom script: call RemoveLocation(udg_SF_DummyPoint2[udg_SF_loop])
              • Custom script: call RemoveLocation(udg_SF_TargetPoint[udg_SF_loop])
              • Unit Group - Pick every unit in SF_DummyGroup[SF_loop] and do (Actions)
                • Loop - Actions
                  • Wait 0.05 seconds
                  • Unit - Remove (Picked unit) from the game
              • Custom script: call DestroyGroup(udg_SF_DummyGroup[udg_SF_loop])
              • Set SF_Index2 = (SF_Index2 - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SF_Index2 Equal to 0
                • Then - Actions
                  • Set SF_Index1 = 0
                  • Trigger - Turn off (This trigger)
                • Else - Actions
--
Oh! Wait :(


Oopps!
I actually didnt mean to do that wait :')
-.-

Edit :
Fixed that wait action.
 
Level 16
Joined
May 1, 2008
Messages
1,605
Moin moin =)

I think the spell is a little buggy but possible this is just me.
1) When I cast the spell, the fireball splits into two waves of fire.
2) These waves moves to the half distance between caster and target forward with outside angle
3) After the half distance these waves moves forward with inside angle until they reached the target and damage it.

Problem is, when the target moves away from the caster (neutral monsters run away after some seconds), these waves only moves to the half distance, damage the target but disappear then.

== More things ==
You only need 1 Trigger for loop and fuse. You can use another variable in the loop, which counts like "variable = variable + 0.03", if "variable >= 0.10 then".

Using a dummy spell like Fireball oder Stormbolt isn't a good idea like this, because the target get stunt and start moving without taking damage. Use "Life Drain" instead.

That's all for now, damn GUI I don't know what to change else ^^

Greetings and Peace
Dr. Boom
 
Moin moin =)

I think the spell is a little buggy but possible this is just me.
1) When I cast the spell, the fireball splits into two waves of fire.
2) These waves moves to the half distance between caster and target forward with outside angle
3) After the half distance these waves moves forward with inside angle until they reached the target and damage it.

Problem is, when the target moves away from the caster (neutral monsters run away after some seconds), these waves only moves to the half distance, damage the target but disappear then.

== More things ==
You only need 1 Trigger for loop and fuse. You can use another variable in the loop, which counts like "variable = variable + 0.03", if "variable >= 0.10 then".

Using a dummy spell like Fireball oder Stormbolt isn't a good idea like this, because the target get stunt and start moving without taking damage. Use "Life Drain" instead.

That's all for now, damn GUI I don't know what to change else ^^

Greetings and Peace
Dr. Boom

Okay cheeers for the feedback,
and yea if the unit moves torwards you then it looks weird,
I might possible make it so that "The dummies will deal normal damage of AOE of 100, then quarter damage of 300, excluding those units that have already been hit by the normal damage"
And okay, will change the dummy spell now.

Thanks for the feedback,
Evilcrizpy.

Edit :
Changes have been made to spell, hope your pleased with the changes.
 
Last edited:
- Owner of triggerunit >>> TriggerPlayer
- Why do you need the group?, its useless
- Distance between points is best to store in a real variable and enumerate it that way
- You really dont need this >>> SF_Expired[SF_loop] Less than SF_Duration[SF_loop]
- SF_SplittingTime[SF_loop] Equal to 0.12 >>> SF_SplittingTime[SF_loop] Greater than or Equal to 0.12
- The third IF in the THEN part of the loop can be put in the ELSE part of the second IF...
 
- Owner of triggerunit >>> TriggerPlayer
- Why do you need the group?, its useless
- Distance between points is best to store in a real variable and enumerate it that way
- You really dont need this >>> SF_Expired[SF_loop] Less than SF_Duration[SF_loop]
- SF_SplittingTime[SF_loop] Equal to 0.12 >>> SF_SplittingTime[SF_loop] Greater than or Equal to 0.12
- The third IF in the THEN part of the loop can be put in the ELSE part of the second IF...

1 ) Okay shall change that
2 ) Will also get rid of taht
3 ) That is there for lets say, The target unit begins to run away, that timer is there so that the trail will not keep following you as that would not look right?
4) Ahh yea, i spotted that
5) Okayyy

Thankyou for your feedback.

Edit :

By changing to TriggeringPlayer, bugs are caused. So sticking to Owner of.


Evilcrizpy
 
You isolated the issue to strictly changing the player?

What kind of bugs? Is it reproducable just by changing the player value?

Well i had set a variable to
  • Set SF_Player[SF_Index2] = (Owner of (SF_Caster[SF_Index2])
and then used it in the Create unit action,

Sometimes the dummy unit would not be created,
however if i leave it as "(Owner of (Sf_Caster[SF_Index2])"
It seems to run fine;

I shall have another look at it, i might have done something wrong.

Okay;
I found the "reason" why it didnt work -.- i feel so stupid right now;
basically;

  • Set SF_Player[SF_Index2] = (Owner of (SF_Caster[SF_Index2])
I had forgot to set that -.-
 
Last edited:
Top