Spell Painful Withdrawal

Void

New Member
Reaction score
16
My first decent spell :D
You could also call it "arcane explosion", "oblivion" or "OMGWTFPENTAPLOSION!!!111"

The caster draws upon his mana and unleashes it in a devastating explosion, damaging units to the point of oblivion (500/1000/1500) but also damaging self (100/200/300) slightly.

Pros:
- Eye-candylicious!
- Works
- No leaks


Cons:
- Not MUI
- I don't have screenshot skills





Look at my poor screenshot skills. :(

- Kudos to Tinki3 for helping me understand the Channel ability. :p

UPDATES:
1.1 - Faster cast time, leaks removed
1.2 - Whole triggers reworked, thanks to Daxtreme's suggestion they are now WAY simpler.
 

lh2705

Just another Helper
Reaction score
111
I cant really view the spell cause I don't have editor with me, but from the looks of the screenies, they look nice :p..Good Job :D
 

lh2705

Just another Helper
Reaction score
111
Just a minor comment, maybe you should change the name of the spell.
It kinda seems very inappropriate, if you get what I mean..Its alright if you don't want to..:D
 

Void

New Member
Reaction score
16
Just a minor comment, maybe you should change the name of the spell.
It kinda seems very inappropriate, if you get what I mean..Its alright if you don't want to..:D

I know I'm horrible at making names for stuff. It was originally because you were a blood elf and losing your mana damages you. :p
The gift of naming doesn't exactly come with good terrain :mad:
 

Sim

Forum Administrator
Staff member
Reaction score
534
> Unit Group - Pick every unit in (Units within 500.00 of (Position of pwd_caster)) and do (Actions)

(Position of pwd_caster) leaks.

You have it repeated about 15 times throughout the triggers.

Code:
maintrigger
    Events
        Time - pwd_timer1 expires
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                pwd_int Greater than or equal to 5
            Then - Actions
                Countdown Timer - Pause pwd_timer1
                For each (Integer A) from 1 to 10, do (Actions)
                    Loop - Actions
                        Special Effect - Destroy pwd_sfx[(Integer A)]
                Set pwd_int = 0
            Else - Actions
                Set pwd_int = (pwd_int + 1)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        pwd_int Equal to 1
                    Then - Actions
                        Special Effect - Create a special effect at ((Position of pwd_caster) offset by (0.00, 150.00)) using Doodads\Cinematic\GlowingRunes\GlowingRunes4.mdl
                        Set pwd_sfx[1] = (Last created special effect)
                        Special Effect - Create a special effect at ((Position of pwd_caster) offset by (0.00, 150.00)) using Abilities\Spells\Undead\VampiricAura\VampiricAura.mdl
                        Set pwd_sfx[2] = (Last created special effect)
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                pwd_int Equal to 2
                            Then - Actions
                                Special Effect - Create a special effect at ((Position of pwd_caster) offset by (-150.00, 50.00)) using Doodads\Cinematic\GlowingRunes\GlowingRunes4.mdl
                                Set pwd_sfx[3] = (Last created special effect)
                                Special Effect - Create a special effect at ((Position of pwd_caster) offset by (-150.00, 50.00)) using Abilities\Spells\Undead\VampiricAura\VampiricAura.mdl
                                Set pwd_sfx[4] = (Last created special effect)
                            Else - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        pwd_int Equal to 3
                                    Then - Actions
                                        Special Effect - Create a special effect at ((Position of pwd_caster) offset by (-100.00, -150.00)) using Doodads\Cinematic\GlowingRunes\GlowingRunes4.mdl
                                        Set pwd_sfx[5] = (Last created special effect)
                                        Special Effect - Create a special effect at ((Position of pwd_caster) offset by (-100.00, -150.00)) using Abilities\Spells\Undead\VampiricAura\VampiricAura.mdl
                                        Set pwd_sfx[6] = (Last created special effect)
                                    Else - Actions
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            If - Conditions
                                                pwd_int Equal to 4
                                            Then - Actions
                                                Special Effect - Create a special effect at ((Position of pwd_caster) offset by (100.00, -150.00)) using Doodads\Cinematic\GlowingRunes\GlowingRunes4.mdl
                                                Set pwd_sfx[7] = (Last created special effect)
                                                Special Effect - Create a special effect at ((Position of pwd_caster) offset by (100.00, -150.00)) using Abilities\Spells\Undead\VampiricAura\VampiricAura.mdl
                                                Set pwd_sfx[8] = (Last created special effect)
                                            Else - Actions
                                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    If - Conditions
                                                        pwd_int Equal to 5
                                                    Then - Actions
                                                        Special Effect - Create a special effect at ((Position of pwd_caster) offset by (150.00, 50.00)) using Doodads\Cinematic\GlowingRunes\GlowingRunes4.mdl
                                                        Set pwd_sfx[9] = (Last created special effect)
                                                        Special Effect - Create a special effect at ((Position of pwd_caster) offset by (150.00, 50.00)) using Abilities\Spells\Undead\VampiricAura\VampiricAura.mdl
                                                        Set pwd_sfx[10] = (Last created special effect)
                                                    Else - Actions

Don't make spell triggers like that. Use loops, and don't use an if-then-else statement for every part of your spell. Make it efficient.

-------

As for the spell, how it works:

Instead of making us wait, invulnerable and immobile, just make it explode already. Spawn the 5 circles and make it explode like 1 second after.

The effect could also be better. Detonate is a delayed and too small effect.
 

Void

New Member
Reaction score
16
Well, it was kinda intended as a mega powerful ultimate ability with a long casting time... But I may submit a different version that's shorter.
Please explain how position of pwd_caster leaks? I don't know much about triggers! it seems to work for me :eek:
 

Sim

Forum Administrator
Staff member
Reaction score
534
Read [thread=27219]This[/thread] tutorial.
 

Void

New Member
Reaction score
16
Don't make spell triggers like that. Use loops, and don't use an if-then-else statement for every part of your spell. Make it efficient.

How the hell would I make it then? It only works when the integer is equal to 1 or 5 or whatever and hell yeah I could make a for each integer A statement but then how would I make the offsets different? :confused:
And IMO it's pretty efficient however annoying it may be to read :p
 

Andrewgosu

The Silent Pandaren Helper
Reaction score
716
//Offtopic rant

Why do everyone use imageshack? Jesus, it's THE slowest 'product' of it's kind.
 

Sim

Forum Administrator
Staff member
Reaction score
534
How the hell would I make it then? It only works when the integer is equal to 1 or 5 or whatever and hell yeah I could make a for each integer A statement but then how would I make the offsets different? :confused:
And IMO it's pretty efficient however annoying it may be to read :p

Use formulas instead, and make it happen altogether anyway so you don't need to check 5 times. Do something like that:

Code:
For each (Integer A) from 1 to 5, do (Actions)
    Loop - Actions
        Set point_variable = (base_point_variable offset by 125.00 towards (Real((Integer A) x 72.00) degrees
        Unit - Create 1 circle for Player 12 (Gray) at point_variable facing default building facing degrees
        Custom script:   call RemoveLocation(udg_point_variable)

There, no need for if-then-else statements and no need for about 20 actions :p
 

Void

New Member
Reaction score
16
Use formulas instead, and make it happen altogether anyway so you don't need to check 5 times. Do something like that:

Code:
For each (Integer A) from 1 to 5, do (Actions)
    Loop - Actions
        Set point_variable = (base_point_variable offset by 125.00 towards (Real((Integer A) x 72.00) degrees
        Unit - Create 1 circle for Player 12 (Gray) at point_variable facing default building facing degrees
        Custom script:   call RemoveLocation(udg_point_variable)

There, no need for if-then-else statements and no need for about 20 actions :p

Thanks! ^^
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top