jnZ
I
- Reaction score
- 64
GUI/JASS? GUI - sry about that ...
Laggless? jup
Leakless? i think so
Code:
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:
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: