1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  5. Dismiss Notice
  6. The Highway to Hell has been laid open. Come along and participate in the 5th Special Effect Contest.
    Dismiss Notice
  7. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Chaosphere v2.4

Submitted by TheSpoon
This bundle is marked as approved. It works and satisfies the submission rules.
Chaosphere v2.4

Description: Creates a circle of chaos arond the Hexmaster. Enemies in the sphere will have a chance of receive a random negative buff at irregular intervals. The buffs have varying durations and effects. Lasts 20 seconds.

Effect List:
- Blind - Causes the target to miss on 33% of their attacks. Lasts 20 (10) seconds.
- Confusion - Causes the target to attack a random nearby allied unit.
- Hex - Turns the target into a random critter. Lasts 10 (3) seconds.
- Poison - Deals 5 damage per second. Lasts 16 (8) seconds.
- Shock - Damages target for 50 damage.
- Silence - Prevents target from using spells. Lasts 12 (4) seconds.
- Sleep - Stuns target, is awoken if damaged. Lasts 8 (4) seconds.
- Slow - Slows the target's attack speed by 25% and move speed by 60%. Lasts 16 (8) seconds.
- Voodoo Curse - Reduces the target's armor by 3 and provides vision. Last 20 (10) seconds.
- Warp - Teleports the target to random location inisde the sphere.


