• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Pandaren Spells v1.00

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Spells for Midnighter's fallen project. So I uploaded them here.
Sorry for imported files, but in project those was chosen for heroes.

Documentation is lacking, because of my bad knowlage of english language.
I will give you some info here:

Club Toss______________________

Type: missile, target point/location
Functions: damage dealing, stun/dizzy
Special: stun/dizzy are effected with 50% (50% to stun or 50% to make enemy dizzy)
bouncing on units (enemys) and trees. Tree destroys after club bounce on it. Dummy unit is doodad model that rotates (with trigger).

Sumo Tactics__________________
Type: passive, activation on hit with chance
Functions: knockback (more like push), stacking armor reduction (with limit).
Special: effect starts when unit takes damage only.

Power Rise_____________________
Type: no target, area
Functions: knockback, stun, damage
Special: none

Roll___________________________
Type: target point/location
Functions: hero movement
Special: bounce on doodads, bounce on other rolling units :)D), full hero controll while spell cast (it make the spell modern).

Pulverize_______________________
Type: area, no target
Functions: damage
Special: area shared on rings and units take damage within ring. Rings are coming from center to outside. Spell deal damage 1 time only. Automatical effect fill with circle (no spaces between effects).

Earthquake_____________________
Type: channeling, area
Functions: slow/chance to miss in area of effect
Special: effect starts after channeling of spell ends (so hero can fight in are of effect after channeling). Extra sfx: terrain deformation (dummy spell wasnt doing it, so it is added with trigger).

Hope you will find the spells usefull. Dont be lazy and give a credit.
~NFWar~

Keywords:
Pack, Panda, Pandaren, Stun, Slow, Disable, Earthquake, Club, Toss, Pulverize, Knockback, Stun, Armor, Reduction, Passive, Funny, Roll, Bouncing, Stom
Contents

Panda's Spells (Map)

Reviews
12th Dec 2015 IcemanBo: Too long time as NeedsFix. Rejected. 21:29, 16th Jun 2010 Hanky: The imports are not necessary for the spell so remove them. After you have done this message me or one of the other spell moderators.

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long time as NeedsFix. Rejected.

21:29, 16th Jun 2010
Hanky:
The imports are not necessary for the spell so remove them. After you have done this message me or one of the other spell moderators.
 
