Ayanami
칼리
- Reaction score
- 288
Introduction
Hi, this is my first skill pack that I've created. I have no knowledge of JASS so obviously it's GUI.
The spells:
Details
- The spells are GUI like I stated above.
- They are leakless (hope so) and lagless (at least for me).
- It is MUI, meaning can be casted many times at the same instance.
- Easy to import. May be hard to edit for those who are new to triggering.
- A all-round watery theme skills consisting of 3 active skills and 1 passive.
Spells
Freezing Waves
Description:
Releases 12 freezing waves around the caster which causes the enemies to be vulnerable to freeze. In this state, if any enemy is attacked by the caster, it will be frozen for 4 seconds. While frozen, enemies cannot attack or move and they receive 15 damage per second. Each enemy can be frozen once. Vulnerable state lasts 10 seconds.
Level 1 - Deals 50 damage per wave.
Level 2 - Deals 75 damage per wave.
Level 3 - Deals 100 damage per wave.
Cooldown - 20/19/18 seconds
Screenshot:
Code:
Arcane Strength
Description:
Increases mana regneration rate and spell damage dependent on strength.
Level 1 - Each strength increases mana regeneration rate by 0.06 per second and spell damage by 0.5.
Level 2 - Each strength increases mana regeneration rate by 0.08 per second and spell damage by 0.75.
Level 3 - Each strength increases mana regeneration rate by 0.1 per second and spell damage by 1. Every 10 seconds, Shazalar gains Spell Immunity for 3 seconds.
Cooldown - Passive
Screenshot:
Code:
Crushing Waves
Description:
Conjures 12 waves which pushes enemies towards the caster, dealing damage per second. AoE of 800.
Level 1 - Each wave deals 10 damage per second. Channels for 3 seconds.
Level 2 - Each wave deals 20 damage per second. Channels for 4 seconds.
Level 3 - Each wave deals 30 damage per second. Channels for 5 seconds.
Cooldown - Cooldown: 25/23/21 seconds
Channeling
Screenshot:
Code:
Tidal Wave
Description:
Calls upon a massive tidal wave that eradicates everything in its path. The tidal wave travels along a straight path for 1000 distance over 5 seconds. Any enemy unit caught in the wave receives damage per second and they are sucked into the wave. While the tidal wave is summoned, the caster gains maximum movement speed until the waves vanishes. Damage type is pure.
Level 1 - Wave deals 120 damage per second.
Cooldown - Cooldown: 53 seconds
Screenshot:
Code:
Changelogs
Any comments, flame or any kind of encouragement will be appreciated. As I said, this is my first spellpack that I've ever posted online. Thanks.
Hi, this is my first skill pack that I've created. I have no knowledge of JASS so obviously it's GUI.
The spells:
- Freezing Waves [Active]
- Arcane Strength [Passive]
- Crushing Waves [Active]
- Tidal Wave [Active]
Details
- The spells are GUI like I stated above.
- They are leakless (hope so) and lagless (at least for me).
- It is MUI, meaning can be casted many times at the same instance.
- Easy to import. May be hard to edit for those who are new to triggering.
- A all-round watery theme skills consisting of 3 active skills and 1 passive.
Spells
Freezing Waves
Description:
Releases 12 freezing waves around the caster which causes the enemies to be vulnerable to freeze. In this state, if any enemy is attacked by the caster, it will be frozen for 4 seconds. While frozen, enemies cannot attack or move and they receive 15 damage per second. Each enemy can be frozen once. Vulnerable state lasts 10 seconds.
Level 1 - Deals 50 damage per wave.
Level 2 - Deals 75 damage per wave.
Level 3 - Deals 100 damage per wave.
Cooldown - 20/19/18 seconds
Screenshot:
Code:
Trigger:
- Freezing Wave
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to Freezing Wave
- Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- FWCustomValue Less than 10
- Then - Actions
- Set FWCustomValue = (FWCustomValue + 1)
- Else - Actions
- Set FWCustomValue = 1
- If - Conditions
- Set FWCaster[FWCustomValue] = (Triggering unit)
- Set FWCasterLoc[FWCustomValue] = (Position of FWCaster[FWCustomValue])
- Set FWGroup[FWCustomValue] = (Units within 800.00 of FWCasterLoc[FWCustomValue] matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of FWCaster[FWCustomValue])) Equal to True) and ((((Matching unit) is A structure) Equal to False) and
- Set FWTimer[FWCustomValue] = 10.00
- Set FWReal[FWCustomValue] = ((Facing of FWCaster[FWCustomValue]) - 24.00)
- Unit Group - Add all units of FWGroup[FWCustomValue] to FWFreezeGroup
- For each (Integer A) from 1 to 12, do (Actions)
- Loop - Actions
- Unit - Create 1 Hidden Dummy for (Owner of FWCaster[FWCustomValue]) at FWCasterLoc[FWCustomValue] facing FWCasterLoc[FWCustomValue]
- Unit - Set level of Freezing Wave (Damage) for (Last created unit) to (Level of Freezing Wave for FWCaster[FWCustomValue])
- Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
- Unit - Order (Last created unit) to Undead Dreadlord - Carrion Swarm (FWCasterLoc[FWCustomValue] offset by 90.00 towards FWReal[FWCustomValue] degrees)
- Set FWReal[FWCustomValue] = (FWReal[FWCustomValue] + 30.00)
- Loop - Actions
- Unit Group - Pick every unit in FWGroup[FWCustomValue] and do (Actions)
- Loop - Actions
- Unit - Cause FWCaster[FWCustomValue] to damage (Picked unit), dealing ((0.25 + (0.25 x (Real((Level of Arcane Strength for FWCaster[FWCustomValue]))))) x (Real((Strength of FWCaster[FWCustomValue] (Include bonuses))))) damage of attack type Spells and damage type Normal
- Loop - Actions
- Set TempPoint = (Center of (Playable map area))
- Unit - Create 1 Hidden Dummy for (Owner of FWCaster[FWCustomValue]) at TempPoint facing Default building facing degrees
- Unit - Set the custom value of (Last created unit) to FWCustomValue
- Unit Group - Add (Last created unit) to FWDummyGroup
- Custom script: call RemoveLocation(udg_TempPoint)
- Custom script: call RemoveLocation(udg_FWCasterLoc[udg_FWCustomValue])
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events
Trigger:
- Freezing Wave Periodic
- Events
- Time - Every 1.00 seconds of game time
- Conditions
- (FWDummyGroup is empty) Equal to False
- Actions
- Unit Group - Pick every unit in FWDummyGroup and do (Actions)
- Loop - Actions
- Set FWTempInt = (Custom value of (Picked unit))
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- FWTimer[FWTempInt] Less than or equal to 0.00
- Then - Actions
- Unit Group - Remove all units of FWGroup[FWTempInt] from FWFreezeGroup
- Unit Group - Remove all units from FWGroup[FWTempInt]
- Unit - Remove (Picked unit) from the game
- Custom script: call DestroyGroup(udg_FWGroup[udg_FWTempInt])
- Else - Actions
- Unit Group - Pick every unit in FWGroup[FWTempInt] and do (Actions)
- Loop - Actions
- Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Other\CrushingWave\CrushingWaveDamage.mdl
- Special Effect - Destroy (Last created special effect)
- Loop - Actions
- Set FWTimer[FWTempInt] = (FWTimer[FWTempInt] - 1.00)
- Unit Group - Pick every unit in FWGroup[FWTempInt] and do (Actions)
- If - Conditions
- Loop - Actions
- Unit Group - Pick every unit in FWDummyGroup and do (Actions)
- Events
Trigger:
- Freezing Wave Freeze
- Events
- Unit - A unit Is attacked
- Conditions
- ((Triggering unit) is in FWFreezeGroup) Equal to True
- Actions
- Set TempPoint = (Center of (Playable map area))
- Unit - Create 1 Hidden Dummy for (Owner of (Attacking unit)) at TempPoint facing Default building facing degrees
- Unit - Add a 4.50 second Generic expiration timer to (Last created unit)
- Unit - Order (Last created unit) to Night Elf Keeper Of The Grove - Entangling Roots (Triggering unit)
- Unit Group - Remove (Triggering unit) from FWFreezeGroup
- For each (Integer A) from 1 to 10, do (Actions)
- Loop - Actions
- Unit Group - Remove (Triggering unit) from FWGroup[(Integer A)]
- Loop - Actions
- Custom script: call RemoveLocation(udg_TempPoint)
- Events
Arcane Strength
Description:
Increases mana regneration rate and spell damage dependent on strength.
Level 1 - Each strength increases mana regeneration rate by 0.06 per second and spell damage by 0.5.
Level 2 - Each strength increases mana regeneration rate by 0.08 per second and spell damage by 0.75.
Level 3 - Each strength increases mana regeneration rate by 0.1 per second and spell damage by 1. Every 10 seconds, Shazalar gains Spell Immunity for 3 seconds.
Cooldown - Passive
Screenshot:
Errr, passive skill with no buff animation? Therefore no screenshot.
Code:
Trigger:
- Arcane Strength Init
- Events
- Unit - A unit Learns a skill
- Conditions
- (Learned Hero Skill) Equal to Arcane Strength
- Actions
- Unit Group - Add (Triggering unit) to ASGroup
- Player - Disable Spell Immunity for (Owner of (Triggering unit))
- Events
Trigger:
- Arcane Strength
- Events
- Time - Every 1.00 seconds of game time
- Conditions
- (ASGroup is empty) Equal to False
- Actions
- Unit Group - Pick every unit in ASGroup and do (Actions)
- Loop - Actions
- Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) + ((Real((Strength of (Picked unit) (Include bonuses)))) x (0.04 + ((Real((Level of Arcane Strength for (Picked unit)))) x 0.02))))
- Loop - Actions
- Unit Group - Pick every unit in ASGroup and do (Actions)
- Events
Trigger:
- Arcane Strength Immunity
- Events
- Time - Every 10.00 seconds of game time
- Conditions
- (ASGroup is empty) Equal to False
- Actions
- Unit Group - Pick every unit in ASGroup and do (Actions)
- Loop - Actions
- Unit - Add Spell Immunity to (Picked unit)
- Loop - Actions
- Set TempPoint = (Center of (Playable map area))
- Unit - Create 1 Arcane Strength Dummy for Neutral Passive at TempPoint facing Default building facing degrees
- Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
- Custom script: call RemoveLocation(udg_TempPoint)
- Unit Group - Pick every unit in ASGroup and do (Actions)
- Events
Trigger:
- Arcane Strength Immunity Expire
- Events
- Unit - A unit Dies
- Conditions
- (Unit-type of (Triggering unit)) Equal to Arcane Strength Dummy
- Actions
- Unit Group - Pick every unit in ASGroup and do (Actions)
- Loop - Actions
- Unit - Remove Spell Immunity from (Picked unit)
- Loop - Actions
- Unit Group - Pick every unit in ASGroup and do (Actions)
- Events
Crushing Waves
Description:
Conjures 12 waves which pushes enemies towards the caster, dealing damage per second. AoE of 800.
Level 1 - Each wave deals 10 damage per second. Channels for 3 seconds.
Level 2 - Each wave deals 20 damage per second. Channels for 4 seconds.
Level 3 - Each wave deals 30 damage per second. Channels for 5 seconds.
Cooldown - Cooldown: 25/23/21 seconds
Channeling
Screenshot:
Code:
Trigger:
- Crushing Waves
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to Crushing Waves
- Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- CWCustomValue Less than 10
- Then - Actions
- Set CWCustomValue = (CWCustomValue + 1)
- Else - Actions
- Set CWCustomValue = 1
- If - Conditions
- Set CWCaster[CWCustomValue] = (Triggering unit)
- Set CWCasterLoc[CWCustomValue] = (Position of CWCaster[CWCustomValue])
- Set CWAngle[CWCustomValue] = 0.00
- For each (Integer A) from 1 to 12, do (Actions)
- Loop - Actions
- Set CWDummyOffset[CWCustomValue] = (CWCasterLoc[CWCustomValue] offset by 800.00 towards CWAngle[CWCustomValue] degrees)
- Unit - Create 1 Hidden Dummy for (Owner of CWCaster[CWCustomValue]) at CWDummyOffset[CWCustomValue] facing CWCasterLoc[CWCustomValue]
- Set CWDummy[((CWCustomValue x 13) + (Integer A))] = (Last created unit)
- Set CWAngle[CWCustomValue] = (CWAngle[CWCustomValue] + 30.00)
- Loop - Actions
- Set TempPoint = (Center of (Playable map area))
- Unit - Create 1 Hidden Dummy for (Owner of CWCaster[CWCustomValue]) at TempPoint facing Default building facing degrees
- Unit - Set the custom value of (Last created unit) to CWCustomValue
- Unit Group - Add (Last created unit) to CWDummyGroup
- Custom script: call RemoveLocation(udg_TempPoint)
- Custom script: call RemoveLocation(udg_CWDummyOffset[udg_CWCustomValue])
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events
Trigger:
- Crushing Waves Periodic
- Events
- Time - Every 0.20 seconds of game time
- Conditions
- (CWDummyGroup is empty) Equal to False
- Actions
- Unit Group - Pick every unit in CWDummyGroup and do (Actions)
- Loop - Actions
- Set CWTempInt = (Custom value of (Picked unit))
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Current order of CWCaster[CWTempInt]) Not equal to (Order(charm))
- Then - Actions
- For each (Integer A) from 1 to 12, do (Actions)
- Loop - Actions
- Unit - Remove CWDummy[((CWTempInt x 13) + (Integer A))] from the game
- Loop - Actions
- Unit - Remove (Picked unit) from the game
- Custom script: call RemoveLocation (udg_CWCasterLoc[udg_CWTempInt])
- For each (Integer A) from 1 to 12, do (Actions)
- Else - Actions
- For each (Integer A) from 1 to 12, do (Actions)
- Loop - Actions
- Set CWDummyLoc[CWTempInt] = (Position of CWDummy[((CWTempInt x 13) + (Integer A))])
- Set CWDummyOffset[CWTempInt] = (CWDummyLoc[CWTempInt] offset by 20.00 towards (Facing of CWDummy[((CWTempInt x 13) + (Integer A))]) degrees)
- Unit - Move CWDummy[((CWTempInt x 13) + (Integer A))] instantly to CWDummyOffset[CWTempInt]
- Special Effect - Create a special effect at CWDummyOffset[CWTempInt] using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
- Special Effect - Destroy (Last created special effect)
- Custom script: set bj_wantDestroyGroup = true
- Unit Group - Pick every unit in (Units within 150.00 of CWDummyLoc[CWTempInt] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of CWCaster[CWTempInt])) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Match and do (Actions)
- Loop - Actions
- Unit - Move (Picked unit) instantly to CWDummyOffset[CWTempInt]
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Level of Arcane Strength for CWCaster[CWTempInt]) Greater than 0
- Then - Actions
- Unit - Cause CWDummy[((CWTempInt x 13) + (Integer A))] to damage (Picked unit), dealing ((2.00 x (Real((Level of Crushing Waves for CWCaster[CWTempInt])))) + ((0.25 + (0.25 x (Real((Level of Arcane Strength for CWCaster[CWTempInt]))))) x ((Real((Strength of CWCaster[CWTempInt] (Include bonuses)))) x 0.20))) damage of attack type Spells and damage type Normal
- Else - Actions
- Unit - Cause CWDummy[((CWTempInt x 13) + (Integer A))] to damage (Picked unit), dealing (2.00 x (Real((Level of Crushing Waves for CWCaster[CWTempInt])))) damage of attack type Spells and damage type Normal
- If - Conditions
- Loop - Actions
- Custom script: call RemoveLocation (udg_CWDummyLoc[udg_CWTempInt])
- Custom script: call RemoveLocation (udg_CWDummyOffset[udg_CWTempInt])
- Loop - Actions
- For each (Integer A) from 1 to 12, do (Actions)
- If - Conditions
- Loop - Actions
- Unit Group - Pick every unit in CWDummyGroup and do (Actions)
- Events
Tidal Wave
Description:
Calls upon a massive tidal wave that eradicates everything in its path. The tidal wave travels along a straight path for 1000 distance over 5 seconds. Any enemy unit caught in the wave receives damage per second and they are sucked into the wave. While the tidal wave is summoned, the caster gains maximum movement speed until the waves vanishes. Damage type is pure.
Level 1 - Wave deals 120 damage per second.
Cooldown - Cooldown: 53 seconds
Screenshot:
Code:
Trigger:
- Tidal Wave
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to Tidal Wave
- Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TWCustomValue Less than 10
- Then - Actions
- Set TWCustomValue = (TWCustomValue + 1)
- Else - Actions
- Set TWCustomValue = 1
- If - Conditions
- Set TWCaster[TWCustomValue] = (Triggering unit)
- Set TWCasterLoc[TWCustomValue] = (Position of TWCaster[TWCustomValue])
- Set TWTargetedLoc[TWCustomValue] = (Target point of ability being cast)
- Set TWReferenceLoc[TWCustomValue] = (TWCasterLoc[TWCustomValue] offset by 100.00 towards (Angle from TWCasterLoc[TWCustomValue] to TWTargetedLoc[TWCustomValue]) degrees)
- Set TWTimer[TWCustomValue] = 500
- Set TWDistance[TWCustomValue] = 400.00
- Unit - Set TWCaster[TWCustomValue] movement speed to 522.00
- For each (Integer A) from 1 to 5, do (Actions)
- Loop - Actions
- Set TWDummyOffset[TWCustomValue] = (TWReferenceLoc[TWCustomValue] offset by TWDistance[TWCustomValue] towards ((Angle from TWCasterLoc[TWCustomValue] to TWTargetedLoc[TWCustomValue]) - 90.00) degrees)
- Set TWFacingPoint[TWCustomValue] = (TWDummyOffset[TWCustomValue] offset by 100.00 towards (Facing of TWCaster[TWCustomValue]) degrees)
- Unit - Create 1 Hidden Dummy for (Owner of TWCaster[TWCustomValue]) at TWDummyOffset[TWCustomValue] facing TWFacingPoint[TWCustomValue]
- Set TWDummy[((TWCustomValue x 6) + (Integer A))] = (Last created unit)
- Set TWDistance[TWCustomValue] = (TWDistance[TWCustomValue] - 200.00)
- Loop - Actions
- Set TempPoint = (Center of (Playable map area))
- Unit - Create 1 Hidden Dummy for (Owner of TWCaster[TWCustomValue]) at TempPoint facing Default building facing degrees
- Unit - Set the custom value of (Last created unit) to TWCustomValue
- Unit Group - Add (Last created unit) to TWDummyGroup
- Custom script: call RemoveLocation (udg_TempPoint)
- Custom script: call RemoveLocation (udg_TWDummyOffset[udg_TWCustomValue])
- Custom script: call RemoveLocation (udg_TWFacingPoint[udg_TWCustomValue])
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events
Trigger:
- Tidal Wave Periodic
- Events
- Time - Every 0.10 seconds of game time
- Conditions
- (TWDummyGroup is empty) Equal to False
- Actions
- Unit Group - Pick every unit in TWDummyGroup and do (Actions)
- Loop - Actions
- Set TWTempInt = (Custom value of (Picked unit))
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TWTimer[TWTempInt] Less than or equal to 0
- Then - Actions
- For each (Integer A) from 1 to 5, do (Actions)
- Loop - Actions
- Unit - Remove TWDummy[((TWTempInt x 6) + (Integer A))] from the game
- Loop - Actions
- Unit - Set TWCaster[TWCustomValue] movement speed to (Default movement speed of TWCaster[TWTempInt])
- Unit - Remove (Picked unit) from the game
- Custom script: call RemoveLocation (udg_TWCasterLoc[udg_TWTempInt])
- Custom script: call RemoveLocation (udg_TWTargetedLoc[udg_TWTempInt])
- For each (Integer A) from 1 to 5, do (Actions)
- Else - Actions
- For each (Integer A) from 1 to 5, do (Actions)
- Loop - Actions
- Set TWDummyLoc[TWTempInt] = (Position of TWDummy[((TWTempInt x 6) + (Integer A))])
- Set TWDummyOffset[TWTempInt] = (TWDummyLoc[TWTempInt] offset by 20.00 towards (Facing of TWDummy[((TWTempInt x 6) + (Integer A))]) degrees)
- Unit - Move TWDummy[((TWTempInt x 6) + (Integer A))] instantly to TWDummyOffset[TWTempInt]
- Special Effect - Create a special effect at TWDummyOffset[TWTempInt] using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
- Special Effect - Destroy (Last created special effect)
- Custom script: set bj_wantDestroyGroup = true
- Unit Group - Pick every unit in (Units within 150.00 of TWDummyLoc[TWTempInt] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of TWCaster[TWTempInt])) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Match and do (Actions)
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Level of Arcane Strength for CWCaster[CWTempInt]) Greater than 0
- Then - Actions
- Unit - Cause TWDummy[((TWTempInt x 6) + (Integer A))] to damage (Picked unit), dealing (12.00 + ((0.25 + (0.25 x (Real((Level of Arcane Strength for TWCaster[TWTempInt]))))) x ((Real((Strength of CWCaster[CWTempInt] (Include bonuses)))) x 0.10))) damage of attack type Chaos and damage type Universal
- Else - Actions
- Unit - Cause TWDummy[((TWTempInt x 6) + (Integer A))] to damage (Picked unit), dealing 12.00 damage of attack type Chaos and damage type Universal
- If - Conditions
- Unit - Move (Picked unit) instantly to TWDummyOffset[TWTempInt]
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Loop - Actions
- Custom script: call RemoveLocation (udg_TWDummyLoc[udg_TWTempInt])
- Custom script: call RemoveLocation (udg_TWDummyOffset[udg_TWTempInt])
- Loop - Actions
- Set TWTimer[TWTempInt] = (TWTimer[TWTempInt] - 10)
- For each (Integer A) from 1 to 5, do (Actions)
- If - Conditions
- Loop - Actions
- Unit Group - Pick every unit in TWDummyGroup and do (Actions)
- Events
Changelogs
Code:
Version 1.0
- Initial relase
Version 1.1
- Re-organized long triggers to short ones with the use of 2D-Arrays
Version 1.2
- Arcane Strength now gives periodic spell immunity at level 3
- Added 1 more Daedalus Serpent in the map for testing purposes
- Edited spell import information. Made importing easier
- Added changelogs in the game (F9)
Version 1.3
- Fixed leaks in Freezing Wave and Crushing Waves
Any comments, flame or any kind of encouragement will be appreciated. As I said, this is my first spellpack that I've ever posted online. Thanks.