Triggers:
[trigger=Init]Chaosphere Init
Events
Map initialization
Conditions
Actions
Hashtable - Create a hashtable
Set chaospherehashtable = (Last created hashtable)
Set chaospherenumbereffects = 10
Set chaospherechance[1] = 15.00
Set chaospherechance[2] = 15.00
Set chaospherechance[3] = 10.00
Set chaospherechance[4] = 10.00
Set chaospherechance[5] = 10.00
Set chaospherechance[6] = 10.00
Set chaospherechance[7] = 10.00
Set chaospherechance[8] = 10.00
Set chaospherechance[9] = 5.00
Set chaospherechance[10] = 5.00
For each (Integer A) from 1 to chaospherenumbereffects, do (Actions)
Loop - Actions
Set chaospherechance[(Integer A)] = (chaospherechance[(Integer A)] + chaospherechance[((Integer A) - 1)])
Set chaospheretotalchance = (chaospheretotalchance + chaospherechance[(Integer A)])
[/trigger]
[trigger=Cast]Chaosphere Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Chaosphere
Actions
Set temppoint = (Position of (Triggering unit))
Unit Group - Add (Triggering unit) to chaospherecastinggroup
Hashtable - Save 1 as 9 of (Key (Casting unit)) in chaospherehashtable
Hashtable - Save Handle Ofchaosphereemptyugroup as 10 of (Key (Triggering unit)) in chaospherehashtable
Hashtable - Save Handle Of(Owner of (Triggering unit)) as 11 of (Key (Triggering unit)) in chaospherehashtable
Hashtable - Save 0.00 as 12 of (Key (Triggering unit)) in chaospherehashtable
Hashtable - Save (X of temppoint) as 13 of (Key (Triggering unit)) in chaospherehashtable
Hashtable - Save (Y of temppoint) as 14 of (Key (Triggering unit)) in chaospherehashtable
For each (Integer A) from 1 to 8, do (Actions)
Loop - Actions
Set temppoint2 = (temppoint offset by 50.00 towards (45.00 x (Real((Integer A)))) degrees)
Unit - Create 1 Chaosorb for (Owner of (Triggering unit)) at temppoint2 facing (45.00 x (Real((Integer A)))) degrees
Unit - Add a 24.00 second Generic expiration timer to (Last created unit)
Hashtable - Save Handle Of(Last created unit) as (Integer A) of (Key (Triggering unit)) in chaospherehashtable
Custom script: call RemoveLocation (udg_temppoint2)
Custom script: call RemoveLocation (udg_temppoint)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in chaospherecastinggroup) Equal to 1
Then - Actions
Trigger - Turn on Chaosphere Function <gen>
Else - Actions
[/trigger]
[trigger=Function]Chaosphere Function
Events
Time - Every 0.05 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in chaospherecastinggroup and do (Actions)
Loop - Actions
Set chaospherepickedunit = (Picked unit)
Set tempinteger = (Load 9 of (Key (Picked unit)) from chaospherehashtable)
Set temppoint3 = (Point((Load 13 of (Key (Picked unit)) from chaospherehashtable), (Load 14 of (Key (Picked unit)) from chaospherehashtable)))
Set tempugroup = (Units within 500.00 of temppoint3)
Unit Group - Pick every unit in tempugroup and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of Spell Immunity for (Picked unit)) Equal to 0
tempinteger Equal to 2
((Picked unit) is dead) Equal to False
((Owner of (Picked unit)) is an enemy of (Load 11 of (Key chaospherepickedunit) in chaospherehashtable)) Equal to True
((Picked unit) is in (Load 10 of (Key chaospherepickedunit) in chaospherehashtable)) Equal to False
Then - Actions
Unit Group - Add (Picked unit) to (Load 10 of (Key chaospherepickedunit) in chaospherehashtable)
Unit Group - Add (Picked unit) to chaospheretargetgroup
Else - Actions
Unit Group - Pick every unit in (Load 10 of (Key chaospherepickedunit) in chaospherehashtable) and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Level of Spell Immunity for (Picked unit)) Not equal to 0
tempinteger Not equal to 2
((Picked unit) is dead) Equal to True
((Picked unit) is in tempugroup) Equal to False
Then - Actions
Unit Group - Remove (Picked unit) from (Load 10 of (Key chaospherepickedunit) in chaospherehashtable)
Unit Group - Remove (Picked unit) from chaospheretargetgroup
Else - Actions
Custom script: call DestroyGroup (udg_tempugroup)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in chaospheretargetgroup) Greater than or equal to 1
Then - Actions
Trigger - Turn on Chaosphere Effect <gen>
Else - Actions
Trigger - Turn off Chaosphere Effect <gen>
For each (Integer A) from 1 to 8, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempinteger Equal to 1
Then - Actions
Set tempunit2 = (Load (Integer A) of (Key (Picked unit)) in chaospherehashtable)
Set temppoint = (Position of tempunit2)
Set temppoint2 = (temppoint3 offset by ((Distance between temppoint3 and temppoint) + 11.25) towards ((Angle from temppoint3 to temppoint) + 6.00) degrees)
Unit - Move tempunit2 instantly to temppoint2
Custom script: call RemoveLocation (udg_temppoint)
Custom script: call RemoveLocation (udg_temppoint2)
Else - Actions
For each (Integer A) from 1 to 8, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempinteger Equal to 2
Then - Actions
Set tempunit2 = (Load (Integer A) of (Key (Picked unit)) in chaospherehashtable)
Set temppoint = (Position of tempunit2)
Set temppoint2 = (temppoint3 offset by ((Distance between temppoint3 and temppoint) + 0.00) towards ((Angle from temppoint3 to temppoint) + 6.00) degrees)
Unit - Move tempunit2 instantly to temppoint2
Custom script: call RemoveLocation (udg_temppoint)
Custom script: call RemoveLocation (udg_temppoint2)
Else - Actions
For each (Integer A) from 1 to 8, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempinteger Equal to 3
Then - Actions
Set tempunit2 = (Load (Integer A) of (Key (Picked unit)) in chaospherehashtable)
Set temppoint = (Position of tempunit2)
Set temppoint2 = (temppoint3 offset by ((Distance between temppoint3 and temppoint) - 11.25) towards ((Angle from temppoint3 to temppoint) + 6.00) degrees)
Unit - Move tempunit2 instantly to temppoint2
Custom script: call RemoveLocation (udg_temppoint)
Custom script: call RemoveLocation (udg_temppoint2)
Else - Actions
Set tempreal = (Load 12 of (Key (Picked unit)) from chaospherehashtable)
Set tempinteger = (Load 9 of (Key chaospherepickedunit) from chaospherehashtable)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than or equal to 2.00
tempinteger Equal to 1
Then - Actions
Hashtable - Save 2 as 9 of (Key (Picked unit)) in chaospherehashtable
Unit - Create 1 Chaosphere for (Owner of (Picked unit)) at temppoint3 facing Default building facing degrees
Unit - Add a 20.00 second Generic expiration timer to (Last created unit)
Unit - Create 1 Chaosphere for (Owner of (Picked unit)) at temppoint3 facing Default building facing degrees
Unit - Add a 20.00 second Generic expiration timer to (Last created unit)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than or equal to 22.00
tempinteger Equal to 2
Then - Actions
Hashtable - Save 3 as 9 of (Key (Picked unit)) in chaospherehashtable
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than or equal to 24.00
tempinteger Equal to 3
Then - Actions
Hashtable - Save 0 as 9 of (Key (Picked unit)) in chaospherehashtable
Unit Group - Remove (Picked unit) from chaospherecastinggroup
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in chaospherecastinggroup) Equal to 0
Then - Actions
Trigger - Turn off (This trigger)
Else - Actions
Hashtable - Clear all child hashtables of child (Key (Picked unit)) in chaospherehashtable
Custom script: call DestroyGroup (LoadGroupHandleBJ(10, GetHandleIdBJ(GetEnumUnit()), udg_chaospherehashtable))
Custom script: call RemoveLocation (udg_temppoint3)
Skip remaining actions
Else - Actions
Hashtable - Save (tempreal + 0.05) as 12 of (Key (Picked unit)) in chaospherehashtable
Custom script: call RemoveLocation (udg_temppoint3)[/trigger]
[trigger=Effects]Chaosphere Effect
Events
Time - Every 0.20 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in chaospherecastinggroup and do (Actions)
Loop - Actions
Set chaospherepickedunit = (Picked unit)
Unit Group - Pick every unit in (Load 10 of (Key (Picked unit)) in chaospherehashtable) and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Random integer number between 1 and 15) Equal to 1
Then - Actions
Set temppoint = (Position of (Picked unit))
Set temppoint2 = (Point((Load 13 of (Key chaospherepickedunit) from chaospherehashtable), (Load 14 of (Key chaospherepickedunit) from chaospherehashtable)))
Unit - Create 1 Dummy for (Load 11 of (Key chaospherepickedunit) in chaospherehashtable) at temppoint facing 270.00 degrees
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Set tempreal = (Random real number between 0.01 and chaospheretotalchance)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than chaospherechance[0]
tempreal Less than or equal to chaospherechance[1]
Then - Actions
Set temppoint3 = (temppoint2 offset by ((Random real number between 7.00 and 20.00) x (Random real number between 7.00 and 20.00)) towards (Random angle) degrees)
Special Effect - Create a special effect at temppoint using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect at temppoint3 using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
Special Effect - Destroy (Last created special effect)
Unit - Move (Picked unit) instantly to temppoint3
Custom script: call RemoveLocation (udg_temppoint3)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than chaospherechance[1]
tempreal Less than or equal to chaospherechance[2]
Then - Actions
Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Items\AIil\AIilTarget.mdl
Special Effect - Destroy (Last created special effect)
Set tempugroup = (Units within 300.00 of temppoint matching (((Matching unit) Not equal to (Picked unit)) and (((Matching unit) belongs to an ally of (Owner of (Picked unit))) Equal to True)))
Unit - Order (Picked unit) to Attack (Random unit from tempugroup)
Custom script: call DestroyGroup (udg_tempugroup)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than chaospherechance[2]
tempreal Less than or equal to chaospherechance[3]
Then - Actions
Unit - Add Voodoo Curse (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Picked unit)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than chaospherechance[3]
tempreal Less than or equal to chaospherechance[4]
Then - Actions
Unit - Add Blind (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Undead Banshee - Curse (Picked unit)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than chaospherechance[4]
tempreal Less than or equal to chaospherechance[5]
Then - Actions
Unit - Add Shadow Strike (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Undead Necromancer - Unholy Frenzy (Picked unit)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than chaospherechance[5]
tempreal Less than or equal to chaospherechance[6]
Then - Actions
Unit - Add Shock (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Orc Far Seer - Chain Lightning (Picked unit)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than chaospherechance[6]
tempreal Less than or equal to chaospherechance[7]
Then - Actions
Unit - Add Slow (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Human Sorceress - Slow (Picked unit)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than chaospherechance[7]
tempreal Less than or equal to chaospherechance[8]
Then - Actions
Unit - Add Silence (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Neutral Pit Lord - Doom (Picked unit)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than chaospherechance[8]
tempreal Less than or equal to chaospherechance[9]
Then - Actions
Unit - Add Sleep (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Undead Dreadlord - Sleep (Picked unit)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempreal Greater than chaospherechance[9]
tempreal Less than or equal to chaospherechance[10]
Then - Actions
Unit - Add Hex (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Orc Shadow Hunter - Hex (Picked unit)
Else - Actions
Custom script: call RemoveLocation (udg_temppoint)
Custom script: call RemoveLocation (udg_temppoint2)
Else - Actions[/trigger]


Screenshot:
[​IMG]


Notes
Pros:
- The spell is MUI
- The idea is original, or atleast, I haven't seen it done before
- Runs smoothly and has some nice visual effects
- Fairly balanced as a classic level 6 ultimate
- Can add your own spells too!

Cons:
- The spell is difficult to transfer maps due to the number of dummy spells and buffs
- The triggering could probably be made more efficient


Credits:
Sphere Model by Darky29 - link


Keywords:
spell ultimate troll voodoo chaos sphere shadow hunter
Contents

Chaosphere v2.4 (Map)

Reviews
Moderator
18:50, 12th Jul 2010 TriggerHappy: You've updated most of what I've asked. It still would be best if you used arrays though.
  1. -Berz-

    -Berz-

    Joined:
    Mar 5, 2008
    Messages:
    3,203
    Resources:
    123
    Icons:
    111
    Packs:
    1
    Skins:
    1
    Spells:
    10
    Resources:
    123
    multiinstanceable = MUI
     
  2. i_am_cuul

    i_am_cuul

    Joined:
    Sep 9, 2006
    Messages:
    88
    Resources:
    0
    Resources:
    0
    id like to point out that "mui" would mean "multi unit instanceable" or something to the sort; "mpi" meaning multi player instanceable. the rules say "multiinstanceable", which is the exact definition of neither of the above.

    however, both mui and mpi are multiinstanceable; mui is multiinstanceable for all units and mpi for all players. therefore, the spell follows the rules on that regard.
     
  3. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,198
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    Yes, the definitions suck.
    The correct definition was "multi player instanceable" and now since we have hashtables, it is "multi unit instanceable".

    There is no reason anymore why MUI should be hard anymore, and you have to learn how to properly index your instances.

    Some spells are NOT able to be MUI, so MPI is fine. (Warcraft limitation)
    But this spell can be MUI so it has to be MUI.

    The rules only say that it AT LEAST has to be MPI, and depending on whether its makeable or not, should be MUI.
     
  4. WherewolfTherewolf

    WherewolfTherewolf

    Joined:
    Jul 18, 2008
    Messages:
    2,821
    Resources:
    3
    Models:
    3
    Resources:
    3
    You sure? I thought since Hashtables were added MPI wasn't accepted at all anymore. I submitted a spell a while ago that was rather complicated (probably can be MUI but it would take a ton of work I'm not really willing to do atm) and MPI but was labeled as "needs fix."
     
  5. TheSpoon

    TheSpoon

    Joined:
    Jul 16, 2007
    Messages:
    706
    Resources:
    54
    Packs:
    4
    Maps:
    49
    Spells:
    1
    Resources:
    54
    What a nice discussion we're having.
    But erm.. this is MPI, and I think we'll leave it to a moderator to decide.
     
  6. Prince.Zero

    Prince.Zero

    Joined:
    Jun 6, 2010
    Messages:
    217
    Resources:
    3
    Spells:
    3
    Resources:
    3
    i can help you make it mui or improve it
    just send me a pm

    The idea is nice, i like it
     
  7. Prince.Zero

    Prince.Zero

    Joined:
    Jun 6, 2010
    Messages:
    217
    Resources:
    3
    Spells:
    3
    Resources:
    3
    Show me a spell that cant be MUI
    Just curious
     
  8. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,198
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    Please don't double post.
    All spells that are bound to player functionality (Such as disabling selecting, circling camera, etc) are non-mui and at maximum MPI.

    And MPI is acceptable.
     
  9. x3GlikE

    x3GlikE

    Joined:
    Jul 7, 2010
    Messages:
    658
    Resources:
    0
    Resources:
    0
    nice nice i was looking for this kind of spell +rep :D
     
  10. Prince.Zero

    Prince.Zero

    Joined:
    Jun 6, 2010
    Messages:
    217
    Resources:
    3
    Spells:
    3
    Resources:
    3
    That's not even a spell.
    Why would a spell bind player functionality?
     
  11. Klingo

    Klingo

    Joined:
    Dec 19, 2009
    Messages:
    246
    Resources:
    5
    Spells:
    5
    Resources:
    5
    If it's not a spell , what it is then?

    Altough, MUI should be require. Simply use Dynamic value
     
  12. WherewolfTherewolf

    WherewolfTherewolf

    Joined:
    Jul 18, 2008
    Messages:
    2,821
    Resources:
    3
    Models:
    3
    Resources:
    3
    I can tell you now, this spell most likely isn't going to be accepted until it's MUI mainly because it can be done in MUI.
     
  13. mnib

    mnib

    Joined:
    May 22, 2009
    Messages:
    714
    Resources:
    1
    Icons:
    1
    Resources:
    1
    nice job spoon
     
  14. TheSpoon

    TheSpoon

    Joined:
    Jul 16, 2007
    Messages:
    706
    Resources:
    54
    Packs:
    4
    Maps:
    49
    Spells:
    1
    Resources:
    54
    Well it was rejected for being MPI, you was all right..
    But now its back and its MUI! Hurray!
    I will PM the moderator to ask him to approve it.
     
  15. Klingo

    Klingo

    Joined:
    Dec 19, 2009
    Messages:
    246
    Resources:
    5
    Spells:
    5
    Resources:
    5
    It's Probably MUI but , it leaks -.- plus , you did it whit hashtable -.- .... I'm not sure but I think you need to clear all child hashtable.
     
  16. TheSpoon

    TheSpoon

    Joined:
    Jul 16, 2007
    Messages:
    706
    Resources:
    54
    Packs:
    4
    Maps:
    49
    Spells:
    1
    Resources:
    54
    I do clear the hashtable at the end.
    And where are the leaks please?
     
  17. Klingo

    Klingo

    Joined:
    Dec 19, 2009
    Messages:
    246
    Resources:
    5
    Spells:
    5
    Resources:
    5
    My bad for clearing hashtable. Altough , use triggering unit instead of casting unit.

    Leaks:
    • Set temppoint3 = (Load 0 of (Key (Picked unit)) in chaospherehashtable)

    • Set tempugroup = (Units within 500.00 of (Load 0 of (Key (Picked unit)) in chaospherehashtable))


    That's everything I found , There's other things I think it leaks but I'm not sure so I didn't wrote them
     
  18. Zealon

    Zealon

    Joined:
    Mar 13, 2010
    Messages:
    1,142
    Resources:
    0
    Resources:
    0
    Man, such a big fuss about it being MPI, hopefully this will be approved soon, seeing as it is now MUI, great spell TheSpoon. 4.5/5
     
  19. NoMoreChallenge

    NoMoreChallenge

    Joined:
    Nov 14, 2009
    Messages:
    192
    Resources:
    0
    Resources:
    0
    I like the idea of this spell and it's original. I'll try it when I have time.
    hope it will get approved soon :) 5/5 +rep
     
  20. TheSpoon

    TheSpoon

    Joined:
    Jul 16, 2007
    Messages:
    706
    Resources:
    54
    Packs:
    4
    Maps:
    49
    Spells:
    1
    Resources:
    54
    I removed the leaks and added some comments to make understanding the triggers a little easier.