funny and well done,
Deserve a +rep for codes? =) kidding

  • Club Toss Setings
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Club Toss
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • CT_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Club Toss Loop <gen>
        • Else - Actions
      • Set CT_Skip = (CT_Skip + 1)
      • Set CT_Times = (CT_Times + 1)
      • Set CT_On[CT_Times] = True
      • Set CT_Hero[CT_Times] = (Triggering unit)
      • -------- -------------------------------------------------- --------
      • Set CT_Level[CT_Times] = (Level of Club Toss for (Triggering unit))
      • Set CT_Point[0] = (Position of (Triggering unit))
      • Set CT_Point[1] = (Target point of ability being cast)
      • Set CT_Distance[CT_Times] = (500.00 + (100.00 x (Real(CT_Level[CT_Times]))))
      • Set CT_MaxDistance[CT_Times] = CT_Distance[CT_Times]
      • Set CT_Angle[CT_Times] = (Angle from CT_Point[0] to CT_Point[1])
      • Set CT_Speed[CT_Times] = 15.00
      • Set CT_RotateSpeed[CT_Times] = (5.00 + (5.00 x (Real(CT_Level[CT_Times]))))
      • Set CT_Height[CT_Times] = 100.00
      • Set CT_Damage[CT_Times] = (60.00 + (50.00 x (Real(CT_Level[CT_Times]))))
      • -------- -------------------------------------------------- --------
      • -------- Collision is range of contact with objects. --------
      • -------- -------------------------------------------------- --------
      • Set CT_Colision[CT_Times] = 80.00
      • Unit - Create 1 Chicken for (Owner of (Triggering unit)) at CT_Point[0] facing CT_Angle[CT_Times] degrees
      • Set CT_Missile[CT_Times] = (Last created unit)
      • -------- -------------------------------------------------- --------
      • -------- This will able to move unit up and down. (changing of height). I added parabola that is not too high to make the spell nicer. --------
      • -------- -------------------------------------------------- --------
      • Unit - Add Storm Crow Form to (Last created unit)
      • Unit - Remove Storm Crow Form from (Last created unit)
      • -------- -------------------------------------------------- --------
      • -------- Muhaha! Doodad model of falen tree is great for FAT HUGE CLUB! --------
      • -------- -------------------------------------------------- --------
      • Special Effect - Create a special effect attached to the origin of CT_Missile[CT_Times] using Doodads\Felwood\Props\FelwoodLogStraight\FelwoodLogStraight.mdl
      • Set CT_Effect[CT_Times] = (Last created special effect)
      • Custom script: call RemoveLocation(udg_CT_Point[0])
      • Custom script: call RemoveLocation(udg_CT_Point[1])
]
  • Club Toss Loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • For each (Integer CT) from 1 to CT_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CT_On[CT] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CT_Distance[CT] Less than or equal to 0.00
                • Then - Actions
                  • Special Effect - Destroy CT_Effect[CT]
                  • Unit - Kill CT_Missile[CT]
                  • -------- -------------------------------------------------- --------
                  • -------- Turning the spell off --------
                  • -------- -------------------------------------------------- --------
                  • Set CT_On[CT] = False
                  • -------- -------------------------------------------------- --------
                  • -------- Recicling... please w8 --------
                  • -------- -------------------------------------------------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • CT Less than CT_Times
                    • Then - Actions
                      • Set CT_On[CT] = CT_On[CT_Times]
                      • Set CT_Missile[CT] = CT_Missile[CT_Times]
                      • Set CT_Angle[CT] = CT_Angle[CT_Times]
                      • Set CT_Colision[CT] = CT_Colision[CT_Times]
                      • Set CT_Damage[CT] = CT_Damage[CT_Times]
                      • Set CT_Distance[CT] = CT_Distance[CT_Times]
                      • Set CT_Height[CT] = CT_Height[CT_Times]
                      • Set CT_Hero[CT] = CT_Hero[CT_Times]
                      • Set CT_Level[CT] = CT_Level[CT_Times]
                      • Set CT_MaxDistance[CT] = CT_MaxDistance[CT_Times]
                      • Set CT_Parabola[CT] = CT_Parabola[CT_Times]
                      • Set CT_Speed[CT] = CT_Speed[CT_Times]
                      • Set CT_RotateSpeed[CT] = CT_RotateSpeed[CT_Times]
                      • Set CT_Effect[CT] = CT_Effect[CT_Times]
                    • Else - Actions
                  • Set CT = (CT - 1)
                  • Set CT_Skip = (CT_Skip - 1)
                  • Set CT_Times = (CT_Times - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • CT_Skip Equal to 0
                    • Then - Actions
                      • Set CT_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set CT_Point[2] = (Position of CT_Missile[CT])
                  • Set CT_Point[3] = (CT_Point[2] offset by CT_Speed[CT] towards CT_Angle[CT] degrees)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Playable map area) contains CT_Point[3]) Equal to False
                    • Then - Actions
                      • Set CT_Distance[CT] = 0.00
                    • Else - Actions
                      • Unit - Move CT_Missile[CT] instantly to CT_Point[3], facing ((Facing of CT_Missile[CT]) + CT_RotateSpeed[CT]) degrees
                      • -------- -------------------------------------------------- --------
                      • -------- Standard parabola calculation to add arc to missile. --------
                      • -------- -------------------------------------------------- --------
                      • Set CT_Parabola[CT] = (((4.00 x CT_Height[CT]) / CT_MaxDistance[CT]) x ((CT_MaxDistance[CT] - CT_Distance[CT]) x (CT_Distance[CT] / CT_MaxDistance[CT])))
                      • -------- -------------------------------------------------- --------
                      • -------- calculation of parabola is useless without using it. Set height of missile to parabola value. --------
                      • -------- -------------------------------------------------- --------
                      • Animation - Change CT_Missile[CT] flying height to CT_Parabola[CT] at 0.00
                      • Set CT_Distance[CT] = (CT_Distance[CT] - CT_Speed[CT])
                      • -------- -------------------------------------------------- --------
                      • -------- Doodad HIT! --------
                      • -------- -------------------------------------------------- --------
                      • Destructible - Pick every destructible within CT_Colision[CT] of CT_Point[3] and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Picked destructible) is alive) Equal to True
                            • Then - Actions
                              • -------- -------------------------------------------------- --------
                              • -------- Only hervesters know what is tree and what is barrel or gate. Hervest ability is special, so I using it to detect trees. --------
                              • -------- -------------------------------------------------- --------
                              • Unit - Add Harvest (Ghouls Lumber) to CT_Missile[CT]
                              • Unit - Order CT_Missile[CT] to Harvest (Picked destructible)
                              • -------- -------------------------------------------------- --------
                              • -------- If harvester cant harvest doodad than it is not a tree... skip it --------
                              • -------- -------------------------------------------------- --------
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Current order of CT_Missile[CT]) Equal to (Order(harvest))
                                • Then - Actions
                                  • Set CT_Point[4] = (Position of (Picked destructible))
                                  • Set CT_Angle[CT] = (Angle from CT_Point[4] to CT_Point[3])
                                  • Destructible - Kill (Picked destructible)
                                  • Custom script: call RemoveLocation(udg_CT_Point[4])
                                • Else - Actions
                            • Else - Actions
                      • -------- -------------------------------------------------- --------
                      • -------- Dmage and effects are below --------
                      • -------- -------------------------------------------------- --------
                      • Set CT_Group = (Units within CT_Colision[CT] of CT_Point[3] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is A flying unit) Equal to False)) and (((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) is dead) Equal to
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Number of units in CT_Group) Greater than 0
                        • Then - Actions
                          • Unit Group - Pick every unit in (Random 1 units from CT_Group) and do (Actions)
                            • Loop - Actions
                              • Set CT_Point[4] = (Position of (Picked unit))
                              • Set CT_Angle[CT] = (Angle from CT_Point[4] to CT_Point[3])
                              • Unit - Cause CT_Hero[CT] to damage (Picked unit), dealing CT_Damage[CT] damage of attack type Spells and damage type Demolition
                              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\GlaiveMissile\GlaiveMissileTarget.mdl
                              • Special Effect - Destroy (Last created special effect)
                              • -------- -------------------------------------------------- --------
                              • -------- Create InviSIbLE unit and add effect to it! Do not forget to set timer to 1. You can descrease it but I dont sugest you to do that. Dummy may not cast it spell/effect. --------
                              • -------- -------------------------------------------------- --------
                              • Unit - Create 1 Chicken for (Owner of CT_Hero[CT]) at CT_Point[4] facing Default building facing degrees
                              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                              • -------- -------------------------------------------------- --------
                              • -------- Duh... so much spells and all do DMG! ... lets add stun or dizzy also to make imbalanced spell! LOL --------
                              • -------- Randomize effect of spell. --------
                              • -------- -------------------------------------------------- --------
                              • Set CT_Chance = (Random integer number between 1 and 100)
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • CT_Chance Less than or equal to 50
                                • Then - Actions
                                  • Unit - Add Dizziness (Dummy Spell) to (Last created unit)
                                  • Unit - Set level of Dizziness (Dummy Spell) for (Last created unit) to CT_Level[CT]
                                  • Unit - Order (Last created unit) to Undead Necromancer - Cripple (Picked unit)
                                • Else - Actions
                                  • Unit - Add Hurl Boulder (Dummy Spell) to (Last created unit)
                                  • Unit - Set level of Hurl Boulder (Dummy Spell) for (Last created unit) to CT_Level[CT]
                                  • Unit - Order (Last created unit) to Neutral - Hurl Boulder (Picked unit)
                              • Custom script: call RemoveLocation(udg_CT_Point[4])
                        • Else - Actions
                  • -------- -------------------------------------------------- --------
                  • -------- Clear leaks --------
                  • -------- -------------------------------------------------- --------
                  • Custom script: call DestroyGroup(udg_CT_Group)
                  • Custom script: call RemoveLocation(udg_CT_Point[2])
                  • Custom script: call RemoveLocation(udg_CT_Point[3])
            • Else - Actions
  • Pulverise Setings
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Pulverize
    • Actions
      • Custom script: local real PR_Radius
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PR_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Pulverise Loop <gen>
        • Else - Actions
      • Set PR_Skip = (PR_Skip + 1)
      • Set PR_Times = (PR_Times + 1)
      • Set PR_On[PR_Times] = True
      • Set PR_Point[0] = (Position of (Triggering unit))
      • -------- -------------------------------------------------- --------
      • -------- this is center of area. it will remain undeleted until ring will reach edge of area. --------
      • -------- -------------------------------------------------- --------
      • Set PR_CenterPoint[PR_Times] = (PR_Point[0] offset by 150.00 towards (Facing of (Triggering unit)) degrees)
      • -------- -------------------------------------------------- --------
      • -------- Effect on center for eye candy. --------
      • -------- -------------------------------------------------- --------
      • Special Effect - Create a special effect at PR_CenterPoint[PR_Times] using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • Set PR_Hero[PR_Times] = (Triggering unit)
      • Set PR_Damage[PR_Times] = (25.00 + (55.00 x (Real((Level of Pulverize for (Triggering unit))))))
      • -------- -------------------------------------------------- --------
      • -------- Radius of area effect. --------
      • -------- -------------------------------------------------- --------
      • Set PR_MaxRadius[PR_Times] = 300.00
      • -------- -------------------------------------------------- --------
      • -------- This is wideness of ring within units will be damaged. Example: --------
      • -------- First ring picks units: from 0 to 50 range --------
      • -------- Second picks within: 50-100 --------
      • -------- Third: 100-150 --------
      • -------- ... --------
      • -------- -------------------------------------------------- --------
      • Set PR_RingWide[PR_Times] = 50.00
      • -------- -------------------------------------------------- --------
      • -------- Ok... if radius is 330... than it will be 6 rings with 50 wideness and 30 towards left o.O Dow!!! Who will sit and calculate all this??? --------
      • -------- noone... I made it so it will pick at 30 range from start of effect and after cause dmg to picked units. --------
      • -------- So the last ring will be on edge of area always. --------
      • -------- -------------------------------------------------- --------
      • Set PR_Radius[PR_Times] = (PR_MaxRadius[PR_Times] mod PR_RingWide[PR_Times])
      • -------- -------------------------------------------------- --------
      • -------- Calculation of waves count --------
      • -------- -------------------------------------------------- --------
      • Set PR_Waves[PR_Times] = (Integer(((PR_MaxRadius[PR_Times] - PR_Radius[PR_Times]) / PR_RingWide[PR_Times])))
      • -------- -------------------------------------------------- --------
      • -------- Blizzard I love you! They gave number for variations of models. It means i can index to variable variation by getting random number instead of making LOTS OF LINES WITH IF. --------
      • -------- -------------------------------------------------- --------
      • Set PR_Chance = (Random integer number between 0 and 5)
      • -------- -------------------------------------------------- --------
      • -------- Check the lower like and you will understand how I get variation of model. --------
      • -------- -------------------------------------------------- --------
      • Special Effect - Create a special effect at PR_CenterPoint[PR_Times] using (Doodads\LordaeronSummer\Terrain\LoardaeronRockChunks\LoardaeronRockChunks + ((String(PR_Chance)) + .mdl))
      • Special Effect - Destroy (Last created special effect)
      • -------- -------------------------------------------------- --------
      • -------- Interval will increase until it will be aqual to IntervalSkip. That next ring will be released. --------
      • -------- -------------------------------------------------- --------
      • Set PR_Interval[PR_Times] = 0.00
      • Set PR_IntervalSkip[PR_Times] = 0.06
      • -------- -------------------------------------------------- --------
      • -------- If that is no remaining range after calculating of rings count, than no picking UP UNITS FROM START OF EFFECT XD --------
      • -------- -------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PR_Radius[PR_Times] Greater than 0.00
        • Then - Actions
          • -------- -------------------------------------------------- --------
          • -------- Damage to units. --------
          • -------- -------------------------------------------------- --------
          • Set PR_Group = (Units within PR_Radius[PR_Times] of PR_CenterPoint[PR_Times] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is A flying unit) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) i
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in PR_Group) Greater than 0
            • Then - Actions
              • -------- -------------------------------------------------- --------
              • -------- Spell cant damage twise. Some jass lines that prepare group for every spell casted. Elso it bugs. --------
              • -------- -------------------------------------------------- --------
              • Custom script: if udg_PR_DebugGroup[udg_PR_Times] == null then
              • Custom script: set udg_PR_DebugGroup[udg_PR_Times] = CreateGroup()
              • Custom script: endif
              • Unit Group - Pick every unit in PR_Group and do (Actions)
                • Loop - Actions
                  • Unit - Cause PR_Hero[PR_Times] to damage (Picked unit), dealing PR_Damage[PR_Times] damage of attack type Spells and damage type Normal
                  • Unit Group - Add (Picked unit) to PR_DebugGroup[PR_Times]
            • Else - Actions
          • Custom script: call DestroyGroup(udg_PR_Group)
        • Else - Actions
  • Pulverise Loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • For each (Integer PR) from 1 to PR_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • PR_On[PR] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • PR_Waves[PR] Equal to 0
                • Then - Actions
                  • -------- -------------------------------------------------- --------
                  • -------- Units in this group was damaged and when spell ends, group must to be cleared. --------
                  • -------- -------------------------------------------------- --------
                  • Unit Group - Remove all units from PR_DebugGroup[PR]
                  • Custom script: call RemoveLocation(udg_PR_CenterPoint[udg_PR])
                  • Set PR_On[PR] = False
                  • -------- -------------------------------------------------- --------
                  • -------- Recycling --------
                  • -------- -------------------------------------------------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • PR Less than PR_Times
                    • Then - Actions
                      • Set PR_On[PR] = PR_On[PR_Times]
                      • Set PR_Hero[PR] = PR_Hero[PR_Times]
                      • Set PR_Damage[PR] = PR_Damage[PR_Times]
                      • Set PR_Waves[PR] = PR_Waves[PR_Times]
                      • Set PR_Interval[PR] = PR_Interval[PR_Times]
                      • Set PR_IntervalSkip[PR] = PR_IntervalSkip[PR_Times]
                      • Set PR_Radius[PR] = PR_Radius[PR_Times]
                      • Set PR_DebugGroup[PR] = PR_DebugGroup[PR_Times]
                      • Set PR_Perimeter[PR] = PR_Perimeter[PR_Times]
                      • Set PR_CenterPoint[PR] = PR_CenterPoint[PR_Times]
                    • Else - Actions
                  • Set PR = (PR - 1)
                  • Set PR_Skip = (PR_Skip - 1)
                  • Set PR_Times = (PR_Times - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • PR_Skip Equal to 0
                    • Then - Actions
                      • Set PR_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • -------- -------------------------------------------------- --------
                  • -------- Interval count time between next ring will come out. When it reach IntervalSkip value, next ring come out. --------
                  • -------- -------------------------------------------------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • PR_Interval[PR] Greater than or equal to PR_IntervalSkip[PR]
                    • Then - Actions
                      • Set PR_Interval[PR] = 0.00
                      • Set PR_Waves[PR] = (PR_Waves[PR] - 1)
                      • Set PR_Radius[PR] = (PR_Radius[PR] + PR_RingWide[PR])
                      • -------- -------------------------------------------------- --------
                      • -------- Picking... damaging... adding todebug group to do not cause damage more than once --------
                      • -------- -------------------------------------------------- --------
                      • Set PR_Group = (Units within PR_Radius[PR] of PR_CenterPoint[PR] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is A flying unit) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and (((((Matching unit) is dead) Equ
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Number of units in PR_Group) Greater than 0
                        • Then - Actions
                          • Unit Group - Pick every unit in PR_Group and do (Actions)
                            • Loop - Actions
                              • Set PR_Point[1] = (Position of (Picked unit))
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Distance between PR_Point[1] and PR_CenterPoint[PR]) Greater than or equal to (PR_Radius[PR] - PR_RingWide[PR])
                                • Then - Actions
                                  • Unit - Cause PR_Hero[PR] to damage (Picked unit), dealing PR_Damage[PR] damage of attack type Spells and damage type Normal
                                  • Unit Group - Add (Picked unit) to PR_DebugGroup[PR]
                                • Else - Actions
                              • Custom script: call RemoveLocation(udg_PR_Point[1])
                        • Else - Actions
                      • Custom script: call DestroyGroup(udg_PR_Group)
                      • -------- -------------------------------------------------- --------
                      • -------- Formula and calculation of auto effect filling in circle. --------
                      • -------- -------------------------------------------------- --------
                      • Set PR_Perimeter[PR] = ((2.00 x 3.14) x (PR_Radius[PR] - (PR_RingWide[PR] / 2.00)))
                      • -------- -------------------------------------------------- --------
                      • -------- 100 is the size of effect. It depends on model and your look about how big this value must to be --------
                      • -------- -------------------------------------------------- --------
                      • Set PR_Effects = (Integer((PR_Perimeter[PR] / 100.00)))
                      • -------- -------------------------------------------------- --------
                      • -------- loop to spread out effects on circle --------
                      • -------- -------------------------------------------------- --------
                      • For each (Integer PRE) from 1 to PR_Effects, do (Actions)
                        • Loop - Actions
                          • Set PR_Point[2] = (PR_CenterPoint[PR] offset by (PR_Radius[PR] - (PR_RingWide[PR] / 2.00)) towards ((360.00 / (Real(PR_Effects))) x (Real(PRE))) degrees)
                          • Set PR_Chance = (Random integer number between 0 and 5)
                          • Special Effect - Create a special effect at PR_Point[2] using (Doodads\LordaeronSummer\Terrain\LoardaeronRockChunks\LoardaeronRockChunks + ((String(PR_Chance)) + .mdl))
                          • Special Effect - Destroy (Last created special effect)
                          • Custom script: call RemoveLocation(udg_PR_Point[2])
                    • Else - Actions
                      • Set PR_Interval[PR] = (PR_Interval[PR] + 0.02)
            • Else - Actions
  • Earthquake Setings
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Earthquake (Custom)
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • EQ_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Earthquake Loop <gen>
        • Else - Actions
      • Set EQ_Skip = (EQ_Skip + 1)
      • Set EQ_Times = (EQ_Times + 1)
      • Set EQ_On[EQ_Times] = True
      • -------- -------------------------------------------------- --------
      • Set EQ_Point[EQ_Times] = (Target point of ability being cast)
      • Set EQ_Level[EQ_Times] = (Level of Earthquake (Custom) for (Triggering unit))
      • Set EQ_Hero[EQ_Times] = (Triggering unit)
      • -------- -------------------------------------------------- --------
      • -------- Max Duration is a time of effect duration after finishing of channeling. --------
      • -------- -------------------------------------------------- --------
      • Set EQ_MaxDuration[EQ_Times] = (2.00 + (2.00 x (Real(EQ_Level[EQ_Times]))))
      • Set EQ_Duration[EQ_Times] = 0.00
      • -------- -------------------------------------------------- --------
      • -------- This value used for creating of effect. --------
      • -------- -------------------------------------------------- --------
      • Set EQ_Spam[EQ_Times] = 0
      • -------- -------------------------------------------------- --------
      • -------- Hero is added to group. When he will get order, he will stop casting the spell and this group help to find him from other casters. --------
      • -------- -------------------------------------------------- --------
      • Unit Group - Add (Triggering unit) to EQ_DebugGroup
  • Earthquake Loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • -------- -------------------------------------------------- --------
      • -------- This is local variable. It is used for this trigger only. I used local to avoid global variable that used just for a moment (also it is easy to set it than seting local unit group variable) --------
      • -------- -------------------------------------------------- --------
      • Custom script: local location EQ_Point
      • For each (Integer EQ) from 1 to EQ_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • EQ_On[EQ] Equal to True
            • Then - Actions
              • -------- -------------------------------------------------- --------
              • -------- The spell stops when... read conditions --------
              • -------- -------------------------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • (EQ_Hero[EQ] is in EQ_DebugGroup) Equal to False
                      • EQ_Duration[EQ] Greater than or equal to EQ_MaxDuration[EQ]
                      • (EQ_Hero[EQ] is Stunned) Equal to True
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (EQ_Hero[EQ] is in EQ_DebugGroup) Equal to False
                    • Then - Actions
                    • Else - Actions
                      • -------- -------------------------------------------------- --------
                      • -------- We move hero when he is not in debug group to stop "dummy spell" cast --------
                      • -------- -------------------------------------------------- --------
                      • Custom script: set EQ_Point = GetUnitLoc(udg_EQ_Hero[udg_EQ])
                      • Custom script: call SetUnitPositionLoc( udg_EQ_Hero[udg_EQ], EQ_Point )
                      • Custom script: call RemoveLocation(EQ_Point)
                  • -------- -------------------------------------------------- --------
                  • -------- Some terrain deformation effects --------
                  • -------- -------------------------------------------------- --------
                  • Environment - Create a EQ_Duration[EQ] second Normal ripple deformation at EQ_Point[EQ] with starting radius (200.00 + (100.00 x (Real(EQ_Level[EQ])))), ending radius (200.00 + (200.00 x (Real(EQ_Level[EQ])))), and depth 50.00, using 0.50 second ripples spaced 200.00 apart
                  • -------- -------------------------------------------------- --------
                  • -------- We create a dummy unit that will cast the spell, because it is channeling and we need a hero to fight when spell is casting. --------
                  • -------- -------------------------------------------------- --------
                  • Unit - Create 1 Chicken for (Owner of EQ_Hero[EQ]) at EQ_Point[EQ] facing Default building facing degrees
                  • Unit - Add Earthquake to (Last created unit)
                  • Unit - Set level of Earthquake for (Last created unit) to EQ_Level[EQ]
                  • Unit - Order (Last created unit) to Human Dragonhawk Rider - Cloud EQ_Point[EQ]
                  • -------- -------------------------------------------------- --------
                  • -------- Duration variable is life time of dummy. Simple. --------
                  • -------- -------------------------------------------------- --------
                  • Unit - Add a EQ_Duration[EQ] second Generic expiration timer to (Last created unit)
                  • Custom script: call RemoveLocation(udg_EQ_Point[udg_EQ])
                  • Unit Group - Remove EQ_Hero[EQ] from EQ_DebugGroup
                  • Set EQ_On[EQ] = False
                  • -------- -------------------------------------------------- --------
                  • -------- Recycling --------
                  • -------- -------------------------------------------------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • EQ Less than EQ_Times
                    • Then - Actions
                      • Set EQ_On[EQ] = EQ_On[EQ_Times]
                      • Set EQ_Duration[EQ] = EQ_Duration[EQ_Times]
                      • Set EQ_Hero[EQ] = EQ_Hero[EQ_Times]
                      • Set EQ_Level[EQ] = EQ_Level[KB]
                      • Set EQ_MaxDuration[EQ] = EQ_MaxDuration[EQ_Times]
                      • Set EQ_Point[EQ] = EQ_Point[EQ_Times]
                      • Set EQ_Spam[EQ] = EQ_Spam[EQ_Times]
                    • Else - Actions
                  • Set EQ = (EQ - 1)
                  • Set EQ_Skip = (EQ_Skip - 1)
                  • Set EQ_Times = (EQ_Times - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • EQ_Skip Equal to 0
                    • Then - Actions
                      • Set EQ_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • -------- -------------------------------------------------- --------
                  • -------- Spam is varible that when gets to 0 effect creates under hero legs. --------
                  • -------- -------------------------------------------------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • EQ_Spam[EQ] Less than or equal to 0
                    • Then - Actions
                      • Set EQ_Spam[EQ] = 45
                      • Animation - Play EQ_Hero[EQ]'s spell animation
                      • Special Effect - Create a special effect attached to the origin of EQ_Hero[EQ] using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                      • Set EQ_Spam[EQ] = (EQ_Spam[EQ] - 1)
                  • Set EQ_Duration[EQ] = (EQ_Duration[EQ] + 0.04)
                  • -------- -------------------------------------------------- --------
                  • -------- Effect duration increses two times faster than channeling it. --------
                  • -------- -------------------------------------------------- --------
            • Else - Actions
  • Stop Earthquake
    • Events
      • Unit - A unit Is issued an order targeting an object
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order with no target
    • Conditions
      • ((Triggering unit) is in EQ_DebugGroup) Equal to True
    • Actions
      • -------- -------------------------------------------------- --------
      • -------- Searching a hero from group to stop him from spell casting. --------
      • -------- -------------------------------------------------- --------
      • For each (Integer EQ2) from 1 to EQ_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • EQ_Hero[EQ2] Equal to (Triggering unit)
            • Then - Actions
              • Unit Group - Remove (Triggering unit) from EQ_DebugGroup
            • Else - Actions
  • Roll Setings
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Roll
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • RL_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Roll Loop <gen>
        • Else - Actions
      • Set RL_Skip = (RL_Skip + 1)
      • Set RL_Times = (RL_Times + 1)
      • Set RL_On[RL_Times] = True
      • -------- -------------------------------------------------- --------
      • Set RL_Point[0] = (Position of (Triggering unit))
      • Set RL_Point[1] = (Target point of ability being cast)
      • Set RL_Hero[RL_Times] = (Triggering unit)
      • Set RL_Level[RL_Times] = (Level of Roll for (Triggering unit))
      • Unit Group - Add (Triggering unit) to RL_DebugGroup
      • Set RL_Angle[RL_Times] = (Angle from RL_Point[0] to RL_Point[1])
      • Set RL_Distance[RL_Times] = (250.00 + (150.00 x (Real(RL_Level[RL_Times]))))
      • Set RL_Speed[RL_Times] = 16.00
      • Set RL_Collision[RL_Times] = 135.00
      • Unit - Create 1 Chicken for (Owner of (Triggering unit)) at RL_Point[0] facing RL_Angle[RL_Times] degrees
      • Set RL_Dummy[RL_Times] = (Last created unit)
      • Animation - Change (Last created unit)'s size to (130.00%, 130.00%, 130.00%) of its original size
      • -------- -------------------------------------------------- --------
      • -------- Hero is getting transparent and dummy gets his roling model. --------
      • -------- -------------------------------------------------- --------
      • Special Effect - Create a special effect attached to the chest of (Last created unit) using Units\Creeps\EarthPandarenBrewmaster\EarthPandarenBrewmaster_Missile.mdl
      • Set RL_Effect[RL_Times] = (Last created special effect)
      • Animation - Change (Triggering unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
      • Custom script: call RemoveLocation(udg_RL_Point[0])
      • Custom script: call RemoveLocation(udg_RL_Point[1])
  • Roll Loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • For each (Integer RL) from 1 to RL_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RL_On[RL] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • RL_Distance[RL] Less than or equal to 0.00
                      • (RL_Hero[RL] is Stunned) Equal to True
                • Then - Actions
                  • Unit Group - Remove RL_Hero[RL] from RL_DebugGroup
                  • Animation - Change RL_Hero[RL]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
                  • Special Effect - Destroy RL_Effect[RL]
                  • Unit - Kill RL_Dummy[RL]
                  • Set RL_On[RL] = False
                  • -------- ReCyCliNg --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • RL Less than RL_Times
                    • Then - Actions
                      • Set RL_On[RL] = RL_On[RL_Times]
                      • Set RL_Angle[RL] = RL_Angle[RL_Times]
                      • Set RL_Collision[RL] = RL_Collision[RL_Times]
                      • Set RL_Distance[RL] = RL_Distance[RL_Times]
                      • Set RL_Dummy[RL] = RL_Dummy[RL_Times]
                      • Set RL_Effect[RL] = RL_Effect[RL_Times]
                      • Set RL_Hero[RL] = RL_Hero[RL_Times]
                      • Set RL_Speed[RL] = RL_Speed[RL_Times]
                      • Set RL_Level[RL] = RL_Level[RL_Times]
                      • Set RL_Level[RL] = RL_Level[RL_Times]
                    • Else - Actions
                  • Set RL = (RL - 1)
                  • Set RL_Skip = (RL_Skip - 1)
                  • Set RL_Times = (RL_Times - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • RL_Skip Equal to 0
                    • Then - Actions
                      • Set RL_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set RL_Distance[RL] = (RL_Distance[RL] - RL_Speed[RL])
                  • Set RL_Point[2] = (Position of RL_Hero[RL])
                  • Set RL_Point[3] = (RL_Point[2] offset by RL_Speed[RL] towards RL_Angle[RL] degrees)
                  • -------- -------------------------------------------------- --------
                  • -------- hero stop the roll if he get to unpathable terrain. --------
                  • -------- -------------------------------------------------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Terrain pathing at RL_Point[3] of type Walkability is off) Equal to True
                    • Then - Actions
                      • Set RL_Distance[RL] = 0.00
                    • Else - Actions
                      • -------- -------------------------------------------------- --------
                      • -------- picking doodas to bounce --------
                      • -------- -------------------------------------------------- --------
                      • Destructible - Pick every destructible within RL_Collision[RL] of RL_Point[3] and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Picked destructible) is alive) Equal to True
                            • Then - Actions
                              • Set RL_Point[4] = (Position of (Picked destructible))
                              • -------- -------------------------------------------------- --------
                              • -------- If doodad is behind from hero, it will be ignored --------
                              • -------- -------------------------------------------------- --------
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • And - All (Conditions) are true
                                    • Conditions
                                      • (Angle from RL_Point[3] to RL_Point[4]) Less than or equal to (RL_Angle[RL] + 90.00)
                                      • (Angle from RL_Point[3] to RL_Point[4]) Greater than or equal to (RL_Angle[RL] - 90.00)
                                • Then - Actions
                                  • Set RL_Angle[RL] = (Angle from RL_Point[4] to RL_Point[3])
                                • Else - Actions
                              • Custom script: call RemoveLocation(udg_RL_Point[4])
                            • Else - Actions
                      • -------- -------------------------------------------------- --------
                      • -------- Picking units. Hero stop when it bounce on unit. --------
                      • -------- -------------------------------------------------- --------
                      • Set RL_Group = (Units within RL_Collision[RL] of RL_Point[3] matching ((((Matching unit) is dead) Equal to False) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Mechanical) Equal to False) and ((((Matching unit) is A flying unit) Equal to F
                      • Unit Group - Pick every unit in RL_Group and do (Actions)
                        • Loop - Actions
                          • Set RL_Point[4] = (Position of (Picked unit))
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Picked unit) is in RL_DebugGroup) Equal to True
                            • Then - Actions
                              • Set RL_Angle[RL] = (Angle from RL_Point[4] to RL_Point[3])
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • And - All (Conditions) are true
                                    • Conditions
                                      • (Angle from RL_Point[3] to RL_Point[4]) Less than or equal to (RL_Angle[RL] + 60.00)
                                      • (Angle from RL_Point[3] to RL_Point[4]) Greater than or equal to (RL_Angle[RL] - 60.00)
                                • Then - Actions
                                  • Set RL_Distance[RL] = 0.00
                                • Else - Actions
                          • Custom script: call RemoveLocation(udg_RL_Point[4])
                      • Custom script: call DestroyGroup(udg_RL_Group)
                      • -------- -------------------------------------------------- --------
                      • -------- Hero face angle of roll and moving with jass function to give to player full controll on him. --------
                      • -------- -------------------------------------------------- --------
                      • Unit - Make RL_Hero[RL] face RL_Point[3] over 0.00 seconds
                      • Custom script: call SetUnitX(udg_RL_Hero[udg_RL], GetLocationX(udg_RL_Point[3]))
                      • Custom script: call SetUnitY(udg_RL_Hero[udg_RL], GetLocationY(udg_RL_Point[3]))
                      • -------- -------------------------------------------------- --------
                      • -------- Dummy is moving and facing angle of roll. --------
                      • -------- -------------------------------------------------- --------
                      • Unit - Move RL_Dummy[RL] instantly to RL_Point[3], facing RL_Angle[RL] degrees
                  • Custom script: call RemoveLocation(udg_RL_Point[2])
                  • Custom script: call RemoveLocation(udg_RL_Point[3])
            • Else - Actions
  • Stop Rolling
    • Events
      • Unit - A unit Is issued an order targeting an object
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order with no target
    • Conditions
      • ((Triggering unit) is in RL_DebugGroup) Equal to True
    • Actions
      • For each (Integer RL2) from 1 to RL_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RL_Hero[RL2] Equal to (Triggering unit)
            • Then - Actions
              • Set RL_Distance[RL2] = 0.00
            • Else - Actions
  • Sumo Tactics Trigger
    • Events
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Damage taken) Not equal to 0.00
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Sumo Tactics for (Damage source)) Greater than 0
            • Then - Actions
              • For each (Integer SS) from 1 to SS_Times, do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SS_Hero[SS] Equal to (Damage source)
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • SS_Passed[SS] Equal to True
                        • Then - Actions
                          • -------- -------------------------------------------------- --------
                          • -------- Geting the pass value to false. Else it will be always effect on attack after 1st effect. --------
                          • -------- -------------------------------------------------- --------
                          • Set SS_Passed[SS] = False
                          • -------- -------------------------------------------------- --------
                          • -------- If hero hit unit, he will be removed from group of heroes that waiting to damage his target (waiting is delay between animation to attack and attack after miss) --------
                          • -------- -------------------------------------------------- --------
                          • Unit Group - Remove SS_Hero[SS] from SS_HeroGroup
                          • -------- ------------------------------------------------------------------------------------------------------- --------
                          • -------- Maximum stacks are 10. Edit spell in Object Editor and change level limit here. --------
                          • -------- Installing the armor penalty spell --------
                          • -------- -------------------------------------------------- --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Level of Armor Penalty (Special) for (Triggering unit)) Equal to 10
                            • Then - Actions
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • AP_Skip Equal to 0
                                • Then - Actions
                                  • Trigger - Turn on Armor Penalty Loop <gen>
                                • Else - Actions
                              • Set AP_Skip = (AP_Skip + 1)
                              • Set AP_Times = (AP_Times + 1)
                              • Set AP_On[AP_Times] = True
                              • Set AP_Unit[AP_Times] = (Triggering unit)
                              • -------- -------------------------------------------------- --------
                              • -------- Value is how much levels the negative spell of armor descreacing will be set/increase (because of stack) --------
                              • -------- -------------------------------------------------- --------
                              • Set AP_Value[AP_Times] = (0 + (1 x (Level of Sumo Tactics for (Damage source))))
                              • -------- -------------------------------------------------- --------
                              • -------- Effect ends after duration expire --------
                              • -------- -------------------------------------------------- --------
                              • Set AP_Duration[AP_Times] = (10.00 + (0.00 x (Real((Level of Sumo Tactics for (Damage source))))))
                              • -------- -------------------------------------------------- --------
                              • -------- If this is first effect, add the negative spell --------
                              • -------- -------------------------------------------------- --------
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Level of Armor Penalty (Special) for (Triggering unit)) Equal to 0
                                • Then - Actions
                                  • Unit - Add Armor Penalty (Special) to (Triggering unit)
                                  • Unit - Set level of Armor Penalty (Special) for (Triggering unit) to AP_Value[AP_Times]
                                • Else - Actions
                                  • -------- -------------------------------------------------- --------
                                  • -------- if that is not first effect of this type of spell then... --------
                                  • -------- -------------------------------------------------- --------
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • ((Level of Armor Penalty (Special) for (Triggering unit)) + AP_Value[AP_Times]) Greater than 10
                                    • Then - Actions
                                      • Set AP_Value[AP_Times] = (10 - AP_Value[AP_Times])
                                    • Else - Actions
                                  • Unit - Set level of Armor Penalty (Special) for (Triggering unit) to ((Level of Armor Penalty (Special) for (Triggering unit)) + AP_Value[AP_Times])
                          • -------- ------------------------------------------------------------------------------------------------------- --------
                          • -------- Installing knockback as second effect of pandaren tactics spell --------
                          • -------- -------------------------------------------------- --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • KB_Skip Equal to 0
                            • Then - Actions
                              • Trigger - Turn on Knockback System <gen>
                            • Else - Actions
                          • Set KB_Skip = (KB_Skip + 1)
                          • Set KB_Times = (KB_Times + 1)
                          • Set KB_Off[KB_Times] = True
                          • Set KB_Target[KB_Times] = (Triggering unit)
                          • Set KB_Point[0] = (Position of (Damage source))
                          • Set KB_Point[1] = (Position of (Triggering unit))
                          • Set KB_Angle[KB_Times] = (Angle from KB_Point[0] to KB_Point[1])
                          • Set KB_Speed[KB_Times] = 10.00
                          • Set KB_Spam[KB_Times] = 5
                          • Set KB_Distance[KB_Times] = 150.00
                          • Custom script: call RemoveLocation(udg_KB_Point[0])
                          • Custom script: call RemoveLocation(udg_KB_Point[1])
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • SS Less than SS_Times
                            • Then - Actions
                              • Set SS_Passed[SS] = SS_Passed[SS_Times]
                              • Set SS_Hero[SS] = SS_Hero[SS_Times]
                            • Else - Actions
                          • Set SS = (SS - 1)
                          • Set SS_Times = (SS_Times - 1)
                        • Else - Actions
                    • Else - Actions
            • Else - Actions
        • Else - Actions
  • Adding Sumo Tactics Trigger
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Level of Sumo Tactics for (Attacking unit)) Greater than 0
    • Actions
      • -------- -------------------------------------------------- --------
      • -------- Every hero that pass an effect will get to this group. But why we need a group here and not checking lvl of ability for spell? --------
      • -------- Because here hero that effected the spell on attack, but missed, will remain and getting finlered from chance to effect the spell again. --------
      • -------- -------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Attacking unit) is in SS_HeroGroup) Equal to True
        • Then - Actions
          • For each (Integer SS2) from 1 to SS_Times, do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SS_Hero[SS2] Equal to (Attacking unit)
                • Then - Actions
                  • Set SS_Passed[SS2] = False
                  • Set SS_Chance = (Random integer number between 1 and 100)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SS_Chance Less than or equal to (8 + (2 x (Level of Sumo Tactics for SS_Hero[SS2])))
                    • Then - Actions
                      • Set SS_Passed[SS2] = True
                      • Animation - Play SS_Hero[SS2]'s slam animation, using only Rare animations
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Triggering unit) is in SS_Group) Equal to False
                        • Then - Actions
                          • Unit Group - Add (Triggering unit) to SS_Group
                          • Trigger - Add to Sumo Tactics Trigger <gen> the event (Unit - (Triggering unit) Takes damage)
                        • Else - Actions
                    • Else - Actions
                • Else - Actions
        • Else - Actions
          • Set SS_Chance = (Random integer number between 1 and 100)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • SS_Chance Less than or equal to (8 + (2 x (Level of Sumo Tactics for (Attacking unit))))
            • Then - Actions
              • Unit Group - Add (Attacking unit) to SS_HeroGroup
              • Set SS_Times = (SS_Times + 1)
              • Set SS_Passed[SS_Times] = True
              • Set SS_Hero[SS_Times] = (Attacking unit)
              • Animation - Play SS_Hero[SS_Times]'s slam animation, using only Rare animations
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Triggering unit) is in SS_Group) Equal to False
                • Then - Actions
                  • Unit Group - Add (Triggering unit) to SS_Group
                  • Trigger - Add to Sumo Tactics Trigger <gen> the event (Unit - (Triggering unit) Takes damage)
                • Else - Actions
            • Else - Actions
 
