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

[GUI] Arcane Circle

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Credits:
Stonneash (Spell)

Special Thanks to:
Chaosy (Helped Removing Point Leaks)
Hellx-Magnus (Icons)


Trigger 1:
  • Events
    • Map initialization
  • Conditions
  • Actions
  • Set PS_Intger = 1
Trigger 2:
  • Events
    • Time - Every 0.01 seconds of game time
  • Conditions
    • PS_Intger Equal to 99
  • Actions
    • Set PS_Intger = 1
Trigger 3:
  • Events
  • Unit - A unit Starts the effect of an ability
  • Conditions
    • (Ability being cast) Equal to Arcane Blast
  • Actions
  • Actions
    • Set PS_Intger = (PS_Intger + 1)
    • Set PS_Caster[PS_Intger] = (Triggering unit)
    • Set PS_Caster_Postion[PS_Intger] = (Position of PS_Caster[PS_Intger])
    • -------- ------------------------------------------------------------------------------------ --------
    • Set PS_LightningEffectRadius = (150.00 + (40.00 x (Real((Level of Arcane Blast for PS_Caster[PS_Intger])))))
    • Set PS_Damage = (50.00 + (25.00 x (Real((Level of Arcane Blast for PS_Caster[PS_Intger])))))
    • Set PS_Duration = (0.75 + (0.50 + (Real((Level of Arcane Blast for PS_Caster[PS_Intger])))))
    • Set PS_DamagePER003 = (PS_Damage x 0.03)
    • -------- ------------------------------------------------------------------------------------ --------
    • Set PS_P[1] = ((Position of PS_Caster[PS_Intger]) offset by PS_LightningEffectRadius towards 0.00 degrees)
    • Set PS_P[2] = ((Position of PS_Caster[PS_Intger]) offset by PS_LightningEffectRadius towards 45.00 degrees)
    • Set PS_P[3] = ((Position of PS_Caster[PS_Intger]) offset by PS_LightningEffectRadius towards 90.00 degrees)
    • Set PS_P[4] = ((Position of PS_Caster[PS_Intger]) offset by PS_LightningEffectRadius towards 135.00 degrees)
    • Set PS_P[5] = ((Position of PS_Caster[PS_Intger]) offset by PS_LightningEffectRadius towards 180.00 degrees)
    • Set PS_P[6] = ((Position of PS_Caster[PS_Intger]) offset by PS_LightningEffectRadius towards 225.00 degrees)
    • Set PS_P[7] = ((Position of PS_Caster[PS_Intger]) offset by PS_LightningEffectRadius towards 270.00 degrees)
    • Set PS_P[8] = ((Position of PS_Caster[PS_Intger]) offset by PS_LightningEffectRadius towards 315.00 degrees)
    • -------- ------------------------------------------------------------------------------------ --------
    • Unit - Pause PS_Caster[PS_Intger]
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[1] to target PS_P[2]
    • Set PS_LightningEffect[1] = (Last created lightning effect)
    • Lightning - Change color of PS_LightningEffect[1] to (0.80 0.35 1.00) with 0.80 alpha
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[2] to target PS_P[3]
    • Set PS_LightningEffect[2] = (Last created lightning effect)
    • Lightning - Change color of PS_LightningEffect[2] to (0.80 0.35 1.00) with 0.80 alpha
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[3] to target PS_P[4]
    • Set PS_LightningEffect[3] = (Last created lightning effect)
    • Lightning - Change color of PS_LightningEffect[3] to (0.80 0.35 1.00) with 0.80 alpha
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[4] to target PS_P[5]
    • Set PS_LightningEffect[4] = (Last created lightning effect)
    • Lightning - Change color of PS_LightningEffect[4] to (0.80 0.35 1.00) with 0.80 alpha
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[5] to target PS_P[6]
    • Set PS_LightningEffect[5] = (Last created lightning effect)
    • Lightning - Change color of PS_LightningEffect[5] to (0.80 0.35 1.00) with 0.80 alpha
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[6] to target PS_P[7]
    • Set PS_LightningEffect[6] = (Last created lightning effect)
    • Lightning - Change color of PS_LightningEffect[6] to (0.80 0.35 1.00) with 0.80 alpha
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[7] to target PS_P[8]
    • Set PS_LightningEffect[7] = (Last created lightning effect)
    • Lightning - Change color of PS_LightningEffect[7] to (0.80 0.35 1.00) with 0.80 alpha
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[8] to target PS_P[1]
    • Set PS_LightningEffect[8] = (Last created lightning effect)
    • Lightning - Change color of PS_LightningEffect[8] to (0.80 0.35 1.00) with 0.80 alpha
    • -------- ------------------------------------------------------------------------------------ --------
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[1] to target PS_P[5]
    • Set PS_LightningEffect[9] = (Last created lightning effect)
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[2] to target PS_P[6]
    • Set PS_LightningEffect[10] = (Last created lightning effect)
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[3] to target PS_P[7]
    • Set PS_LightningEffect[11] = (Last created lightning effect)
    • Lightning - Create a Chain Lightning - Primary lightning effect from source PS_P[4] to target PS_P[8]
    • Set PS_LightningEffect[12] = (Last created lightning effect)
    • -------- ------------------------------------------------------------------------------------ --------
    • Trigger - Turn on Phantom Damge <gen>
    • Wait PS_Duration seconds
    • Trigger - Turn off Phantom Damge <gen>
    • Unit - Unpause PS_Caster[PS_Intger]
    • For each (Integer A) from 1 to 12, do (Actions)
      • Loop - Actions
        • Lightning - Destroy PS_LightningEffect[(Integer A)]
    • Custom script: set bj_wantDestroyGroup = true
    • Custom script: call RemoveLocation(udg_PS_P[1])
    • Custom script: call RemoveLocation(udg_PS_P[2])
    • Custom script: call RemoveLocation(udg_PS_P[3])
    • Custom script: call RemoveLocation(udg_PS_P[4])
    • Custom script: call RemoveLocation(udg_PS_P[5])
    • Custom script: call RemoveLocation(udg_PS_P[6])
    • Custom script: call RemoveLocation(udg_PS_P[7])
    • Custom script: call RemoveLocation(udg_PS_P[8])
    • Custom script: call RemoveLocation(udg_PS_Caster_Postion[udg_PS_Intger])
