Spellpack Daedalus Spellpack

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:
  • 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:

freezingwaves.jpg

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
      • 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)
      • 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
      • 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])


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)
              • Set FWTimer[FWTempInt] = (FWTimer[FWTempInt] - 1.00)


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)]
      • Custom script: call RemoveLocation(udg_TempPoint)


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))


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))))


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)
      • 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)


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)


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:
crushingwaves.jpg

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
      • 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)
      • 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])


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
              • Unit - Remove (Picked unit) from the game
              • Custom script: call RemoveLocation (udg_CWCasterLoc[udg_CWTempInt])
            • 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
                  • Custom script: call RemoveLocation (udg_CWDummyLoc[udg_CWTempInt])
                  • Custom script: call RemoveLocation (udg_CWDummyOffset[udg_CWTempInt])

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:
tidalwave.jpg

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
      • 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)
      • 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])


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
              • 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])
            • 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
                      • Unit - Move (Picked unit) instantly to TWDummyOffset[TWTempInt]
                  • Custom script: call RemoveLocation (udg_TWDummyLoc[udg_TWTempInt])
                  • Custom script: call RemoveLocation (udg_TWDummyOffset[udg_TWTempInt])
              • Set TWTimer[TWTempInt] = (TWTimer[TWTempInt] - 10)


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.
 

Attachments

  • Daedalus Spellpack v1.3.w3x
    40.5 KB · Views: 320

DarkSonicele

New Member
Reaction score
20
AFAIK the passive doesn't leak, for it's a set group that he keeps re-using and not a new one every time.

And another thing, here's lots of useless code that there didn't need to be. Crushing Wave in particular.
 

GooS

Azrael
Reaction score
154
Where does the Arcane Strength add Spell Damage.

Other than that Oh My Lord And Savior Jesus tha Fucking Christ Cushing Waves GUI trigger.
Can say that there won't be that many here that will take the time to read through that one.

The abilities look fairly good but Arcane Strength is way to simple to ever be approved as a spell.
 

RaiJin

New Member
Reaction score
40
you need to learn how to utilize 2D arrays

when u learn 2D arrays Loop through everything instead of making blocks and blocks of code(talking about crushing wave)
 

Ayanami

칼리
Reaction score
288
AFAIK the passive doesn't leak, for it's a set group that he keeps re-using and not a new one every time.

And another thing, here's lots of useless code that there didn't need to be. Crushing Wave in particular.

Care to explain the useless sections?

Where does the Arcane Strength add Spell Damage.

All my 3 active spells deals damage by triggers. The Arcane Strength adds the damage during the damage trigger
 

Ayanami

칼리
Reaction score
288
Re-wrote my Crushing Waves and Tidal Waves trigger to make it significantly shorter, with the use of 2D-Arrays.
 

BlackRose

Forum User
Reaction score
239
Checking + Testing now, and GooS, I've seen longer GUI spells, by Dirac.

First skill - Not that interesting. Meh.
Second skill - Unsure, didn't really notice it.
Third skill - Kinda slow, it doesn't affect nearby enemy units?
Ultimate - I <3 it! The best idea for a tsunami! Though it will be laggy when spammed of course!

Also, add in 2 heroes to test spells.
 

Ayanami

칼리
Reaction score
288
and GooS, I've seen longer GUI spells, by Dirac

GooS said that before I re-wrote my triggers. Crushing Waves was actually around 12 times longer before I used 2D-Arrays. =)

Third skill - Kinda slow, it doesn't affect nearby enemy units

It indeed doesn't. The skill is meant to disable enemies from escaping the area so that your teammates can pwn them =)

Also, add in 2 heroes to test spells.

Hmm, is there a purpose in doing this? Just asking.
 

GooS

Azrael
Reaction score
154
12 times longer before I used 2D-Arrays. =)

Great that you made them use 2D arrays! ^^
I think he want's two heroes to do stress test by two heroes casting at the same time, checking for problems with MUI and/or lag.

//==GooS
 

Ayanami

칼리
Reaction score
288
Great that you made them use 2D arrays! ^^
I think he want's two heroes to do stress test by two heroes casting at the same time, checking for problems with MUI and/or lag.

//==GooS

Ah, i see. Hmm well I'll see to it that I add 1 more hero.
 

RangerX

I am justice!
Reaction score
69
NIce spell pack :) .. lov the last one :) ... [offtopic] you have the same lenght to triggers like mine :)) ... endless trigger
 

Avaleirra

Is back. Probably.
Reaction score
128
Looks great! +rep :)


Would you want credit if I used this?



EDIT: nvm, gotta spread :p
 

Darthfett

Aerospace/Cybersecurity Software Engineer
Reaction score
615
Freezing wave leaks, this is not set or removed:
Code:
(FWCasterLoc[FWCustomValue] offset by 90.00 towards FWReal[FWCustomValue] degrees)

Crushing wave also leaks, this is only removed once out of the 12 times it is created:

Trigger:
  • Set CWDummyOffset[CWCustomValue] = (CWCasterLoc[CWCustomValue] offset by 800.00 towards CWAngle[CWCustomValue] degrees)

To fix it, move the RemoveLocation custom script calls to the end of (but still inside) the loop.

Trigger:
  • Player - Disable Spell Immunity for (Owner of (Triggering unit))

Why is the above used? Is Spell Immunity a spellbook?

I only took a quick look, but those were the leaks I found.
 

Ayanami

칼리
Reaction score
288
Why is the above used? Is Spell Immunity a spellbook?

I only took a quick look, but those were the leaks I found.

Fixed the leaks. Yeah, the spell immunity is a spellbook.
 

Moridin

Snow Leopard
Reaction score
144
Quick question....I noticed a bit of "2D array" in earlier posts....How do you use 2D arrays in the editor? I can only see 1D arrays in your code :S.

2D arrays would make things a hell of a lot easier.
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
It's still a 1D array, just using some multiplier to create a second "index"...

For example, a 10x10 array would actually be a 100-length array where values are retrieved at index [A+10*B]...

1.24's hashtables can also be used as a 2D array.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top