Level 3
Joined
Feb 23, 2010
Messages
46
Wow.................this sounds amazing :D Panda Spells uhahahha nice one
going to test it. @NFWar i will test the bounce :)
 
Level 3
Joined
Feb 23, 2010
Messages
46
Tested it and it works fine.
But maybe you use in your "Adding Sumo Tactics Trigger" Get damaged instead of Get attacked maybe i'm incorrect.

I have one question to your roll spell. You use a dummy unit for the rolling animation and you make the hero transperent. But can the hero get damaged during the spell?
 
Level 3
Joined
Feb 23, 2010
Messages
46
Ah ok i tested it and you can damage the hero (unit) during the spell.
So there is nothing more to say than.... NICE WORK
I vote with 5/5
 
I won't rate this spells 5/5 and recommend it either.. my rating would be 3 if i vote for it.

That is because you do not reset the unit animation upon casting spells, which it was terrible idea as it could cause awkward animation at the caster unit.

Explain what spell and why animation reset needed theare. I see everything fine. All animations wasnt causing any problem to hero attacks movement or spall casting animations. What is the problem? Explain better.
 
Level 11
Joined
Jan 25, 2009
Messages
572
Hehe, watch here the capability of NFWar, you all must admit that he's Freaking awesome in each motherfu**er thing he does! I'm damn jealous! Teach me some more NFWar! About Parabolas! I wanna know everything about parabolas and calculating stuffs like that! :)
 
