Spellpack Simple Random Spellpack (GUI) Version II

denmax

You can change this now in User CP.
Reaction score
155
Another spell pack of my Arena of Champions: Abilities™ Originals

Sorry for the lengthy triggers. I never edited it but just got it from my map (although Element Nova is new)

Theme: Completely Random
GUI/JASS: GUI
Leakless: I think so..
Original: Yes (although quite possible someone already did T_T)
Screenshots: Yes (although unsatisfying)

For you to use these skills, you have to export everything in this trigger including:

• The variables (Press Ctrl+B for whole view of used variables)
• The dummy spells (You may recreate it)
• The dummy that casts and the wave dummy for Holy Slash (You may recreate it)
• Damage Detection System (for Blade of Penance Amplify)
• All the triggers below (DUH!)

Remember to change the conditions of "Ability being cast" for it to work on your own spells !

MUI/MPI:
- Chain Shackles: False
- Frost Orb: False
- Element Nova: MUI
- Arrow Trap: False


shacklesef0.png

CHAIN SHACKLES
TARGET UNIT
Binds to a target enemy unit making both incapable of moving and casting spells. The shackles then tie to another unit and another, making all of the units tied immobilized dealing damage overtime.
Lasts 4 seconds.

If a unit dies during the shackle while there are units before it, the tie breaks rendering the other shackled unit(s) free.

Level 1 - 30 damage per second.
Level 2 - 40 damage per second.
Level 3 - 50 damage per second.

Trigger:
  • Chain Shackles
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Chain Shackles
    • Actions
      • Set ShacklesCaster = (Casting unit)
      • Set ShacklesTarget[1] = (Target unit of ability being cast)
      • Set ShacklesTarLoc[1] = (Position of ShacklesTarget[1])
      • Set Point[2] = (Position of (Triggering unit))
      • Set ShacklesGroup[1] = (Units within 700.00 of ShacklesTarLoc[1] 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 of
      • Set ShacklesGroup[2] = (Random 1 units from ShacklesGroup[1])
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in ShacklesGroup[1]) Greater than 0
        • Then - Actions
          • Unit Group - Pick every unit in ShacklesGroup[2] and do (Actions)
            • Loop - Actions
              • Set ShacklesTarget[2] = (Picked unit)
              • Set ShacklesTarLoc[2] = (Position of ShacklesTarget[2])
              • Unit - Create 1 Peasant for (Owner of ShacklesCaster) at ShacklesTarLoc[1] facing Default building facing degrees
              • Set ShacklesDummy[1] = (Last created unit)
              • Unit - Add Chain Shackles (Dummy) to ShacklesDummy[1]
              • Unit - Set level of Chain Shackles (Dummy) for ShacklesDummy[1] to (Level of Chain Shackles for ShacklesCaster)
              • Unit - Order ShacklesDummy[1] to Human Dragonhawk Rider - Aerial Shackles ShacklesTarget[2]
              • Unit - Add a 5.00 second Generic expiration timer to ShacklesDummy[1]
              • Set ShacklesGroup[3] = (Units within 700.00 of ShacklesTarLoc[2] 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 of
              • Set ShacklesGroup[4] = (Random 1 units from ShacklesGroup[3])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in ShacklesGroup[3]) Greater than 0
                • Then - Actions
                  • Unit Group - Pick every unit in ShacklesGroup[4] and do (Actions)
                    • Loop - Actions
                      • Set ShacklesTarget[3] = (Picked unit)
                      • Unit - Create 1 Peasant for (Owner of ShacklesCaster) at ShacklesTarLoc[2] facing Default building facing degrees
                      • Set ShacklesDummy[2] = (Last created unit)
                      • Unit - Add Chain Shackles (Dummy) to ShacklesDummy[2]
                      • Unit - Set level of Chain Shackles (Dummy) for ShacklesDummy[2] to (Level of Chain Shackles for ShacklesCaster)
                      • Unit - Order ShacklesDummy[2] to Human Dragonhawk Rider - Aerial Shackles ShacklesTarget[3]
                      • Unit - Add a 5.00 second Generic expiration timer to ShacklesDummy[2]
                      • Set Boolean[99] = True
                  • Custom script: call DestroyGroup(udg_ShacklesGroup[3])
                  • Custom script: call DestroyGroup(udg_ShacklesGroup[4])
                  • Custom script: call RemoveLocation(udg_ShacklesTarLoc[2])
                • Else - Actions
                  • Custom script: call DestroyGroup(udg_ShacklesGroup[3])
                  • Custom script: call DestroyGroup(udg_ShacklesGroup[4])
                  • Custom script: call RemoveLocation(udg_ShacklesTarLoc[2])
          • Custom script: call DestroyGroup(udg_ShacklesGroup[1])
          • Custom script: call DestroyGroup(udg_ShacklesGroup[2])
          • Custom script: call RemoveLocation(udg_Point[2])
          • Custom script: call RemoveLocation(udg_ShacklesTarLoc[1])
        • Else - Actions
          • Custom script: call DestroyGroup(udg_ShacklesGroup[1])
          • Custom script: call DestroyGroup(udg_ShacklesGroup[2])
          • Custom script: call RemoveLocation(udg_Point[2])
          • Custom script: call RemoveLocation(udg_ShacklesTarLoc[1])
      • Wait 4.00 seconds
      • Set Boolean[99] = False