Trigger 4
  • Events
    • Time - Every 0.03 seconds of game time
  • Conditions
  • Actions
    • Custom script: set bj_wantDestroyGroup = true
    • Unit Group - Pick every unit in (Units within PS_LightningEffectRadius of PS_Caster_Postion[PS_Intger]) and do (Actions)
      • Loop - Actions
        • Unit - Cause PS_Caster[PS_Intger] to damage (Picked unit), dealing PS_DamagePER003 damage of attack type Spells and damage type Normal


Keywords:
arcane, spell, plasma, lightning, thunder circle
Contents

Just another Warcraft III map (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. 10:31, 18th Dec 2012 Magtheridon96: - This has a lot of leaks. ((some position) offset by x) creates 2 locations, so you need 2 variables. Not 1. You should store (some position) into a...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.

10:31, 18th Dec 2012
Magtheridon96:

- This has a lot of leaks. ((some position) offset by x) creates 2 locations, so you need 2 variables. Not 1. You should store (some position) into a point variable and use that point variable to get the other positions like this: (point_variable offset by x)
- You need to make the spell configurable. There needs to be a trigger that runs on map initialization to allow the user to change spell constants like the lightning colors, the damage, the area of effect, the special effects, etc...
- This spell is not Multi-unit-instanceable. There are plenty of methods to make a spell Multi-unit-instanceable (MUI) such as dynamic indexing or hashtable usage.

Here are some links that might help you out:
 
Top