Level 13
Joined
Jun 9, 2009
Messages
1,129
Hehe, watch here the capability of NFWar, you all must admit that he's Freaking awesome in each motherfu**er thing he does! I'm damn jealous! Teach me some more NFWar! About Parabolas! I wanna know everything about parabolas and calculating stuffs like that! :)

I know, I know, I know, I know. I like his missile system! It isn't awesome it is GODLIKE!
 
Your demo map uses icons that cause the Mac version of WC3 to freeze. Please remove or modify them. Spell submissions are only supposed to have resources if they are absolutely essential to the functioning or look of the abilities, anyway.

Cant be... MAC dont must to lag because of this...
If it is true, than all imported icons will freez ur system, because I made icons at same way as other people do. It may be:
-A model of sumo panda
-The lag when effect of Sumo Tactics start (just for first time) because
I am not preloading this spell.

Why dont you remove all imported files and try to test again?
Also, I need some triggers review to be sure if I did everything allright.
 
Level 10
Joined
Jul 12, 2009
Messages
318
If it is true, than all imported icons will freez ur system, because I made icons at same way as other people do. It may be:
-A model of sumo panda
-The lag when effect of Sumo Tactics start (just for first time) because
I am not preloading this spell.

Why dont you remove all imported files and try to test again?
Dude, it's a known issue with WC3 for Mac. Palletized BLPs used as icons with compression lower than 85% will cause the game to freeze when it tries to load or display them.

