• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Big problem with spell

Status
Not open for further replies.
Level 6
Joined
Apr 23, 2011
Messages
182
Soo hi, I have download and copy the spell Shadow Suriken 1.06


BUT when i tried to copy to my map. I realise that when the trigger does the dmg in 0.03 It doesnt filter or i dont know what is happening. In conclusion the problem is the dmg is deal like every 0.03 and that causes massive amount of dmg like it does 54 dmg + 54 dmg + 54 dmg.... several times.

But in the original map is working good.

I did everthing it told when pasting the trigger to my map.

I post here the 2 triggers. Please help because i start to think that my editor (jassnewgen5D) has problems with groups of units....

  • Acontecimientos
    • Unidad - A unit Inicia el efecto de una habilidad
  • Condiciones
    • (Ability being cast) Igual a Shadow Shuriken (verdadero)
    • (Owner of (Triggering unit)) Igual a Jugador 1 (rojo)
  • Acciones
    • -------- -------------------------If there is currently no running instance of the spell we switch the spell on------------------------- --------
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • Si: Condiciones
        • ShSh_IndexSize Igual a 0
      • Entonces: Acciones
        • Detonador - Turn on Shadow Shuriken loop <gen>
      • Otros: Acciones
    • -------- Dynamic Index --------
    • Set ShSh_IndexSize = (ShSh_IndexSize + 1)
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • Si: Condiciones
        • ShSh_IndexSize Mayor que ShSh_Index_MAX
      • Entonces: Acciones
        • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
        • Set ShSh_Index[ShSh_IndexSize] = ShSh_IndexSize
        • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
        • Set ShSh_Index_MAX = ShSh_IndexSize
        • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
      • Otros: Acciones
    • Set ShSh_TempInt = ShSh_Index[ShSh_IndexSize]
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- Spell caster --------
    • Set ShSh_caster[ShSh_TempInt] = heroe_human
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- Level of Shadow Shuriken --------
    • Set ShSh_Level[ShSh_TempInt] = 1
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- Two Locations to determine Spell angle and creating the dummies. --------
    • Set ShSh_Loc[6] = (Position of (Triggering unit))
    • Set ShSh_Loc[7] = (Target point of ability being cast)
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- The direction in which the shurikens head. --------
    • Set ShSh_Angle[(ShSh_TempInt x 2)] = (Angle from ShSh_Loc[6] to ShSh_Loc[7])
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- The distance the real Shurikens have moved. --------
    • Set ShSh_Move_Offset[(ShSh_TempInt x 6)] = 0.00
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- This is used to check if the real shurikens had return. --------
    • Set ShSh_Endboolean[(ShSh_TempInt x 2)] = False
    • -------- This is used to check if the shadow shurikens had return. We don´t know if they will be created so we set it to true. --------
    • Set ShSh_Endboolean[((ShSh_TempInt x 2) + 1)] = True
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- There are no shadow shuriken spawned unitl now so we turn it to false. --------
    • Set ShSh_ShadowingBoolean[ShSh_TempInt] = True
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- --------------------------------------------------------GLOBALS//CHANGEABLE VARIABLES-------------------------------------------------------- --------
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- Activating the possibility to spawn shadow shuriken. --------
    • Set ShSh_AspectBoolean[1] = True
    • -------- Activating the mod that returning shuriken heal the caster. --------
    • Set ShSh_AspectBoolean[2] = True
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- This is the speed with which the shurikens move every 0.03 seconds. --------
    • Set ShSh_Movespeed = 30.00
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- With these two reals values you can change the movement of the shurikens. --------
    • -------- This is the factor with which you can stretch and bow the sine function. --------
    • Set ShSh_Sinefactor = 0.75
    • -------- This is the width the sine function has. --------
    • Set ShSh_Area[1] = 125.00
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- Area in which units get damaged around the missiles. --------
    • Set ShSh_Area[2] = 100.00
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- Distance which the missiles fly before they return. --------
    • Set ShSh_Distance[ShSh_TempInt] = 1000.00
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- The chance to create two shadow shurikens which follow the freal ones. --------
    • Set ShSh_Chance[ShSh_TempInt] = 50
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- Damage the real shuriken deal. --------
    • Set ShSh_Damage[(ShSh_TempInt x 2)] = (0.80 x (Real((Inteligencia of heroe_human (Incluir bonuses)))))
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- Damage the shadow shuriken deal. --------
    • Set ShSh_Damage[((ShSh_TempInt x 2) + 1)] = (0.40 x (Real((Inteligencia of heroe_human (Incluir bonuses)))))
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- The basic value for the heal when the real shuriken return. Every damage they deal will be added to this value. --------
    • Set ShSh_LifeAbsorb[(ShSh_TempInt x 2)] = 0.00
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- The basic value for the heal when the shadow shuriken return. Every damage they deal will be added to this value. --------
    • Set ShSh_LifeAbsorb[((ShSh_TempInt x 2) + 1)] = 0.00
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- With this number the heal value of the real shuriken gets divided before the caster is healed. --------
    • Set ShSh_SomeValues[1] = 2.00
    • -------- With this number the heal value of the shadow shuriken gets divided before the caster is healed. --------
    • Set ShSh_SomeValues[2] = 2.00
    • -------- The maximal distance before the shuriken stop returning. --------
    • Set ShSh_SomeValues[3] = 4000.00
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- ----------------------------------EFFECTS---------------------------------- --------
    • -------- Effect which will be added to all shuriken. --------
    • Set ShSh_Effects[1] = Abilities\Weapons\SentinelMissile\SentinelMissile.mdl
    • -------- Effect which will be added to the real shuriken. --------
    • Set ShSh_Effects[2] = Abilities\Weapons\IllidanMissile\IllidanMissile.mdl
    • -------- Effect which will be added to the fake shuriken. --------
    • Set ShSh_Effects[3] = Abilities\Weapons\AvengerMissile\AvengerMissile.mdl
    • -------- Effect which will be created when the fake missiles spawn. --------
    • Set ShSh_Effects[4] = Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
    • -------- Damage effect, added to enemy units. --------
    • Set ShSh_Effects[5] = Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
    • -------- When the missiles return an the caster get healed the effect will be created. --------
    • Set ShSh_Effects[6] = Abilities\Spells\Undead\VampiricAura\VampiricAuraTarget.mdl
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- --------------------------------------------------------END GLOBALS//CHANGEABLE VARIABLES-------------------------------------------------------- --------
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- This our location dummy for the real missiles. --------
    • Unidad - Create 1 Shadow Shuriken dummy for (Owner of ShSh_caster[ShSh_TempInt]) at ShSh_Loc[6] facing Vista edificio predeterminada degrees
    • Set ShSh_Dummy[(ShSh_TempInt x 6)] = (Last created unit)
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- Here we create the two shuriken dummies and add the effects to them. --------
    • -------- I used 2D-arrays to avoid creating variables for each effect and dummy ( At least i hope so) --------
    • For each (Integer ShSh_int) from 1 to 2, do (Actions)
      • Bucle: Acciones
        • Unidad - Create 1 Shadow Shuriken dummy for (Owner of ShSh_caster[ShSh_TempInt]) at ShSh_Loc[6] facing Vista edificio predeterminada degrees
        • Set ShSh_Dummy[((ShSh_TempInt x 6) + ShSh_int)] = (Last created unit)
        • Efecto especial - Create a special effect attached to the chest of ShSh_Dummy[((ShSh_TempInt x 6) + ShSh_int)] using ShSh_Effects[1]
        • Set ShSh_ShurikenEffect[((ShSh_TempInt x 8) + (ShSh_int - 1))] = (Last created special effect)
        • Efecto especial - Create a special effect attached to the chest of ShSh_Dummy[((ShSh_TempInt x 6) + ShSh_int)] using ShSh_Effects[2]
        • Set ShSh_ShurikenEffect[((ShSh_TempInt x 8) + (ShSh_int + 1))] = (Last created special effect)
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- Here we roll to check if the shadow shurikens will be created. --------
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • Si: Condiciones
        • (Random integer number between 1 and 100) Menor que o igual a ShSh_Chance[ShSh_TempInt]
        • ShSh_AspectBoolean[1] Igual a True
      • Entonces: Acciones
        • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
        • -------- So the shurikens are created and we set the boolean for their return to false. --------
        • Set ShSh_Endboolean[((ShSh_TempInt x 2) + 1)] = False
        • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
        • -------- We reduce the start value for the distance the fake shurikens had moved so we get them in the end to the same point. --------
        • Set ShSh_Move_Offset[((ShSh_TempInt x 6) + 3)] = (ShSh_Move_Offset[(ShSh_TempInt x 6)] - 150.00)
        • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
        • -------- The location where the shadow shuriken are spawnend. To avoid bugs the offset value should be the same as the value with thich the moved distance got reduced ealier. --------
        • -------- Here in both cases 150 --------
        • Set ShSh_Loc[8] = (ShSh_Loc[6] offset by 150.00 towards (ShSh_Angle[(ShSh_TempInt x 2)] + 180.00) degrees)
        • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
        • -------- The boolean which shows that the shadow missiles got created, necessary for the loop trigger. --------
        • Set ShSh_ShadowingBoolean[ShSh_TempInt] = True
        • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
        • -------- Our location dummy for the fake missiles. --------
        • Unidad - Create 1 Shadow Shuriken dummy for (Owner of ShSh_caster[ShSh_TempInt]) at ShSh_Loc[8] facing Vista edificio predeterminada degrees
        • Set ShSh_Dummy[((ShSh_TempInt x 6) + 3)] = (Last created unit)
        • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
        • -------- Here we create the two fake shuriken dummies and add the effects to them. --------
        • For each (Integer ShSh_int) from 5 to 6, do (Actions)
          • Bucle: Acciones
            • Unidad - Create 1 Shadow Shuriken dummy for (Owner of ShSh_caster[ShSh_TempInt]) at ShSh_Loc[8] facing Vista edificio predeterminada degrees
            • Set ShSh_Dummy[((ShSh_TempInt x 6) + (ShSh_int - 1))] = (Last created unit)
            • Efecto especial - Create a special effect attached to the chest of ShSh_Dummy[((ShSh_TempInt x 6) + (ShSh_int - 1))] using ShSh_Effects[1]
            • Set ShSh_ShurikenEffect[((ShSh_TempInt x 8) + (ShSh_int - 1))] = (Last created special effect)
            • Efecto especial - Create a special effect attached to the chest of ShSh_Dummy[((ShSh_TempInt x 6) + (ShSh_int - 1))] using ShSh_Effects[3]
            • Set ShSh_ShurikenEffect[((ShSh_TempInt x 8) + (ShSh_int + 1))] = (Last created special effect)
            • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
            • -------- To let them look more lika a shadow we increase their transparency. --------
            • Animación - Change ShSh_Dummy[((ShSh_TempInt x 6) + (ShSh_int - 1))]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 15.00% transparency
        • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
        • -------- The effect which appears when the fake missiles got created. --------
        • Efecto especial - Create a special effect at ShSh_Loc[8] using ShSh_Effects[4]
        • Efecto especial - Destroy (Last created special effect)
      • Otros: Acciones
    • -------- --------------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- Removing the leaks. --------
    • Custom script: call RemoveLocation(udg_ShSh_Loc[6])
    • Custom script: call RemoveLocation(udg_ShSh_Loc[7])
    • Custom script: call RemoveLocation(udg_ShSh_Loc[8])
  • Shadow Shuriken loop
    • Acontecimientos
      • Tiempo - Every 0.03 seconds of game time
    • Condiciones
    • Acciones
      • For each (Integer ShSh_loop_int) from 1 to ShSh_IndexSize, do (Actions)
        • Bucle: Acciones
          • Set ShSh_TempInt = ShSh_Index[ShSh_loop_int]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • Si: Condiciones
              • ShSh_Move_Offset[(ShSh_TempInt x 6)] Menor que ShSh_Distance[ShSh_TempInt]
            • Entonces: Acciones
              • Set ShSh_Move_Offset[(ShSh_TempInt x 6)] = (ShSh_Move_Offset[(ShSh_TempInt x 6)] + ShSh_Movespeed)
              • Set ShSh_SwingOffset = (((Sin(ShSh_Move_Offset[(ShSh_TempInt x 6)])) x ShSh_Sinefactor) x ShSh_Area[1])
              • Set ShSh_Loc[3] = (Position of ShSh_Dummy[(ShSh_TempInt x 6)])
              • Set ShSh_Loc[4] = (ShSh_Loc[3] offset by ShSh_Movespeed towards ShSh_Angle[(ShSh_TempInt x 2)] degrees)
              • Unidad - Move ShSh_Dummy[(ShSh_TempInt x 6)] instantly to ShSh_Loc[4]
              • Set ShSh_Loc[1] = (ShSh_Loc[4] offset by ShSh_SwingOffset towards (ShSh_Angle[(ShSh_TempInt x 2)] - 90.00) degrees)
              • Set ShSh_Loc[2] = (ShSh_Loc[4] offset by ShSh_SwingOffset towards (ShSh_Angle[(ShSh_TempInt x 2)] + 90.00) degrees)
              • For each (Integer ShSh_int) from 1 to 2, do (Actions)
                • Bucle: Acciones
                  • Unidad - Move ShSh_Dummy[((ShSh_TempInt x 6) + ShSh_int)] instantly to ShSh_Loc[ShSh_int]
                  • Set ShSh_TempGroup = (Units within ShSh_Area[1] of ShSh_Loc[ShSh_int] matching (((((Matching unit) is alive) Igual a True) and (((Matching unit) has buff Invulnerable) Igual a False)) and (((((Matching unit) belongs to an ally of (Owner of ShSh_caster[ShSh_TempInt])) Igual a Fals
                  • Grupo de unidad - Pick every unit in ShSh_TempGroup and do (Actions)
                    • Bucle: Acciones
                      • Unidad - Cause ShSh_caster[ShSh_TempInt] to damage (Picked unit), dealing ShSh_Damage[(ShSh_TempInt x 2)] damage of attack type Normal and damage type Normal
                      • Efecto especial - Create a special effect attached to the chest of (Picked unit) using ShSh_Effects[5]
                      • Efecto especial - Destroy (Last created special effect)
                      • Set ShSh_LifeAbsorb[(ShSh_TempInt x 2)] = (ShSh_LifeAbsorb[(ShSh_TempInt x 2)] + ShSh_Damage[(ShSh_TempInt x 2)])
                  • Custom script: call DestroyGroup(udg_ShSh_TempGroup)
              • Custom script: call RemoveLocation(udg_ShSh_Loc[3])
              • Custom script: call RemoveLocation(udg_ShSh_Loc[4])
              • Custom script: call RemoveLocation(udg_ShSh_Loc[1])
              • Custom script: call RemoveLocation(udg_ShSh_Loc[2])
              • Set ShSh_Move_Offset[((ShSh_TempInt x 6) + 1)] = ShSh_Move_Offset[(ShSh_TempInt x 6)]
            • Otros: Acciones
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • Si: Condiciones
                  • ShSh_Endboolean[(ShSh_TempInt x 2)] Igual a False
                • Entonces: Acciones
                  • Set ShSh_Loc[3] = (Position of ShSh_Dummy[(ShSh_TempInt x 6)])
                  • Set ShSh_Loc[4] = (Position of ShSh_caster[ShSh_TempInt])
                  • Set ShSh_Move_Offset[((ShSh_TempInt x 6) + 2)] = (Distance between ShSh_Loc[3] and ShSh_Loc[4])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • Si: Condiciones
                      • ShSh_Move_Offset[((ShSh_TempInt x 6) + 2)] Mayor que o igual a 30.00
                      • ShSh_Move_Offset[((ShSh_TempInt x 6) + 2)] Menor que o igual a ShSh_SomeValues[3]
                      • ShSh_Dummy[(ShSh_TempInt x 6)] No igual a Ninguna unidad
                      • ShSh_caster[ShSh_TempInt] No igual a Ninguna unidad
                      • (ShSh_caster[ShSh_TempInt] is alive) Igual a True
                    • Entonces: Acciones
                      • Set ShSh_Angle[((ShSh_TempInt x 2) + 1)] = (Angle from ShSh_Loc[3] to ShSh_Loc[4])
                      • Set ShSh_Move_Offset[((ShSh_TempInt x 6) + 1)] = (ShSh_Move_Offset[((ShSh_TempInt x 6) + 1)] - ShSh_Movespeed)
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[4])
                      • Set ShSh_SwingOffset = (((Sin(ShSh_Move_Offset[((ShSh_TempInt x 6) + 1)])) x ShSh_Sinefactor) x ShSh_Area[1])
                      • Set ShSh_Loc[4] = (ShSh_Loc[3] offset by ShSh_Movespeed towards ShSh_Angle[((ShSh_TempInt x 2) + 1)] degrees)
                      • Unidad - Move ShSh_Dummy[(ShSh_TempInt x 6)] instantly to ShSh_Loc[4]
                      • Set ShSh_Loc[1] = (ShSh_Loc[4] offset by ShSh_SwingOffset towards (ShSh_Angle[((ShSh_TempInt x 2) + 1)] - 90.00) degrees)
                      • Set ShSh_Loc[2] = (ShSh_Loc[4] offset by ShSh_SwingOffset towards (ShSh_Angle[((ShSh_TempInt x 2) + 1)] + 90.00) degrees)
                      • For each (Integer ShSh_int) from 1 to 2, do (Actions)
                        • Bucle: Acciones
                          • Unidad - Move ShSh_Dummy[((ShSh_TempInt x 6) + ShSh_int)] instantly to ShSh_Loc[ShSh_int]
                          • Set ShSh_TempGroup = (Units within ShSh_Area[1] of ShSh_Loc[ShSh_int] matching (((((Matching unit) is alive) Igual a True) and (((Matching unit) has buff Invulnerable) Igual a False)) and (((((Matching unit) belongs to an ally of (Owner of ShSh_caster[ShSh_TempInt])) Igual a Fals
                          • Grupo de unidad - Pick every unit in ShSh_TempGroup and do (Actions)
                            • Bucle: Acciones
                              • Unidad - Cause ShSh_caster[ShSh_TempInt] to damage (Picked unit), dealing ShSh_Damage[(ShSh_TempInt x 2)] damage of attack type Normal and damage type Normal
                              • Efecto especial - Create a special effect attached to the chest of (Picked unit) using ShSh_Effects[5]
                              • Efecto especial - Destroy (Last created special effect)
                              • Set ShSh_LifeAbsorb[(ShSh_TempInt x 2)] = (ShSh_LifeAbsorb[(ShSh_TempInt x 2)] + ShSh_Damage[(ShSh_TempInt x 2)])
                          • Custom script: call DestroyGroup(udg_ShSh_TempGroup)
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[3])
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[4])
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[1])
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[2])
                    • Otros: Acciones
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • Si: Condiciones
                          • ShSh_caster[ShSh_TempInt] No igual a Ninguna unidad
                          • (ShSh_caster[ShSh_TempInt] is alive) Igual a True
                          • ShSh_Move_Offset[((ShSh_TempInt x 6) + 2)] Menor que 30.00
                          • ShSh_LifeAbsorb[(ShSh_TempInt x 2)] Mayor que 0.00
                          • ShSh_AspectBoolean[2] Igual a True
                        • Entonces: Acciones
                          • Unidad - Set life of ShSh_caster[ShSh_TempInt] to ((Vida of ShSh_caster[ShSh_TempInt]) + (ShSh_LifeAbsorb[(ShSh_TempInt x 2)] / ShSh_SomeValues[1]))
                          • Efecto especial - Create a special effect attached to the origin of ShSh_caster[ShSh_TempInt] using ShSh_Effects[6]
                          • Efecto especial - Destroy (Last created special effect)
                        • Otros: Acciones
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[3])
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[4])
                      • Unidad - Remove ShSh_Dummy[(ShSh_TempInt x 6)] from the game
                      • For each (Integer ShSh_int) from 1 to 2, do (Actions)
                        • Bucle: Acciones
                          • Efecto especial - Destroy ShSh_ShurikenEffect[((ShSh_TempInt x 8) + (ShSh_int - 1))]
                          • Efecto especial - Destroy ShSh_ShurikenEffect[((ShSh_TempInt x 8) + (ShSh_int + 1))]
                          • Unidad - Remove ShSh_Dummy[((ShSh_TempInt x 6) + ShSh_int)] from the game
                      • Set ShSh_Endboolean[(ShSh_TempInt x 2)] = True
                • Otros: Acciones
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • Si: Condiciones
              • ShSh_ShadowingBoolean[ShSh_TempInt] Igual a True
              • ShSh_Move_Offset[((ShSh_TempInt x 6) + 3)] Menor que ShSh_Distance[ShSh_TempInt]
            • Entonces: Acciones
              • Set ShSh_Move_Offset[((ShSh_TempInt x 6) + 3)] = (ShSh_Move_Offset[((ShSh_TempInt x 6) + 3)] + ShSh_Movespeed)
              • Set ShSh_SwingOffset = (((Sin(ShSh_Move_Offset[((ShSh_TempInt x 6) + 3)])) x ShSh_Sinefactor) x ShSh_Area[1])
              • Set ShSh_Loc[1] = (Position of ShSh_Dummy[((ShSh_TempInt x 6) + 3)])
              • Set ShSh_Loc[2] = (ShSh_Loc[1] offset by ShSh_Movespeed towards ShSh_Angle[(ShSh_TempInt x 2)] degrees)
              • Unidad - Move ShSh_Dummy[((ShSh_TempInt x 6) + 3)] instantly to ShSh_Loc[2]
              • Set ShSh_Loc[4] = (ShSh_Loc[2] offset by ShSh_SwingOffset towards (ShSh_Angle[(ShSh_TempInt x 2)] - 90.00) degrees)
              • Set ShSh_Loc[5] = (ShSh_Loc[2] offset by ShSh_SwingOffset towards (ShSh_Angle[(ShSh_TempInt x 2)] + 90.00) degrees)
              • For each (Integer ShSh_int) from 4 to 5, do (Actions)
                • Bucle: Acciones
                  • Unidad - Move ShSh_Dummy[((ShSh_TempInt x 6) + ShSh_int)] instantly to ShSh_Loc[ShSh_int]
                  • Set ShSh_TempGroup = (Units within ShSh_Area[1] of ShSh_Loc[ShSh_int] matching (((((Matching unit) is alive) Igual a True) and (((Matching unit) has buff Invulnerable) Igual a False)) and (((((Matching unit) belongs to an ally of (Owner of ShSh_caster[ShSh_TempInt])) Igual a Fals
                  • Grupo de unidad - Pick every unit in ShSh_TempGroup and do (Actions)
                    • Bucle: Acciones
                      • Unidad - Cause ShSh_caster[ShSh_TempInt] to damage (Picked unit), dealing ShSh_Damage[((ShSh_TempInt x 2) + 1)] damage of attack type Normal and damage type Normal
                      • Efecto especial - Create a special effect attached to the chest of (Picked unit) using ShSh_Effects[5]
                      • Efecto especial - Destroy (Last created special effect)
                      • Set ShSh_LifeAbsorb[((ShSh_TempInt x 2) + 1)] = (ShSh_LifeAbsorb[((ShSh_TempInt x 2) + 1)] + ShSh_Damage[((ShSh_TempInt x 2) + 1)])
                  • Custom script: call DestroyGroup(udg_ShSh_TempGroup)
              • Custom script: call RemoveLocation(udg_ShSh_Loc[1])
              • Custom script: call RemoveLocation(udg_ShSh_Loc[2])
              • Custom script: call RemoveLocation(udg_ShSh_Loc[4])
              • Custom script: call RemoveLocation(udg_ShSh_Loc[5])
              • Set ShSh_Move_Offset[((ShSh_TempInt x 6) + 4)] = ShSh_Move_Offset[((ShSh_TempInt x 6) + 3)]
            • Otros: Acciones
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • Si: Condiciones
                  • ShSh_ShadowingBoolean[ShSh_TempInt] Igual a True
                  • ShSh_Endboolean[((ShSh_TempInt x 2) + 1)] Igual a False
                • Entonces: Acciones
                  • Set ShSh_Loc[1] = (Position of ShSh_Dummy[((ShSh_TempInt x 6) + 3)])
                  • Set ShSh_Loc[2] = (Position of ShSh_caster[ShSh_TempInt])
                  • Set ShSh_Move_Offset[((ShSh_TempInt x 6) + 5)] = (Distance between ShSh_Loc[1] and ShSh_Loc[2])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • Si: Condiciones
                      • ShSh_Move_Offset[((ShSh_TempInt x 6) + 5)] Menor que o igual a ShSh_Move_Offset[((ShSh_TempInt x 6) + 2)]
                      • ShSh_Endboolean[(ShSh_TempInt x 2)] Igual a False
                    • Entonces: Acciones
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[1])
                      • Set ShSh_Loc[3] = (Position of ShSh_Dummy[(ShSh_TempInt x 6)])
                      • Set ShSh_Loc[4] = (ShSh_Loc[3] offset by 150.00 towards (ShSh_Angle[((ShSh_TempInt x 2) + 1)] + 180.00) degrees)
                      • Unidad - Move ShSh_Dummy[((ShSh_TempInt x 6) + 3)] instantly to ShSh_Loc[4]
                      • Set ShSh_Loc[1] = (Position of ShSh_Dummy[((ShSh_TempInt x 6) + 3)])
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[3])
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[4])
                    • Otros: Acciones
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • Si: Condiciones
                      • ShSh_caster[ShSh_TempInt] No igual a Ninguna unidad
                      • (ShSh_caster[ShSh_TempInt] is alive) Igual a True
                      • ShSh_Dummy[((ShSh_TempInt x 6) + 3)] No igual a Ninguna unidad
                      • ShSh_Move_Offset[((ShSh_TempInt x 6) + 5)] Mayor que o igual a 30.00
                      • ShSh_Move_Offset[((ShSh_TempInt x 6) + 5)] Menor que o igual a ShSh_SomeValues[3]
                    • Entonces: Acciones
                      • Set ShSh_Angle[((ShSh_TempInt x 2) + 1)] = (Angle from ShSh_Loc[1] to ShSh_Loc[2])
                      • Set ShSh_Move_Offset[((ShSh_TempInt x 6) + 4)] = (ShSh_Move_Offset[((ShSh_TempInt x 6) + 4)] - ShSh_Movespeed)
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[2])
                      • Set ShSh_SwingOffset = (((Sin(ShSh_Move_Offset[((ShSh_TempInt x 6) + 4)])) x ShSh_Sinefactor) x ShSh_Area[1])
                      • Set ShSh_Loc[2] = (ShSh_Loc[1] offset by ShSh_Movespeed towards ShSh_Angle[((ShSh_TempInt x 2) + 1)] degrees)
                      • Unidad - Move ShSh_Dummy[((ShSh_TempInt x 6) + 3)] instantly to ShSh_Loc[2]
                      • Set ShSh_Loc[4] = (ShSh_Loc[2] offset by ShSh_SwingOffset towards (ShSh_Angle[((ShSh_TempInt x 2) + 1)] - 90.00) degrees)
                      • Set ShSh_Loc[5] = (ShSh_Loc[2] offset by ShSh_SwingOffset towards (ShSh_Angle[((ShSh_TempInt x 2) + 1)] + 90.00) degrees)
                      • For each (Integer ShSh_int) from 4 to 5, do (Actions)
                        • Bucle: Acciones
                          • Unidad - Move ShSh_Dummy[((ShSh_TempInt x 6) + ShSh_int)] instantly to ShSh_Loc[ShSh_int]
                          • Set ShSh_TempGroup = (Units within ShSh_Area[1] of ShSh_Loc[ShSh_int] matching (((((Matching unit) is alive) Igual a True) and (((Matching unit) has buff Invulnerable) Igual a False)) and (((((Matching unit) belongs to an ally of (Owner of ShSh_caster[ShSh_TempInt])) Igual a Fals
                          • Grupo de unidad - Pick every unit in ShSh_TempGroup and do (Actions)
                            • Bucle: Acciones
                              • Unidad - Cause ShSh_caster[ShSh_TempInt] to damage (Picked unit), dealing ShSh_Damage[((ShSh_TempInt x 2) + 1)] damage of attack type Normal and damage type Normal
                              • Efecto especial - Create a special effect attached to the chest of (Picked unit) using ShSh_Effects[5]
                              • Efecto especial - Destroy (Last created special effect)
                              • Set ShSh_LifeAbsorb[((ShSh_TempInt x 2) + 1)] = (ShSh_LifeAbsorb[((ShSh_TempInt x 2) + 1)] + ShSh_Damage[((ShSh_TempInt x 2) + 1)])
                          • Custom script: call DestroyGroup(udg_ShSh_TempGroup)
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[1])
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[2])
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[4])
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[5])
                    • Otros: Acciones
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • Si: Condiciones
                          • ShSh_caster[ShSh_TempInt] No igual a Ninguna unidad
                          • ShSh_Move_Offset[((ShSh_TempInt x 6) + 5)] Menor que 30.00
                          • (ShSh_caster[ShSh_TempInt] is alive) Igual a True
                          • ShSh_LifeAbsorb[((ShSh_TempInt x 2) + 1)] Mayor que 0.00
                          • ShSh_AspectBoolean[2] Igual a True
                        • Entonces: Acciones
                          • Unidad - Set life of ShSh_caster[ShSh_TempInt] to ((Vida of ShSh_caster[ShSh_TempInt]) + (ShSh_LifeAbsorb[((ShSh_TempInt x 2) + 1)] / ShSh_SomeValues[2]))
                          • Efecto especial - Create a special effect attached to the origin of ShSh_caster[ShSh_TempInt] using ShSh_Effects[6]
                          • Efecto especial - Destroy (Last created special effect)
                        • Otros: Acciones
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[1])
                      • Custom script: call RemoveLocation(udg_ShSh_Loc[2])
                      • Unidad - Remove ShSh_Dummy[((ShSh_TempInt x 6) + 3)] from the game
                      • For each (Integer ShSh_int) from 5 to 6, do (Actions)
                        • Bucle: Acciones
                          • Efecto especial - Destroy ShSh_ShurikenEffect[((ShSh_TempInt x 8) + (ShSh_int - 1))]
                          • Efecto especial - Destroy ShSh_ShurikenEffect[((ShSh_TempInt x 8) + (ShSh_int + 1))]
                          • Unidad - Remove ShSh_Dummy[((ShSh_TempInt x 6) + (ShSh_int - 1))] from the game
                      • Set ShSh_Endboolean[((ShSh_TempInt x 2) + 1)] = True
                • Otros: Acciones
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • Si: Condiciones
              • ShSh_Endboolean[(ShSh_TempInt x 2)] Igual a True
              • ShSh_Endboolean[((ShSh_TempInt x 2) + 1)] Igual a True
            • Entonces: Acciones
              • Set ShSh_Index[ShSh_loop_int] = ShSh_Index[ShSh_IndexSize]
              • Set ShSh_Index[ShSh_IndexSize] = ShSh_TempInt
              • Set ShSh_IndexSize = (ShSh_IndexSize - 1)
              • Set ShSh_loop_int = (ShSh_loop_int - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • Si: Condiciones
                  • ShSh_IndexSize Igual a 0
                • Entonces: Acciones
                  • Detonador - Turn off (This trigger)
                • Otros: Acciones
            • Otros: Acciones

Edit :: Yes there was a bug with varibles in loop and i fixed them. But the problem persist.


Please delete this post... I find out now that the spells is not bug is just suppose to work like that. Just i dont understand why moderators aproved sicen its dealing damage in 0.03 seconds and with any text system or damage recording system looks really bad. And also is very inacurate to try to calculate the damage and the healing done by the spell. Just post here for not necroposting.
 
Last edited:
Status
Not open for further replies.
Top