• 🏆 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!

Volatile Light v2.01

Spell Preview

Spell Description

Requirements

VL_GIF.jpg
VL_ICON.jpg
Volatile Light
Infuses a target area with holy light for a set amount of time.
If any friendly unit enters the area, they will be healed over
time. Any enemy unit that remains inside the area will miss
more often on attacks.​

Triggers

How to Install

Credits

Changelog

  • VL Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- !! CONFIG START !! --------
      • -------- Abilities & Dummy Unit --------
      • Set VL_Ability = Volatile Light
      • -------- Dummy Unit --------
      • Set VL_Dummy = Dummy
      • -------- Miss on Attacks Ability --------
      • Set VL_AbilityCurse = Volatile Light (Curse)
      • -------- Buff for VL_AbilityMiss --------
      • -------- NOTE: If you want to change debuff SFX, refer to this buff --------
      • Set VL_Debuff = Blind
      • -------- Healing Ability --------
      • Set VL_AbilityHeal = Volatile Light (HoT)
      • -------- Buff for VL_AbilityHeal --------
      • -------- NOTE: If you want to change the buff SFX, refer to this buff --------
      • Set VL_Buff = Holy Blessing
      • -------- --------
      • -------- Max Level VL_Ability Will Have --------
      • -------- NOTE: THIS IS REALLY IMPORTANT IF YOU WANT AOE TO WORK PROPERLY --------
      • Set VL_MaxLevel = 3
      • -------- --------
      • -------- Special Effect for Lightning --------
      • Set VL_L_SFX = Healing Wave - Primary
      • Set VL_L_Amount = 3
      • Set VL_L_Duration = 1.00
      • Set VL_L_Distance = 800.00
      • Set VL_L_Height = 1500.00
      • -------- --------
      • -------- Duration of Spell Per Level --------
      • Set VL_Duration[1] = 8.00
      • Set VL_Duration[2] = 10.00
      • Set VL_Duration[3] = 12.00
      • -------- --------
      • -------- Radius of Spell Per Level --------
      • -------- NOTE: Make sure to match the AoE values of VL_Ability --------
      • Set VL_AoE[1] = 300.00
      • Set VL_AoE[2] = 350.00
      • Set VL_AoE[3] = 400.00
      • -------- --------
      • -------- Special Effect for AoE Indicator --------
      • Set VL_C_SFX = Abilities\Spells\Other\Transmute\GoldBottleMissile.mdl
      • Set VL_C_Speed = 4.00
      • Set VL_C_Amount = 3
      • Set VL_C_GrowTime = 2.00
      • -------- --------
      • -------- Special Effect from Caster At Start of Ability --------
      • Set VL_SFX = Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • -------- --------
      • -------- Special Effect for Lightning Points --------
      • Set VL_L_SFX_EndPoint = Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
      • -------- !! CONFIG END !! --------
      • -------- --------
      • Set VL_PeriodicTimer = 0.03
      • Trigger - Add to VL Loop <gen> the event (Time - Every VL_PeriodicTimer seconds of game time)
      • -------- --------
      • Set VL_TempLoc = (Center of (Playable map area))
      • Unit - Create 1 VL_Dummy for Neutral Passive at VL_TempLoc facing Default building facing degrees
      • Set VL_DummyCaster = (Last created unit)
      • Unit - Add VL_AbilityCurse to VL_DummyCaster
      • Unit - Add VL_AbilityHeal to VL_DummyCaster
      • Custom script: call UnitRemoveAbility(udg_VL_DummyCaster, 'Amov')
      • Custom script: call RemoveLocation(udg_VL_TempLoc)
      • Set VL_TempReal = (Real(VL_C_Amount))
      • Set VL_C_Even = (360.00 / VL_TempReal)
      • For each (Integer VL_TempInt) from 1 to VL_MaxLevel, do (Actions)
        • Loop - Actions
          • Set VL_C_GrowRate[VL_TempInt] = (VL_AoE[VL_TempInt] / (VL_C_GrowTime / VL_PeriodicTimer))

  • VL Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to VL_Ability
    • Actions
      • Custom script: local real x1
      • Custom script: local real y1
      • Custom script: local real z1
      • Custom script: local real x2
      • Custom script: local real y2
      • Custom script: local real z2
      • -------- --------
      • Set VL_SpellCount = (VL_SpellCount + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • VL_SpellCount Equal to 1
        • Then - Actions
          • Trigger - Turn on VL Loop <gen>
        • Else - Actions
          • -------- loop is already on; do nothing --------
      • -------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • VL_RecycledSize Equal to 0
        • Then - Actions
          • Set VL_MaxIndex = (VL_MaxIndex + 1)
          • Set VL_Spell_ID = VL_MaxIndex
        • Else - Actions
          • Set VL_RecycledSize = (VL_RecycledSize - 1)
          • Set VL_Spell_ID = VL_RecycledStack[VL_RecycledSize]
      • Set VL_NodeNext[VL_Spell_ID] = 0
      • Set VL_NodeNext[VL_NodePrev[0]] = VL_Spell_ID
      • Set VL_NodePrev[VL_Spell_ID] = VL_NodePrev[0]
      • Set VL_NodePrev[0] = VL_Spell_ID
      • -------- --------
      • Set VL_Caster[VL_Spell_ID] = (Triggering unit)
      • Set VL_Owner[VL_Spell_ID] = (Triggering player)
      • Set VL_AbilityLvl[VL_Spell_ID] = (Level of VL_Ability for VL_Caster[VL_Spell_ID])
      • Set VL_TargetLoc[VL_Spell_ID] = (Target point of ability being cast)
      • Set VL_C_MoveRate[VL_Spell_ID] = 0.00
      • Set VL_CounterDuration[VL_Spell_ID] = 0.00
      • Set VL_L_Counter[VL_Spell_ID] = 0.00
      • Set VL_CurrentAoE[VL_Spell_ID] = 0.00
      • Set VL_L_CheckSFX[VL_Spell_ID] = True
      • -------- --------
      • Custom script: if udg_VL_GroupEnemy[udg_VL_Spell_ID] == null then
      • Custom script: set udg_VL_GroupEnemy[udg_VL_Spell_ID] = CreateGroup()
      • Custom script: endif
      • -------- --------
      • Set VL_TempLoc = (Position of VL_Caster[VL_Spell_ID])
      • Set VL_L_Direction = (Angle from VL_TargetLoc[VL_Spell_ID] to VL_TempLoc)
      • Custom script: call RemoveLocation(udg_VL_TempLoc)
      • Set VL_TempLoc = (VL_TargetLoc[VL_Spell_ID] offset by VL_L_Distance towards VL_L_Direction degrees)
      • Special Effect - Create a special effect at VL_TargetLoc[VL_Spell_ID] using VL_SFX
      • Special Effect - Destroy (Last created special effect)
      • Custom script: set x1 = GetLocationX(udg_VL_TempLoc)
      • Custom script: set y1 = GetLocationY(udg_VL_TempLoc)
      • Custom script: set z1 = GetLocationZ(udg_VL_TempLoc) + udg_VL_L_Height
      • Custom script: set x2 = GetLocationX(udg_VL_TargetLoc[udg_VL_Spell_ID])
      • Custom script: set y2 = GetLocationY(udg_VL_TargetLoc[udg_VL_Spell_ID])
      • Custom script: set z2 = GetLocationZ(udg_VL_TargetLoc[udg_VL_Spell_ID])
      • Custom script: call RemoveLocation(udg_VL_TempLoc)
      • For each (Integer VL_TempInt) from 1 to VL_L_Amount, do (Actions)
        • Loop - Actions
          • Set VL_L_ID = ((VL_Spell_ID x VL_L_Amount) + VL_TempInt)
          • Custom script: set udg_VL_L[udg_VL_L_ID] = AddLightningEx(udg_VL_L_SFX, true, x1, y1, z1, x2, y2, z2)
          • Special Effect - Create a special effect at VL_TargetLoc[VL_Spell_ID] using VL_L_SFX_EndPoint
          • Special Effect - Destroy (Last created special effect)
  • VL Loop
    • Events
    • Conditions
    • Actions
      • Set VL_Spell_ID = 0
      • For each (Integer VL_LoopInt) from 1 to VL_SpellCount, do (Actions)
        • Loop - Actions
          • Set VL_Spell_ID = VL_NodeNext[VL_Spell_ID]
          • Set VL_CounterDuration[VL_Spell_ID] = (VL_CounterDuration[VL_Spell_ID] + VL_PeriodicTimer)
          • -------- checking if the instance duration has ended --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • VL_CounterDuration[VL_Spell_ID] Greater than or equal to VL_Duration[VL_AbilityLvl[VL_Spell_ID]]
            • Then - Actions
              • Unit Group - Pick every unit in VL_GroupEnemy[VL_Spell_ID] and do (Actions)
                • Loop - Actions
                  • Set VL_TempUnit = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (VL_TempUnit has buff VL_Debuff) Equal to True
                    • Then - Actions
                      • Unit - Remove VL_Debuff buff from VL_TempUnit
                    • Else - Actions
                      • -------- TempUnit does not have debuff; do nothing --------
              • Custom script: call DestroyGroup(udg_VL_GroupEnemy[udg_VL_Spell_ID])
              • Custom script: set udg_VL_GroupEnemy[udg_VL_Spell_ID] = null
              • Custom script: call RemoveLocation(udg_VL_TargetLoc[udg_VL_Spell_ID])
              • -------- --------
              • Set VL_RecycledStack[VL_RecycledSize] = VL_Spell_ID
              • Set VL_RecycledSize = (VL_RecycledSize + 1)
              • Set VL_NodeNext[VL_NodePrev[VL_Spell_ID]] = VL_NodeNext[VL_Spell_ID]
              • Set VL_NodePrev[VL_NodeNext[VL_Spell_ID]] = VL_NodePrev[VL_Spell_ID]
              • -------- --------
              • Set VL_SpellCount = (VL_SpellCount - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • VL_SpellCount Equal to 0
                • Then - Actions
                  • Trigger - Turn off VL Loop <gen>
                • Else - Actions
                  • -------- there is still a spell instance running; do not turn loop off --------
            • Else - Actions
              • -------- checking if lightning effects are still active --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • VL_L_CheckSFX[VL_Spell_ID] Equal to True
                • Then - Actions
                  • Set VL_L_Counter[VL_Spell_ID] = (VL_L_Counter[VL_Spell_ID] + VL_PeriodicTimer)
                  • -------- checking if the lightning effects have reached their max duration of visibility --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • VL_L_Counter[VL_Spell_ID] Greater than or equal to VL_L_Duration
                    • Then - Actions
                      • For each (Integer VL_TempInt) from 1 to VL_L_Amount, do (Actions)
                        • Loop - Actions
                          • Set VL_L_ID = ((VL_Spell_ID x VL_L_Amount) + VL_TempInt)
                          • Lightning - Destroy VL_L[VL_L_ID]
                      • Set VL_L_CheckSFX[VL_Spell_ID] = False
                    • Else - Actions
                      • -------- lightning effects have not reached their max duration of visibility; do not destroy them --------
                • Else - Actions
                  • -------- lightning effects are no longer active; do nothing --------
              • -------- creating the circle effect --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • VL_CurrentAoE[VL_Spell_ID] Less than or equal to VL_AoE[VL_AbilityLvl[VL_Spell_ID]]
                • Then - Actions
                  • Set VL_CurrentAoE[VL_Spell_ID] = (VL_CurrentAoE[VL_Spell_ID] + VL_C_GrowRate[VL_AbilityLvl[VL_Spell_ID]])
                • Else - Actions
                  • -------- effects have already reached max AoE; do not continue to grow --------
              • For each (Integer VL_TempInt) from 1 to VL_C_Amount, do (Actions)
                • Loop - Actions
                  • Set VL_TempReal = (Real(VL_TempInt))
                  • Set VL_Degree = (VL_C_MoveRate[VL_Spell_ID] + (VL_C_Even x VL_TempReal))
                  • Set VL_TempLoc = (VL_TargetLoc[VL_Spell_ID] offset by VL_CurrentAoE[VL_Spell_ID] towards VL_Degree degrees)
                  • Special Effect - Create a special effect at VL_TempLoc using VL_C_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Custom script: call RemoveLocation(udg_VL_TempLoc)
              • Set VL_C_MoveRate[VL_Spell_ID] = (VL_C_MoveRate[VL_Spell_ID] + VL_C_Speed)
              • -------- --------
              • Unit - Change ownership of VL_DummyCaster to VL_Owner[VL_Spell_ID] and Change color
              • Unit - Move VL_DummyCaster instantly to VL_TargetLoc[VL_Spell_ID]
              • Unit - Set level of VL_AbilityCurse for VL_DummyCaster to VL_AbilityLvl[VL_Spell_ID]
              • Unit - Set level of VL_AbilityHeal for VL_DummyCaster to VL_AbilityLvl[VL_Spell_ID]
              • -------- --------
              • -------- finding all units inside effect --------
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within VL_CurrentAoE[VL_Spell_ID] of VL_TargetLoc[VL_Spell_ID]) and do (Actions)
                • Loop - Actions
                  • Set VL_TempUnit = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (VL_TempUnit is A structure) Equal to False
                      • (VL_TempUnit is alive) Equal to True
                      • Or - Any (Conditions) are true
                        • Conditions
                          • And - All (Conditions) are true
                            • Conditions
                              • (VL_TempUnit has buff VL_Buff) Equal to False
                              • (VL_TempUnit belongs to an ally of VL_Owner[VL_Spell_ID]) Equal to True
                          • And - All (Conditions) are true
                            • Conditions
                              • (VL_TempUnit has buff VL_Debuff) Equal to False
                              • (VL_TempUnit is Magic Immune) Equal to False
                              • (VL_TempUnit belongs to an enemy of VL_Owner[VL_Spell_ID]) Equal to True
                    • Then - Actions
                      • -------- healing friendly units that don't have buff --------
                      • -------- cursing enemy units that don't have buff --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (VL_TempUnit belongs to an ally of VL_Owner[VL_Spell_ID]) Equal to True
                        • Then - Actions
                          • Unit - Order VL_DummyCaster to Night Elf Druid Of The Claw - Rejuvenation VL_TempUnit
                        • Else - Actions
                          • Unit - Order VL_DummyCaster to Undead Banshee - Curse VL_TempUnit
                          • Unit Group - Add VL_TempUnit to VL_GroupEnemy[VL_Spell_ID]
                    • Else - Actions
                      • -------- TempUnit did not pass filters; do nothing --------
              • -------- checking if any enemy units left the radius with debuff active --------
              • Unit Group - Pick every unit in VL_GroupEnemy[VL_Spell_ID] and do (Actions)
                • Loop - Actions
                  • Set VL_TempUnit = (Picked unit)
                  • Set VL_TempLoc = (Position of VL_TempUnit)
                  • Set VL_TempReal = (Distance between VL_TempLoc and VL_TargetLoc[VL_Spell_ID])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Or - Any (Conditions) are true
                        • Conditions
                          • (VL_TempUnit is dead) Equal to True
                          • VL_TempReal Greater than or equal to VL_CurrentAoE[VL_Spell_ID]
                    • Then - Actions
                      • Unit - Remove VL_Debuff buff from VL_TempUnit
                      • Unit Group - Remove VL_TempUnit from VL_GroupEnemy[VL_Spell_ID]
                    • Else - Actions
                      • -------- TempUnit is still in radius; keep debuff --------
                  • Custom script: call RemoveLocation(udg_VL_TempLoc)
  1. Under Preferences, make sure you have "Automatically create
    unknown variables while pasting trigger data" checked

  2. Import dummy.mdx, then copy and paste the dummy unit and
    two custom abilities into your map
    NOTE: If you already have dummy.mdx imported into your
    map, you DO NOT have to reimport it
    If you already have a global dummy unit in your
    map, you can skip this step

  3. Copy and paste the Volatile Light folder into your map

  4. Go to the VL Config trigger, and change the Ability, AbilityCurse,
    AbilityHeal, Debuff, & Buff variables to the corresponding objects
    you just imported
NOTE: Make sure that AbilityCurse & AbilityHeal
have the correct buff data fields!​
User
Vexorian - dummy.mdx
[TD]

v2.01 (March 18, 2016)
  • Added an optional Volatile Light folder that is integrated with GUI Spell System
  • Fixed inaccuracy of GrowRate incrementing inside the circle creation loop
  • Removed unnecesary NodeLast[] variable for linked list; last spell instance now stores into NodePrev[0]
  • Removed If/Then/Else that would set NodeLast = NodePrev[Spell_ID] if NodeLast == Spell_ID
v2.00 (January 25, 2016)
  • Changed data structure to linked listing
  • Fixed bug of debuff not being removed on dead enemy units until the end of the duration
v1.03 (December 04, 2015)
  • Changed Owner[] variable to now use Triggering Player instead of Owner of (Unit)
  • Changed spell to now use one global dummy caster instead of one dummy caster per spell instance
  • Changed loop to check if it is time to deindex before starting
  • Changed name of VL Init trigger to VL Cast
  • Removed unnecessary function call when turning off VL Loop (Turn off (This trigger) -> (Turn off VL Loop))
v1.02 (November 26, 2015)
  • Changed the way lightning effects are created
  • Changed names of some variables
  • Removed the Lightning Effects ability
  • Removed unneccesary variables
v1.01 (October 1, 2015)
  • Added a configurable to change the origin and angle of the lightning effects
  • Fixed GrowSpeed to GrowTime (lets you decide how long it will take for effects to reach max radius)
  • Removed KillUnit function and replaced it with RemoveUnit
  • Removed VL Dummy Cleaner trigger
v1.00 (September 29, 2015)
  • Uploaded

Keywords:
volatile, light, holy, heal, curse, circle, aoe, yellow, gold, target, point, linked, listing, gui, mui, killcide
Contents

Volatile Light v2.01 (Map)

Reviews
IcemanBo: re-approved. Spell works flawless. 13:20, 1th Oct 2015 This resource has been Approved by BPower. Criticism: A good example for a well done combination of triggered and object editor based spell. Cool eye-candy and definitly a...
Level 1
Joined
May 4, 2016
Messages
3
It looks and works good. But I have problem, when I have combo of your spell and THIS SPELL(Freezing Bow) .
When I got that spells on same hero and I cast them then that spells will do same effects (freezing bow or your spell effect) .

When I use spells on different heroes (spells separated) then it works fine.
How to fix it please? I will try to find how to fix it myself but probably I wont find how.
 
Level 1
Joined
May 4, 2016
Messages
3

  • VL Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- !! CONFIG START !! --------
      • -------- Abilities & Dummy Unit --------
      • Set VL_Ability = Volatile Light
      • -------- Dummy Unit --------
      • Set VL_Dummy = DummyVL
      • -------- Miss on Attacks Ability --------
      • Set VL_AbilityCurse = Volatile Light (Curse)
      • -------- Buff for VL_AbilityMiss --------
      • -------- NOTE: If you want to change debuff SFX, refer to this buff --------
      • Set VL_Debuff = Blind
      • -------- Healing Ability --------
      • Set VL_AbilityHeal = Volatile Light (HoT)
      • -------- Buff for VL_AbilityHeal --------
      • -------- NOTE: If you want to change the buff SFX, refer to this buff --------
      • Set VL_Buff = Holy Blessing
      • -------- --------
      • -------- Max Level VL_Ability Will Have --------
      • -------- NOTE: THIS IS REALLY IMPORTANT IF YOU WANT AOE TO WORK PROPERLY --------
      • Set VL_MaxLevel = 3
      • -------- --------
      • -------- Special Effect for Lightning --------
      • Set VL_L_SFX = Healing Wave - Primary
      • Set VL_L_Amount = 3
      • Set VL_L_Duration = 1.00
      • Set VL_L_Distance = 800.00
      • Set VL_L_Height = 1500.00
      • -------- --------
      • -------- Duration of Spell Per Level --------
      • Set VL_Duration[1] = 8.00
      • Set VL_Duration[2] = 10.00
      • Set VL_Duration[3] = 12.00
      • -------- --------
      • -------- Radius of Spell Per Level --------
      • -------- NOTE: Make sure to match the AoE values of VL_Ability --------
      • Set VL_AoE[1] = 300.00
      • Set VL_AoE[2] = 350.00
      • Set VL_AoE[3] = 400.00
      • -------- --------
      • -------- Special Effect for AoE Indicator --------
      • Set VL_C_SFX = Abilities\Spells\Other\Transmute\GoldBottleMissile.mdl
      • Set VL_C_Speed = 4.00
      • Set VL_C_Amount = 3
      • Set VL_C_GrowTime = 2.00
      • -------- --------
      • -------- Special Effect from Caster At Start of Ability --------
      • Set VL_SFX = Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • -------- --------
      • -------- Special Effect for Lightning Points --------
      • Set VL_L_SFX_EndPoint = Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
      • -------- !! CONFIG END !! --------
      • -------- --------
      • Set VL_PeriodicTimer = 0.03
      • Trigger - Add to VL Loop <gen> the event (Time - Every VL_PeriodicTimer seconds of game time)
      • -------- --------
      • Set VL_TempLoc = (Center of (Playable map area))
      • Unit - Create 1 VL_Dummy for Neutral Passive at VL_TempLoc facing Default building facing degrees
      • Set VL_DummyCaster = (Last created unit)
      • Unit - Add VL_AbilityCurse to VL_DummyCaster
      • Unit - Add VL_AbilityHeal to VL_DummyCaster
      • Custom script: call UnitRemoveAbility(udg_VL_DummyCaster, 'Amov')
      • Custom script: call RemoveLocation(udg_VL_TempLoc)
      • Set VL_TempReal = (Real(VL_C_Amount))
      • Set VL_C_Even = (360.00 / VL_TempReal)
      • For each (Integer VL_TempInt) from 1 to VL_MaxLevel, do (Actions)
        • Loop - Actions
          • Set VL_C_GrowRate[VL_TempInt] = (VL_AoE[VL_TempInt] / (VL_C_GrowTime / VL_PeriodicTimer))

  • FB Initial
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Do Not Change --------
      • Hashtable - Create a hashtable
      • Set FB_HA = (Last created hashtable)
      • -------- Do Not Change --------
      • -------- Please Re-Set these Values when importing --------
      • Set FB_Ability = Freezing Bow
      • Set FB_Dummy_Ability = Dummy AbilityFB
      • Set FB_Dummies[1] = Freezing Bow Dummy 1
      • Set FB_Dummies[2] = Freezing Bow Dummy 2
      • Set FB_Dummies[3] = Freezing Bow Dummy 3
      • -------- Please Re-Set these Values when importing --------
      • -------- Random splitting set to true makes arrows split randomly, if set to false, arrows will split in a symetrique way --------
      • Set FB_Random_Splitting = True
      • -------- Effects --------
      • Set FB_Fx_Split = Abilities\Weapons\FrostWyrmMissile\FrostWyrmMissile.mdl
      • Set FB_Fx_Blow = Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
      • Set FB_Fx_Missile = Abilities\Spells\Other\FrostArrows\NagaColdArrowMissile.mdl
      • -------- AoE of the Spell --------
      • Set FB_AoE[1] = 150.00
      • Set FB_AoE[2] = 300.00
      • Set FB_AoE[3] = 450.00
      • -------- Primary Target Damage --------
      • Set FB_Dmg[1] = 100.00
      • Set FB_Dmg[2] = 150.00
      • Set FB_Dmg[3] = 200.00
      • -------- Primary Missile Speed --------
      • Set FB_MissileSpeed[1] = 1500.00
      • Set FB_MissileSpeed[2] = 1500.00
      • Set FB_MissileSpeed[3] = 1500.00
      • -------- AoE of damage and slow of spreading arrows --------
      • Set FB_SpreadAoE[1] = 175.00
      • Set FB_SpreadAoE[2] = 175.00
      • Set FB_SpreadAoE[3] = 175.00
      • -------- Amount of arrows spreaded --------
      • Set FB_Spread_Arrows[1] = 5
      • Set FB_Spread_Arrows[2] = 15
      • Set FB_Spread_Arrows[3] = 25
      • -------- Spread arrows damage --------
      • Set FB_SpreadDmg[1] = 25.00
      • Set FB_SpreadDmg[2] = 50.00
      • Set FB_SpreadDmg[3] = 75.00
      • -------- Spread Arrows Missile Speed --------
      • Set FB_SpreadMissileSpeed[1] = 750.00
      • Set FB_SpreadMissileSpeed[2] = 750.00
      • Set FB_SpreadMissileSpeed[3] = 750.00
 
Level 1
Joined
Aug 30, 2016
Messages
4
dont know why it doesnt work. When i cast the spell i just can see the thunderclap animation and there's a light which comes from above a stays there forever.
Captura.PNG
 

Attachments

  • Captura1.PNG
    Captura1.PNG
    897.2 KB · Views: 74
Level 1
Joined
Aug 30, 2016
Messages
4
Yes I did
 

Attachments

  • 85.PNG
    85.PNG
    69.7 KB · Views: 107
  • 86.PNG
    86.PNG
    10.7 KB · Views: 87
  • 87.PNG
    87.PNG
    13.5 KB · Views: 77
Level 1
Joined
Aug 30, 2016
Messages
4
Here it is. Just a warning; it is a huge map with a ton of units :p
 

Attachments

  • Supermapa.w3x
    6.6 MB · Views: 66
Level 37
Joined
Jul 22, 2015
Messages
3,485
Lol the VL Config and VL Cast trigger have two very important actions that are disabled:

  • Trigger - Add to VL Loop <gen> the event (Time - Every VL_PeriodicTimer seconds of game time)
  • Trigger - Turn on VL Loop <gen>
That's why the two triggers have that red marking on them. All you need to do is click on the action and click okay to re-enable it. It's a common issue when you import triggers between maps.
 
Level 4
Joined
Mar 21, 2014
Messages
79
really cool spell with nice effect!
i had to use Periodictimer = 0.1 seconds, because it created lags in local game 1v1 when the ability was casted twice around the same time (we had both the same hero).
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
@Ugabunda,

Sorry for the late response! There seems to be an issue with the Special Effect - Create Special Effect At Point function and the SFX used to create the "circle" effect. Although not ideal, here is a temporary fix I found for it:

  • Go to VL Loop and find this block:
    • For each (Integer VL_TempInt) from 1 to VL_C_Amount, do (Actions)
      • Loop - Actions
        • Set VariableSet VL_TempReal = (Real(VL_TempInt))
        • Set VariableSet VL_Degree = (VL_C_MoveRate[VL_Spell_ID] + (VL_C_Even x VL_TempReal))
        • Set VariableSet VL_TempLoc = (VL_TargetLoc[VL_Spell_ID] offset by VL_CurrentAoE[VL_Spell_ID] towards VL_Degree degrees.)
        • Special Effect - Create a special effect at VL_TempLoc using VL_C_SFX
        • Special Effect - Destroy (Last created special effect)
        • Custom script: call RemoveLocation(udg_VL_TempLoc)
  • Get rid of the line that says "Special Effect - Create a special effect at VL_TempLoc using VL_C_SFX" and add the following instead:
    • Unit - Create 1 VL_Dummy for Neutral Passive at VL_TempLoc facing Default building facing degrees
    • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
    • Special Effect - Create a special effect attached to the origin of (Last created unit) using VL_C_SFX
  • It should look like this when you're done:
    • For each (Integer VL_TempInt) from 1 to VL_C_Amount, do (Actions)
      • Loop - Actions
        • Set VariableSet VL_TempReal = (Real(VL_TempInt))
        • Set VariableSet VL_Degree = (VL_C_MoveRate[VL_Spell_ID] + (VL_C_Even x VL_TempReal))
        • Set VariableSet VL_TempLoc = (VL_TargetLoc[VL_Spell_ID] offset by VL_CurrentAoE[VL_Spell_ID] towards VL_Degree degrees.)
        • Unit - Create 1 VL_Dummy for Neutral Passive at VL_TempLoc facing Default building facing degrees
        • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
        • Special Effect - Create a special effect attached to the origin of (Last created unit) using VL_C_SFX
        • Special Effect - Destroy (Last created special effect)
        • Custom script: call RemoveLocation(udg_VL_TempLoc)
I also recommend changing the size of the dummy unit after you create it to something smaller (I found 50% to be ideal).
 
Top