Your map works fine if I delete the imported icons.
 
Level 21
Joined
Aug 9, 2006
Messages
2,384
Hehe, watch here the capability of NFWar, you all must admit that he's Freaking awesome in each motherfu**er thing he does! I'm damn jealous! Teach me some more NFWar! About Parabolas! I wanna know everything about parabolas and calculating stuffs like that! :)

What is so special on this I must ask? O,o Nothing that I or Paladon couldn't do.... so I have no idea why you call him so awesome....

The Spells are over and over already done.... nothing original... just a bunch of knockback spells and a spell which causes either stun or slow (which bugs sometimes, so both buffs are applied).... and jumps in a weird arc.

Pulverize is nothing special either... just mass rock creation + damage...

Nothing at all that is original....

The Roll seems to do nothing, the unit stops infront of enemies...

I give you 3/5, because of the clear coding beside on club toss (can be massively improved by pre-initialising the dummies and the sfx).
 
What is so special on this I must ask? O,o Nothing that I or Paladon couldn't do.... so I have no idea why you call him so awesome....

The Spells are over and over already done.... nothing original... just a bunch of knockback spells and a spell which causes either stun or slow (which bugs sometimes, so both buffs are applied).... and jumps in a weird arc.

Pulverize is nothing special either... just mass rock creation + damage...