Trigger:
  • Shackles Break 1
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (ShacklesTarget[1] is dead) Equal to True
          • (ShacklesCaster is dead) Equal to True
    • Actions
      • Unit - Kill ShacklesDummy[1]
      • Unit - Kill ShacklesDummy[2]
      • Set Boolean[99] = False


Trigger:
  • Shackles Break 2
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
      • (ShacklesTarget[2] is dead) Equal to True
    • Actions
      • Unit - Kill ShacklesDummy[2]
      • Set Boolean[99] = False


Trigger:
  • Shackles Break 3
    • Events
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order targeting an object
      • Unit - A unit Is issued an order with no target
    • Conditions
      • Boolean[99] Equal to True
      • (Triggering unit) Equal to ShacklesCaster
    • Actions
      • Set Boolean[99] = False
      • Unit - Kill ShacklesDummy[1]
      • Unit - Kill ShacklesDummy[2]

frostorbuz0.png

FROST ORB
INSTANT
Summons 5 spheres that spins around the Hero. Upon impact against an enemy unit, it creates a Frost Nova which deals damage plus nova damage and slow.
Lasts 20 seconds or until all orbs are destroyed.

Level 1 - 40/20 damage.
Level 2 - 70/35 damage.
Level 3 - 90/45 damage.

Trigger:
  • Frost Orb
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Frost Orb
    • Actions
      • Set FrostOrbCasLoc = (Position of (Triggering unit))
      • Set Real[1] = 0.00
      • Set FrostOrbSpin[1] = 0.00
      • Set FrostOrbSpin[2] = 72.00
      • Set FrostOrbSpin[3] = 144.00
      • Set FrostOrbSpin[4] = 216.00
      • Set FrostOrbSpin[5] = 288.00
      • Set FrostOrbCaster = (Triggering unit)
      • For each (Integer A) from 1 to 5, do (Actions)
        • Loop - Actions
          • Unit - Create 1 Wisp for (Owner of (Triggering unit)) at (FrostOrbCasLoc offset by 190.00 towards Real[1] degrees) facing Default building facing degrees
          • Unit - Turn collision for (Last created unit) Off
          • Unit - Add a 20.00 second Generic expiration timer to (Last created unit)
          • Set FrostOrbs[(Integer A)] = (Last created unit)
          • Set Real[1] = (Real[100] + (360.00 / 5.00))
      • Custom script: call RemoveLocation(udg_FrostOrbCasLoc)


Trigger:
  • Frost Orb Damage
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Set FrostOrbCasLoc = (Position of FrostOrbCaster)
      • For each (Integer A) from 1 to 5, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (FrostOrbs[(Integer A)] is alive) Equal to True
              • (FrostOrbCaster is alive) Equal to True
            • Then - Actions
              • Set FrostOrbSpin[(Integer A)] = (FrostOrbSpin[(Integer A)] + 5.00)
              • Unit - Move FrostOrbs[(Integer A)] instantly to (FrostOrbCasLoc offset by 190.00 towards FrostOrbSpin[(Integer A)] degrees)
              • Set FrostOrbDummyLoc[(Integer A)] = (Position of FrostOrbs[(Integer A)])
              • Set UnitGroup[1] = (Units within 75.00 of FrostOrbDummyLoc[(Integer A)] 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 a
              • Set UnitGroup[2] = (Random 1 units from UnitGroup[1])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in UnitGroup[1]) Greater than 0
                • Then - Actions
                  • Unit Group - Pick every unit in UnitGroup[2] and do (Actions)
                    • Loop - Actions
                      • Unit - Kill FrostOrbs[(Integer A)]
                      • Unit - Create 1 Peasant for (Owner of FrostOrbCaster) at FrostOrbDummyLoc[(Integer A)] facing Default building facing degrees
                      • Unit - Add Frost Orb (Dummy) to (Last created unit)
                      • Unit - Set level of Frost Orb (Dummy) for (Last created unit) to (Level of Frost Orb for FrostOrbCaster)
                      • Unit - Order (Last created unit) to Undead Lich - Frost Nova (Picked unit)
                      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                • Else - Actions
              • Custom script: call DestroyGroup(udg_UnitGroup[1])
              • Custom script: call DestroyGroup(udg_UnitGroup[2])
              • Custom script: call RemoveLocation(udg_FrostOrbDummyLoc[bj_forLoopAIndex])
            • Else - Actions
              • Unit - Kill FrostOrbs[(Integer A)]
      • Custom script: call RemoveLocation(udg_FrostOrbCasLoc)


