Spell Arcane - Cataclysm

jnZ

I
Reaction score
64
GUI/JASS? GUI - sry about that ...
Laggless? jup
Leakless? i think so



Code:
Sorry for GUI but i never tried jass :(
Code:
Cataclysm
    Events
        Unit - A unit Finishes casting an ability
    Conditions
        (Ability being cast) Equal to Cataclysm 
    Actions
        -------- Set Variables --------
        Set ACataclysmIntegerPlayer = (Player number of (Owner of (Triggering unit)))
        Set ACataclysmUnitCaster[ACataclysmIntegerPlayer] = (Triggering unit)
        Set ACataclysmPointCaster[ACataclysmIntegerPlayer] = (Position of ACataclysmUnitCaster[ACataclysmIntegerPlayer])
        Set ACataclysmGroupEffectedAllied[ACataclysmIntegerPlayer] = (Units within 300.00 of ACataclysmPointCaster[ACataclysmIntegerPlayer] matching (((Owner of (Matching unit)) is an ally of (Owner of ACataclysmUnitCaster[ACataclysmIntegerPlayer])) Equal to True))
        Set ACataclysmGroupEffectedEnemy[ACataclysmIntegerPlayer] = (Units within 300.00 of ACataclysmPointCaster[ACataclysmIntegerPlayer] matching (((Owner of (Matching unit)) is an enemy of (Owner of ACataclysmUnitCaster[ACataclysmIntegerPlayer])) Equal to True))
        -------- Effects --------
        For each (Integer ACataclysmIntegerLoop) from 1 to 10, do (Actions)
            Loop - Actions
                Set ACataclysmPointLoopEffect[ACataclysmIntegerPlayer] = (ACataclysmPointCaster[ACataclysmIntegerPlayer] offset by 300.00 towards ((Real(ACataclysmIntegerLoop)) x (360.00 / 10.00)) degrees)
                Set ACataclysmIntegerEffect[ACataclysmIntegerPlayer] = (ACataclysmIntegerEffect[ACataclysmIntegerPlayer] + 1)
                Special Effect - Create a special effect at ACataclysmPointLoopEffect[ACataclysmIntegerPlayer] using Abilities\Spells\Human\MassTeleport\MassTeleportCaster.mdl
                Set ACataclysmIntegerEffect[(((Player number of (Owner of ACataclysmUnitCaster[ACataclysmIntegerPlayer])) x 100) + ACataclysmIntegerEffect[ACataclysmIntegerPlayer])] = (ACataclysmIntegerEffect[ACataclysmIntegerPlayer] + 1)
                Custom script:   call RemoveLocation(udg_ACataclysmPointLoopEffect[udg_ACataclysmIntegerPlayer])
        For each (Integer ACataclysmIntegerLoop) from 1 to 8, do (Actions)
            Loop - Actions
                Set ACataclysmPointLoopEffect[ACataclysmIntegerPlayer] = (ACataclysmPointCaster[ACataclysmIntegerPlayer] offset by 150.00 towards ((Real(ACataclysmIntegerLoop)) x (360.00 / 8.00)) degrees)
                Set ACataclysmIntegerEffect[ACataclysmIntegerPlayer] = (ACataclysmIntegerEffect[ACataclysmIntegerPlayer] + 1)
                Special Effect - Create a special effect at ACataclysmPointLoopEffect[ACataclysmIntegerPlayer] using Abilities\Spells\Human\MassTeleport\MassTeleportCaster.mdl
                Set ACataclysmIntegerEffect[(((Player number of (Owner of ACataclysmUnitCaster[ACataclysmIntegerPlayer])) x 100) + ACataclysmIntegerEffect[ACataclysmIntegerPlayer])] = (ACataclysmIntegerEffect[ACataclysmIntegerPlayer] + 1)
                Custom script:   call RemoveLocation(udg_ACataclysmPointLoopEffect[udg_ACataclysmIntegerPlayer])
        Set ACataclysmIntegerEffect[ACataclysmIntegerPlayer] = (ACataclysmIntegerEffect[ACataclysmIntegerPlayer] + 1)
        Special Effect - Create a special effect at ACataclysmPointCaster[ACataclysmIntegerPlayer] using Abilities\Spells\Human\MassTeleport\MassTeleportCaster.mdl
        Set ACataclysmIntegerEffect[(((Player number of (Owner of ACataclysmUnitCaster[ACataclysmIntegerPlayer])) x 100) + ACataclysmIntegerEffect[ACataclysmIntegerPlayer])] = (ACataclysmIntegerEffect[ACataclysmIntegerPlayer] + 1)
        -------- Damage --------
        Unit Group - Pick every unit in ACataclysmGroupEffectedEnemy[ACataclysmIntegerPlayer] and do (Unit - Cause ACataclysmUnitCaster[ACataclysmIntegerPlayer] to damage (Picked unit), dealing (100.00 x (Real((Level of Cataclysm  for ACataclysmUnitCaster[ACataclysmIntegerPlayer])))) damage of attack type Spells and damage type Normal)
        -------- Random Spell Enemy --------
        Unit Group - Pick every unit in ACataclysmGroupEffectedEnemy[ACataclysmIntegerPlayer] and do (Actions)
            Loop - Actions
                Set ACataclysmPointTarget[ACataclysmIntegerPlayer] = (Position of (Picked unit))
                Unit - Create 1 Dummy for (Owner of ACataclysmUnitCaster[ACataclysmIntegerPlayer]) at ACataclysmPointTarget[ACataclysmIntegerPlayer] facing Default building facing degrees
                Set ACataclysmUnitDummy[ACataclysmIntegerPlayer] = (Last created unit)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((Picked unit) is Summoned) Equal to True
                    Then - Actions
                        Unit - Cause ACataclysmUnitCaster[ACataclysmIntegerPlayer] to damage (Picked unit), dealing (50.00 x (Real((Level of Cataclysm  for ACataclysmUnitCaster[ACataclysmIntegerPlayer])))) damage of attack type Spells and damage type Normal
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Random integer number between 1 and 2) Equal to 1
                    Then - Actions
                        Unit - Add Slow (Cataclysm) to ACataclysmUnitDummy[ACataclysmIntegerPlayer]
                        Unit - Set level of Slow (Cataclysm) for ACataclysmUnitDummy[ACataclysmIntegerPlayer] to (Level of Cataclysm  for ACataclysmUnitCaster[ACataclysmIntegerPlayer])
                        Unit - Order ACataclysmUnitDummy[ACataclysmIntegerPlayer] to Human Sorceress - Slow (Picked unit)
                    Else - Actions
                        Unit - Add Polymorph (Cataclysm) to ACataclysmUnitDummy[ACataclysmIntegerPlayer]
                        Unit - Set level of Polymorph (Cataclysm) for ACataclysmUnitDummy[ACataclysmIntegerPlayer] to (Level of Cataclysm  for ACataclysmUnitCaster[ACataclysmIntegerPlayer])
                        Unit - Order ACataclysmUnitDummy[ACataclysmIntegerPlayer] to Human Sorceress - Polymorph (Picked unit)
                Unit - Add a 1.00 second Generic expiration timer to ACataclysmUnitDummy[ACataclysmIntegerPlayer]
                Set ACataclysmUnitDummy[ACataclysmIntegerPlayer] = No unit
                Custom script:   call RemoveLocation(udg_ACataclysmPointTarget[udg_ACataclysmIntegerPlayer])
        -------- Random Spell Allied --------
        Unit Group - Pick every unit in ACataclysmGroupEffectedAllied[ACataclysmIntegerPlayer] and do (Actions)
            Loop - Actions
                Set ACataclysmPointTarget[ACataclysmIntegerPlayer] = (Position of (Picked unit))
                Unit - Create 1 Dummy for (Owner of ACataclysmUnitCaster[ACataclysmIntegerPlayer]) at ACataclysmPointTarget[ACataclysmIntegerPlayer] facing Default building facing degrees
                Set ACataclysmUnitDummy[ACataclysmIntegerPlayer] = (Last created unit)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((Picked unit) is Summoned) Equal to True
                    Then - Actions
                        Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (50.00 x (Real((Level of Cataclysm  for ACataclysmUnitCaster[ACataclysmIntegerPlayer])))))
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Random integer number between 1 and 2) Equal to 1
                    Then - Actions
                        Unit - Add Inner Fire (Cataclysm) to ACataclysmUnitDummy[ACataclysmIntegerPlayer]
                        Unit - Set level of Inner Fire (Cataclysm) for ACataclysmUnitDummy[ACataclysmIntegerPlayer] to (Level of Cataclysm  for ACataclysmUnitCaster[ACataclysmIntegerPlayer])
                        Unit - Order ACataclysmUnitDummy[ACataclysmIntegerPlayer] to Human Priest - Inner Fire (Picked unit)
                    Else - Actions
                        Unit - Add Invisibility (Cataclysm) to ACataclysmUnitDummy[ACataclysmIntegerPlayer]
                        Unit - Set level of Invisibility (Cataclysm) for ACataclysmUnitDummy[ACataclysmIntegerPlayer] to (Level of Cataclysm  for ACataclysmUnitCaster[ACataclysmIntegerPlayer])
                        Unit - Order ACataclysmUnitDummy[ACataclysmIntegerPlayer] to Human Sorceress - Invisibility (Picked unit)
                Unit - Add a 1.00 second Generic expiration timer to ACataclysmUnitDummy[ACataclysmIntegerPlayer]
                Set ACataclysmUnitDummy[ACataclysmIntegerPlayer] = No unit
                Custom script:   call RemoveLocation(udg_ACataclysmPointTarget[udg_ACataclysmIntegerPlayer])
        -------- Reset Variables --------
        Custom script:   call RemoveLocation(udg_ACataclysmPointCaster[udg_ACataclysmIntegerPlayer])
        Unit Group - Remove all units from ACataclysmGroupEffectedEnemy[ACataclysmIntegerPlayer]
        Unit Group - Remove all units from ACataclysmGroupEffectedAllied[ACataclysmIntegerPlayer]
        Set ACataclysmIntegerEffect[ACataclysmIntegerPlayer] = 0
        Set ACataclysmUnitCaster[ACataclysmIntegerPlayer] = No unit
        Set ACataclysmIntegerPlayer = 0
        For each (Integer ACataclysmIntegerLoop) from 1 to ACataclysmIntegerEffect[(((Player number of (Owner of ACataclysmUnitCaster[ACataclysmIntegerPlayer])) x 100) + ACataclysmIntegerEffect[ACataclysmIntegerPlayer])], do (Actions)
            Loop - Actions
                Special Effect - Destroy ACataclysmEffect[(((Player number of (Owner of ACataclysmUnitCaster[ACataclysmIntegerPlayer])) x 100) + ACataclysmIntegerEffect[ACataclysmIntegerPlayer])]