Nothing at all that is original....

The Roll seems to do nothing, the unit stops infront of enemies...

I give you 3/5, because of the clear coding beside on club toss (can be massively improved by pre-initialising the dummies and the sfx).

I agree with that:
-You and Palladon are better than me

The stun + cripple cant but 100% because that is 2 diferent buffs and spells. if that, then why the heck Blizzard made Storm Bolt and Cripple? Sounds realy stupid for me.

Wierd arc jumps? o_O wher you saw a jump spell?

Bunch of knockback? ! spell and one passive = 2 spells (2 is not a bunch -.-)

Pulverize... that is 2 special things
1st it split area in rings and cause damage within.
2nd effects are auto filled around. That means what that make nice sfx.

Roll is a very simple spell that have been added as COMBINATION for other Earth Panda spells (for god sake look triggers and documentation and not test see and criticism wrong).

The club toss is original because it randomize effect and bounce. Simple but it is creative add on I gues.

Passive spell was hard to create you know? that is no such a STACKING Armor reducing spell in warcraft. The originality is stacking and CHANCE
of effect. Coruption orb reduce armor always and it doesnt stack AND have orb effect. So my passive spell have no orb effect.

If you need AMIRCLE spell that no exist yet, dont wait it from me. Meaby that iis no such a spell like club toss or pulverize and you saw some functions like that. If you saw same functions and see combinations of them, it doesnt mean what spell is not creative. It give a CHOISE to user, so dont need to sit and work on combination of them.