elementnovait8.png

ELEMENT NOVA
INSTANT
Conjures the power of the elements and uses it as a devastating way to destroy nearby enemies. Earth, Storm, and Fire, has now answered your call!

Order or waves
Earth - 200 instant damage, 2 second stun
Fire - 45 damage per second
Storm - 75 damage per target, jumps 5 times

Trigger:
  • Element Nova
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Element Nova
    • Actions
      • Set Real[99] = 0.00
      • Set Point[1] = (Position of (Triggering unit))
      • For each (Integer B) from 1 to 8, do (Actions)
        • Loop - Actions
          • -------- EARTH --------
          • Set PointOffset[(Integer B)] = (Point[1] offset by 400.00 towards Real[99] degrees)
          • Unit - Create 1 Peasant for (Owner of (Triggering unit)) at PointOffset[(Integer B)] facing Default building facing degrees
          • Unit - Add Element Nova (Dummy - Earth) to (Last created unit)
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • Special Effect - Create a special effect at PointOffset[(Integer B)] using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
          • Special Effect - Destroy (Last created special effect)
          • -------- FIRE --------
          • Set PointOffset[((Integer B) + 3)] = (Point[1] offset by 600.00 towards Real[99] degrees)
          • Unit - Create 1 Peasant for (Owner of (Triggering unit)) at PointOffset[((Integer B) + 3)] facing Default building facing degrees
          • Unit - Add Element Nova (Dummy - Fire) to (Last created unit)
          • Unit - Order (Last created unit) to Human Blood Mage - Flame Strike PointOffset[((Integer B) + 3)]
          • Unit - Add a 13.00 second Generic expiration timer to (Last created unit)
          • -------- STORM --------
          • Set PointOffset[((Integer B) + 6)] = (Point[1] offset by 800.00 towards Real[99] degrees)
          • Set UnitGroup[(Integer B)] = (Units within 300.00 of PointOffset[((Integer B) + 6)] matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True)))
          • Special Effect - Create a special effect at PointOffset[((Integer B) + 6)] using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit Group - Pick every unit in UnitGroup[(Integer B)] and do (Actions)
            • Loop - Actions
              • Unit - Create 1 Peasant for (Owner of (Triggering unit)) at PointOffset[((Integer B) + 6)] facing Default building facing degrees
              • Unit - Add Element Nova (Dummy - Storm) to (Last created unit)
              • Unit - Order (Last created unit) to Orc Far Seer - Chain Lightning (Picked unit)
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • -------- EXTRA --------
          • Set Real[99] = (Real[99] + (360.00 / 8.00))
          • Custom script: call RemoveLocation(udg_PointOffset[bj_forLoopBIndex])
          • Custom script: call RemoveLocation(udg_PointOffset[bj_forLoopBIndex + 3])
          • Custom script: call RemoveLocation(udg_PointOffset[bj_forLoopBIndex + 6])
          • Custom script: call DestroyGroup(udg_UnitGroup[bj_forLoopBIndex])
      • Custom script: call RemoveLocation(udg_Point[1])

trapbm0.png

ARROW TRAP
TARGET POINT
Erects a ward from the ground that detects when a unit goes near it. If a unit does, it trigger the arrow trap that creates arrows around the entering enemy unit which poisons it, dealing 60 damage per second for 10 seconds.
Ward lasts 600 seconds.

Maximum of 8 wards.