Tooltip:

Releases an enormous amount of arcane magic; all enemies within 300 AoE are randomly effected by an negative arcane spell and suffer great damage, all allied unit within AoE gain a positive effect. Deals additional damage to enemy-summons and heals friendly summons.

Level 1 - Damage: 100 ; Duration 3 Seconds ; Summon Heal/Damage: 50
Level 2 - Damage: 200 ; Duration 4 Seconds ; Summon Heal/Damage: 100
Level 3 - Damage: 300 ; Duration 5 Seconds ; Summon Heal/Damage: 150

Random Enemy Spells: Polymorph; Slow
Random Allied Spells: Inner Fire; Invisibility


i hope you guys like my first spell ;) i just was bored and thought i should make a spell :>

The best/only screenie i was able to take:
cataclysmspell2dx3.jpg
 

Attachments

  • CataclysmSpell.w3x
    25.9 KB · Views: 220

BRUTAL

I'm working
Reaction score
118
not bad for a first spell
i liked the build up before it releases
a few things; post some screenshots, and you could have edited your first post and added the map in, instead of making a new post
 

jnZ

I
Reaction score
64
sry about that but i remembered a post where someone said that that you cant edit a post in order to attach a map, but i tried it and it seems to work
 

Andrewgosu

The Silent Pandaren Helper
Reaction score
716
Fixed the title of this thread and attached the spell to the first post.