EDIT: guys called me owesome because I helped them and I know more than they are. I dont need to create phisics or full screen inventory or keyboard movement system with every type of movement that have super duper modern camera.

Every person is looking diferent in eyes of others.
 
Level 21
Joined
Aug 9, 2006
Messages
2,384
You are getting me wrong, and yes, maybe the bounce I saw was a bug, I threw the club on a enemy, he changed the arc and flew into the outboundaries of the map, and seriously, I saw a unit get both buffs... maybe it got hit twice....

And you should write it in the tooltip of Roll, if it has some synergy, because I don't read everything in the whole trigger, just looked over it for leaks and such....

2 Knockback Spells are too much I think, no offense, but you should not make a stomp which knocksback, thats 1000000 times done.

I hope you get what I mean.... you should make more interesting spells, if you have no inspiration, I could give you a map with some... special spells inside (I don't show these many people...)...

(And sorry, the stuff about that I can do it too is nothing about you, my bad)
 
Level 31
Joined
May 3, 2008
Messages
3,155
Complains a lot, but does not show what must be corrected

redscores already mention what could be improve.

well, redscores... creating an original spells was rather though.. no matter how genuine a spells be.. it would often follow some specific theme such as ice, water, fire, jump, knockback,stun and etc etc.

Coming up with original idea for spells now a days can be consider almost impossible. :p
 
I hate how people complain for almost no reason about "THIS HAZ BEENZ DUN BE4! I RATEZ LOWER FOR YOUZ!"

It gets quite annoying, and it is also a good way to make people not want to do anything anymore.

If you have a bad remark concerning "This has been done" keep it to yourself, the person put his/her time into making what they did, and you should be kind enough not to bitch and complain about everything in it.

That is me comment on everything said by Septimus and redscores.

If you hav an issue with me, please keep to yourself.
 
Level 21
Joined
Aug 9, 2006
Messages
2,384
Mid, stop that, it is a part of being a spellmaker that you ALWAYS try to make something special and unique, beside when you got a request.... and you shouldn't talk, you could not even complete a single project....

And actually, I am not interested in your opinion, for me those are the things which are important for spells:

-Coding
-Originality
-Userfriendliness
-Synergy (only for heroes)

I do rate how I want, now get out.
 
Redscores... you just bited midnighters "you could not even complete a single project...".
Ok, people, stop this thing... Realy, rate it 3, rate it 1, dont rate, I dont care now, but other people are searching mostly for rating of spells. I gues idea dont must to get a factor of rating, because if a guy made Jump system... ehem Paladon for example... and I made same and with more modifications (hardly to think what I culd do this ^^) and people must to rate my stuff for lower rating because it was already done?

We are making same things because we GIVE A CHOISE to users. meaby someone dont need Z check in jump... meaby someone dont need vJass spells... meaby someone NEED it to be almost phisics... this is a CHOISE. Else users shuld sit and modify major pieces of code, that takes time and work.

Spell section have a lot of spells, that move hero at direction, but some of them work diferent. One spell finishes at casting point, other will move hero until all distance ends, an other one may do mamage when touch the unit, and just some of them (like mine) bounce on other casters while spell effect and stop moving when get unit on the way.
Someone may need this spell as it is, because at some fun map when he will use it, that is no damage to enemys. Or meaby this spell will be needed to him because he used an other spell that may combine with it. Or meaby... someone cant understand the spell of other guy and use an other one.

At last:
People creating same things to give a choise to users.
 
Mid, stop that, it is a part of being a spellmaker that you ALWAYS try to make something special and unique, beside when you got a request.... and you shouldn't talk, you could not even complete a single project....

And actually, I am not interested in your opinion, for me those are the things which are important for spells:

-Coding
-Originality
-Userfriendliness
-Synergy (only for heroes)

I do rate how I want, now get out.

You are just pissed off from a while back when I refused to finish your project.
 
That project was lost thanks to a computer crash, I cannot finish projects that are destroyed because of a mechanical failure.

You are basically saying I am a bad map maker, when that is quite untrue.

I have helped many people with many things, and it has helped them finish their maps, now stop trying to attack me personally.
 
Level 31
Joined
May 3, 2008
Messages
3,155
I hate how people complain for almost no reason about "THIS HAZ BEENZ DUN BE4! I RATEZ LOWER FOR YOUZ!"

It gets quite annoying, and it is also a good way to make people not want to do anything anymore.

If you have a bad remark concerning "This has been done" keep it to yourself, the person put his/her time into making what they did, and you should be kind enough not to bitch and complain about everything in it.

That is me comment on everything said by Septimus and redscores.

Before you accuse me of rating this spells lower cause it had been done before, please read my post properly. I merely telling redscores about spells originality was hard to come by and to nfwar about animation issues.

To top up with, i did't even rate it at all.

Stop accusing ppl for something they have not done. :p

And i suggest you and redscores to cooldown. :D
 
Level 11
Joined
Jan 25, 2009
Messages
572
redscores i really dont know what's the matter with you. When you wrote "you cant even finish a single project" or whatever you wrote to Midnighters, my eyes was light red. When i saw this reply of yours it made me so angry!
Do you actually think that Midnighters is proud of what happened to the project?!
No, i dont think you do. And nor do i. So... Now i ask you, WHY THE HELL DO YOU REPLY SUCH AN UNNECCESARY SENTECE!?!!
Don't you understand that you actually MAY have hurt his real feelings. He's self-confidence may also has been reduced because of this.
I require an excuse to Midnighters!
This may not be an big thing for you, but for me, if i would have been Midnighters, this would really have been hurting my feelings because there was so many that have look forward to this project of ours. And then, almost when it was finished, the project got lost of an Computer Crash and the only thing you do is to write stuffs that may have hurt Midnighters feelings.
There shall not be any problems for you to just say an easy sentence that is also over the internet, behind this screen, to apologyse Midnighters.
This was not mean't to be roude or something redscores, it was only that you need to think over the Consequence for both you and Midnighters before you do your Actions.

-Tom

This text was wrote to redscores
 
Level 1
Joined
Mar 6, 2010
Messages
4
Very nice spells! I just found one problem, I don't know if it was me, or the spell (I'm not great at triggering yet). With the Sumo Tactics passive ability, when does the armor penalty go away? Other than that, it is a great set of spells!
 
Very nice spells! I just found one problem, I don't know if it was me, or the spell (I'm not great at triggering yet). With the Sumo Tactics passive ability, when does the armor penalty go away? Other than that, it is a great set of spells!

Armor penalty have duration so it goes away when duration ends.
 
Top