Trigger:
  • Arrow Trap Set
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Arrow Trap
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Real[999] Less than 8.00
        • Then - Actions
          • Set Real[999] = (Real[999] + 1.00)
          • Set ArrowTrapTargetPoint = (Target point of ability being cast)
          • Set ArrowTrapCaster = (Casting unit)
          • Unit - Create 1 Archer for (Owner of (Triggering unit)) at ArrowTrapTargetPoint facing Default building facing degrees
          • Unit - Set the custom value of (Last created unit) to (Integer(Real[999]))
          • Set ArrowTrapLoc[(Integer(Real[999]))] = (Position of (Last created unit))
          • Set ArrowTraps[(Integer(Real[999]))] = (Last created unit)
          • Unit - Add a 600.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_ArrowTrapTargetPoint)
        • Else - Actions
          • Set ArrowTrapTargetPoint = ((Target point of ability being cast) offset by 90.00 towards 180.00 degrees)
          • Floating Text - Create floating text that reads 8 wards only ! at ArrowTrapTargetPoint with Z offset 0.00, using font size 8.00, color (100.00%, 100.00%, 0.00%), and 0.00% transparency
          • Floating Text - Change (Last created floating text): Disable permanence
          • Floating Text - Change the lifespan of (Last created floating text) to 3.50 seconds
          • Floating Text - Change the fading age of (Last created floating text) to 0.00 seconds
          • Floating Text - Set the velocity of (Last created floating text) to 90.00 towards 90.00 degrees
          • Custom script: call RemoveLocation(udg_ArrowTrapTargetPoint)


Trigger:
  • Arrow Trap Detect
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • For each (Integer B) from 1 to 8, do (Actions)
        • Loop - Actions
          • Set ArrowTrapGroup[(Integer B)] = (Units within 250.00 of ArrowTrapLoc[(Integer B)] matching ((((Matching unit) belongs to an enemy of (Owner of ArrowTrapCaster)) Equal to True) and (((Matching unit) is alive) Equal to True)))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in ArrowTrapGroup[(Integer B)]) Greater than 0
            • Then - Actions
              • Unit Group - Pick every unit in ArrowTrapGroup[(Integer B)] and do (Actions)
                • Loop - Actions
                  • Unit - Order ArrowTraps[(Integer B)] to Special Archimonde - Finger Of Death (Picked unit)
            • Else - Actions
          • Custom script: call DestroyGroup(udg_ArrowTrapGroup[bj_forLoopBIndex])


Trigger:
  • Arrow Trap Effect
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Arrow Trap (Ward)
    • Actions
      • Set ArrowTrapLoc[(Custom value of (Triggering unit))] = (Position of (Triggering unit))
      • Set Real[1] = 0.00
      • -------- Damage --------
      • Unit - Create 1 Peasant for (Owner of (Triggering unit)) at ArrowTrapLoc[(Custom value of (Triggering unit))] facing Default building facing degrees
      • Unit - Add Arrow Trap (Dummy - Damage) to (Last created unit)
      • Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb (Target unit of ability being cast)
      • Unit - Add a 11.00 second Generic expiration timer to (Last created unit)
      • -------- Arrow Effects --------
      • For each (Integer A) from 1 to 8, do (Actions)
        • Loop - Actions
          • Set Point[(Integer A)] = (Position of (Triggering unit))
          • Set PointOffset[(Integer A)] = (Point[(Integer A)] offset by 350.00 towards Real[1] degrees)
          • Unit - Create 1 Peasant for (Owner of (Triggering unit)) at (Point[(Integer A)] offset by 350.00 towards Real[1] degrees) facing Point[(Integer A)]
          • Unit - Add Arrow Trap (Dummy - Effects) to (Last created unit)
          • Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb (Target unit of ability being cast)
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Set Real[1] = (Real[1] + (360.00 / 8.00))
          • Custom script: call RemoveLocation(udg_Point[bj_forLoopAIndex])
          • Custom script: call RemoveLocation(udg_PointOffset[bj_forLoopAIndex])
      • Custom script: call RemoveLocation(udg_ArrowTrapLoc[GetUnitUserData(GetSpellAbilityUnit())])
      • Set ArrowTraps[(Integer(Real[999]))] = ArrowTraps[(Custom value of (Triggering unit))]
      • Unit - Set the custom value of ArrowTraps[(Integer(Real[999]))] to (Custom value of (Triggering unit))
      • Set ArrowTrapLoc[(Integer(Real[999]))] = ArrowTrapLoc[(Custom value of (Triggering unit))]
      • Set Real[999] = (Real[999] - 1.00)
      • Unit - Kill (Triggering unit)

Arena of Champions: Abilities™ 2008 All Rights Reserve
`TheHated`denmax/denzel94 - FuKiN n0oB Productions
Genesis of the 3 J's Maximus Group © 2008
 

Attachments

  • Random Spell Pack.w3x
    89.9 KB · Views: 289

ronaldo

New Member
Reaction score
0
Really good spells, i like them, but cannot use them in my map cause they not mpi/mui. If you fix that and maybe jass version, they will be perfect to use. Thanks.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top