Feedback people!
 

jnZ

I
Reaction score
64
Fixed the title of this thread and attached the spell to the first post.


Feedback people!

thanks for your time to fix my foolishnes ;) I think i cant expect to much feedback because the spell is 1. pretty simple and 2. in GUI
 

Carl-Fredrik

New Member
Reaction score
51
Seems like you think that spells in GUI are bad? :p

Well, I don't think so, 'cause I'm not good at using JASS ^^
It looks cool on screenshot and the description doesn't sound imba, I like the idea... I will try the spell before I vote it though. ;)

Edit: Ok, I tested it and now... well... how can I say it? :( It's not the same thing..
I'm just kidding, I really like it, + rep! :)
 

Trollvottel

never aging title
Reaction score
262
i wonder about one thing:

you do

Code:
For each (Integer ACataclysmIntegerLoop) from 1 to 10, do (Actions)

and in the loop you use:


[ACataclysmIntegerPlayer]

wouldnt that leak/make it un-MPI?
 

jnZ

I
Reaction score
64
the Integer ACataclysmIntegerPlayer is only set due to efficientness, so the PC dont have to get the playernumber owner of triggering unit every time

EDIT: just tested it to be shure (added archmage for player 2; added trigger that lets both cast cataclysm at the same time, everything works perfect)

But i think to cast invisibility @ allied units is a bit out of place because they will stop attacking
 

T.s.e

Wish I was old and a little sentimental
Reaction score
133
> But i think to cast invisibility @ allied units is a bit out of place because they will stop attacking
Yeah, that bothered me as well. Try bloodlust or something?
 

jnZ

I
Reaction score
64
> But i think to cast invisibility @ allied units is a bit out of place because they will stop attacking
Yeah, that bothered me as well. Try bloodlust or something?

at least its an arcane spell and shaman-bloodlust isnt really arcane dont you think? i thought about spell steal or somethin. seems that there arent much arcane spells
 

waaaks!

Zinctified
Reaction score
255
GUI - sry about that ...
its not a big deal you know, its better when its GUI, so that many people will download the spell and will understand the spell
10 downloads 3 feedbacks :> i better give up on making spells ^^
thats why i gave up, lol
 
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