• 🏆 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!

Cutting Edge v1.1b

Current version: 1.1
Language: GUI
Works with latest version: Yes
User friendly: Yes
Author: -BerZeKeR-

Give credits to:
D4RK_G4ND4LF
Me

images


Cutting Edge

Caster bursts into inner rage, rapidly attacking everything on his path, dealing damage and quickly moving towards the targeted point.

Level 1 - Deals up to 70 damage per unit, AoE 200 in distance of 900.
Level 2 - Deals up to 140 damage per unit, AoE 200 in distance of 900.
Level 3 - Deals up to 240 damage per unit, AoE 200 in distance of 900.



  • Cutting Edge
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Cutting Edge
    • Actions
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Getting the Spell constants --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • Set CE_Caster = (Triggering unit)
      • Set CE_Location = (Position of CE_Caster)
      • Set CE_Location2 = (Target point of ability being cast)
      • Set CE_Ability_Level = (Level of (Ability being cast) for CE_Caster)
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Setting the spell values --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • Set CE_Base_Damage = 10.00
      • Set CE_Total_Damage = (CE_Base_Damage x (Real(CE_Ability_Level)))
      • Set CE_Area_of_Effect = 200.00
      • Set CE_Destroy_Trees = True
      • -------- Set pathing to False, if you want your hero to move trough cliffs and doodads, note you can go off map, which could cause bugs, so I suggest you leave it to True --------
      • Set CE_Pathing_On = True
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Knockback Setings --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • Special Effect - Create a special effect attached to the weapon of CE_Caster using Abilities\Spells\Items\OrbCorruption\OrbCorruptionSpecialArt.mdl
      • Set CE_Special_Effect = (Last created special effect)
      • Special Effect - Create a special effect attached to the weapon of CE_Caster using Abilities\Weapons\PhoenixMissile\Phoenix_Missile_mini.mdl
      • Set CE_Special_Effect1 = (Last created special effect)
      • Set CE_Knock_Angle = (Angle from CE_Location to CE_Location2)
      • Set CE_Knock_Speed = 50.00
      • Set CE_Knock_Distance = 900.00
      • Hashtable - Save CE_Knock_Angle as (Key angle) of (Key (Triggering unit)) in CE_Knocktable
      • Hashtable - Save CE_Knock_Speed as (Key speed) of (Key (Triggering unit)) in CE_Knocktable
      • Hashtable - Save CE_Knock_Distance as (Key distance) of (Key (Triggering unit)) in CE_Knocktable
      • Hashtable - Save Handle OfCE_Caster as (Key caster) of (Key (Triggering unit)) in CE_Knocktable
      • Hashtable - Save Handle OfCE_Special_Effect as (Key sfx) of (Key (Triggering unit)) in CE_Knocktable
      • Hashtable - Save Handle OfCE_Special_Effect1 as (Key sfx1) of (Key (Triggering unit)) in CE_Knocktable
      • Animation - Change CE_Caster's animation speed to 1500.00% of its original speed
      • Unit - Turn collision for CE_Caster Off
      • Unit Group - Add CE_Caster to CE_Knock_Group
      • Trigger - Turn on Cutting Edge Knock <gen>
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Clearing leaks --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • Custom script: call RemoveLocation(udg_CE_Location)
      • Custom script: call RemoveLocation(udg_CE_Location2)
  • Cutting Edge Knock
    • Events
      • Time - Every 0.06 seconds of game time
    • Conditions
    • Actions
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Leave this actions as they are/// You can add change special effects but that's it --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • Unit Group - Pick every unit in CE_Knock_Group and do (Actions)
        • Loop - Actions
          • Set CE_Knock_Angle = (Load (Key angle) of (Key (Picked unit)) from CE_Knocktable)
          • Set CE_Knock_Speed = (Load (Key speed) of (Key (Picked unit)) from CE_Knocktable)
          • Set CE_Knock_Distance = (Load (Key distance) of (Key (Picked unit)) from CE_Knocktable)
          • Set CE_Caster = (Load (Key caster) of (Key (Picked unit)) in CE_Knocktable)
          • Set CE_Special_Effect = (Load (Key sfx) of (Key (Picked unit)) in CE_Knocktable)
          • Set CE_Special_Effect1 = (Load (Key sfx1) of (Key (Picked unit)) in CE_Knocktable)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CE_Knock_Distance Greater than 0.00
            • Then - Actions
              • Set CE_Knock_Loc1 = (Position of (Picked unit))
              • Set CE_Knock_Loc2 = (CE_Knock_Loc1 offset by CE_Knock_Speed towards CE_Knock_Angle degrees)
              • Set CE_Damage_Group = (Units within CE_Area_of_Effect of CE_Knock_Loc1 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) is an enemy of (Owner of (Picked unit))) Equal to True))))
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CE_Destroy_Trees Equal to True
                • Then - Actions
                  • Destructible - Pick every destructible within CE_Area_of_Effect of CE_Knock_Loc1 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
                          • Unit - Create 1 Peasant for (Owner of (Picked unit)) at CE_Knock_Loc1 facing Default building facing degrees
                          • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
                          • Unit - Hide (Last created unit)
                          • Unit - Order (Last created unit) to Harvest (Picked destructible)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Current order of (Last created unit)) Equal to (Order(harvest))
                            • Then - Actions
                              • Destructible - Kill (Picked destructible)
                            • Else - Actions
                        • Else - Actions
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CE_Pathing_On Equal to True
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Terrain pathing at CE_Knock_Loc2 of type Walkability is off) Equal to True
                    • Then - Actions
                      • Unit - Turn collision for CE_Caster On
                      • Animation - Reset (Picked unit)'s animation
                      • Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
                      • Special Effect - Destroy CE_Special_Effect
                      • Special Effect - Destroy CE_Special_Effect1
                      • Custom script: call RemoveLocation(udg_CE_Knock_Loc1)
                      • Custom script: call RemoveLocation(udg_CE_Knock_Loc2)
                      • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in CE_Knocktable
                      • Unit Group - Remove (Picked unit) from CE_Knock_Group
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Number of units in CE_Knock_Group) Equal to 0
                        • Then - Actions
                          • Trigger - Turn off Cutting Edge Knock <gen>
                        • Else - Actions
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Picked unit) is dead) Equal to True
                        • Then - Actions
                          • Unit - Turn collision for CE_Caster On
                          • Animation - Reset (Picked unit)'s animation
                          • Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
                          • Special Effect - Destroy CE_Special_Effect
                          • Special Effect - Destroy CE_Special_Effect1
                          • Custom script: call RemoveLocation(udg_CE_Knock_Loc1)
                          • Custom script: call RemoveLocation(udg_CE_Knock_Loc2)
                          • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in CE_Knocktable
                          • Unit Group - Remove (Picked unit) from CE_Knock_Group
                        • Else - Actions
                          • Unit - Move (Picked unit) instantly to CE_Knock_Loc2
                          • Unit - Make (Picked unit) face CE_Knock_Angle over 0.00 seconds
                          • Animation - Play (Picked unit)'s attack animation
                          • Unit - Create 1 Dummy for (Owner of (Picked unit)) at CE_Knock_Loc2 facing CE_Knock_Angle degrees
                          • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
                          • Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 85.00% transparency
                          • Animation - Change (Last created unit)'s animation speed to 200.00% of its original speed
                          • Animation - Play (Last created unit)'s attack animation
                          • Unit Group - Pick every unit in CE_Damage_Group and do (Actions)
                            • Loop - Actions
                              • Unit - Cause CE_Caster to damage (Picked unit), dealing CE_Total_Damage damage of attack type Spells and damage type Unknown
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Random integer number between 1 and 100) Less than 33
                                • Then - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Random integer number between 1 and 100) Less than or equal to 50
                                    • Then - Actions
                                      • Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Critters\Albatross\CritterBloodAlbatross.mdl
                                      • Special Effect - Destroy (Last created special effect)
                                    • Else - Actions
                                      • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                                      • Special Effect - Destroy (Last created special effect)
                                • Else - Actions
                          • Hashtable - Save (CE_Knock_Distance - CE_Knock_Speed) as (Key distance) of (Key (Picked unit)) in CE_Knocktable
                          • Custom script: call RemoveLocation(udg_CE_Knock_Loc1)
                          • Custom script: call RemoveLocation(udg_CE_Knock_Loc2)
                          • Custom script: call DestroyGroup(udg_CE_Damage_Group)
                • Else - Actions
                  • Unit - Move (Picked unit) instantly to CE_Knock_Loc2
                  • Unit - Make (Picked unit) face CE_Knock_Angle over 0.00 seconds
                  • Animation - Play (Picked unit)'s attack animation
                  • Unit - Create 1 Dummy for (Owner of (Picked unit)) at CE_Knock_Loc2 facing CE_Knock_Angle degrees
                  • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
                  • Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 85.00% transparency
                  • Animation - Change (Last created unit)'s animation speed to 200.00% of its original speed
                  • Animation - Play (Last created unit)'s attack animation
                  • Unit Group - Pick every unit in CE_Damage_Group and do (Actions)
                    • Loop - Actions
                      • Unit - Cause CE_Caster to damage (Picked unit), dealing CE_Total_Damage damage of attack type Spells and damage type Unknown
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Random integer number between 1 and 100) Less than 33
                        • Then - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Random integer number between 1 and 100) Less than or equal to 50
                            • Then - Actions
                              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Critters\Albatross\CritterBloodAlbatross.mdl
                              • Special Effect - Destroy (Last created special effect)
                            • Else - Actions
                              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                              • Special Effect - Destroy (Last created special effect)
                        • Else - Actions
                  • Hashtable - Save (CE_Knock_Distance - CE_Knock_Speed) as (Key distance) of (Key (Picked unit)) in CE_Knocktable
                  • Custom script: call RemoveLocation(udg_CE_Knock_Loc1)
                  • Custom script: call RemoveLocation(udg_CE_Knock_Loc2)
                  • Custom script: call DestroyGroup(udg_CE_Damage_Group)
            • Else - Actions
              • Unit - Turn collision for CE_Caster On
              • Animation - Reset (Picked unit)'s animation
              • Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
              • Special Effect - Destroy CE_Special_Effect
              • Special Effect - Destroy CE_Special_Effect1
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in CE_Knocktable
              • Unit Group - Remove (Picked unit) from CE_Knock_Group
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in CE_Knock_Group) Equal to 0
                • Then - Actions
                  • Trigger - Turn off Cutting Edge Knock <gen>
                • Else - Actions
Updates:
v1.1:
-fixed the the thing when caster dies
-fixed destroy trees (thanks to D4RK_G4ND4LF'S for his original idea)
-Added a boolean for destroy trees on/off
v1.1a:
-fixed one line, nothing serious
v1.1b:
-added a boolean, which allows you to make your hero move trough cliffs


Keywords:
cutting, edge, blade, slash, cut, slam, rapid, quickly, move, knock, back, line, damage
Contents

Cutting Edge (Map)

Reviews
10:12, 30th Jan 2010 TriggerHappy: The coding seemed fine but the effect was pretty generic just a slide 'n slash. Though It could be useful and I see people using this spell.

Moderator

M

Moderator

10:12, 30th Jan 2010
TriggerHappy:

The coding seemed fine but the effect was pretty generic just a slide 'n slash. Though It could be useful and I see people using this spell.
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
when you set the damage group and if the path is not "walkable" it is set for nothing and destroyed so set it in the else actions and destroy action too :)

also isnt it possible for units to take more than 70 damage at lvl 1? as the aoe is 200 and speed 50 wouldnt it be less or more ...

the aoe of destroying trees should be the same as the aoe of the spell ;)
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
A couple of comment about the triggers:

You have these in both THEN and ELSE branches:
  • Custom script: call RemoveLocation(udg_CE_Knock_Loc1)
  • Custom script: call RemoveLocation(udg_CE_Knock_Loc2)
You could delete them and add them to after the IF/THEN/ELSE since they get called anyway. It will save you two lines of code :)

Also when you check the terrain pathability, and walkability is off and the unit should be removed from the group. Save -1 as the knockback distance so the unit fails the "greater than 0" check at the beginning, and gets removed from the group during the next loop. Then you can remove some of that redundant code.

You can replace these:
  • Unit - Turn collision for CE_Caster On
  • Animation - Reset (Picked unit)'s animation
  • Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
  • Special Effect - Destroy CE_Special_Effect
  • Special Effect - Destroy CE_Special_Effect1
  • Custom script: call RemoveLocation(udg_CE_Knock_Loc1)
  • Custom script: call RemoveLocation(udg_CE_Knock_Loc2)
  • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in CE_Knocktable
  • Unit Group - Remove (Picked unit) from CE_Knock_Group
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Number of units in CE_Knock_Group) Equal to 0
  • Then - Actions
  • Trigger - Turn off Cutting Edge Knock <gen>
  • Else - Actions
With this:
  • Hashtable - Save -1 as (Key distance) of (Key (Picked unit)) in CE_Knocktable
in the middle of the trigger.

These changes don't really change the spell, just reduce the amount of code :)
 
Level 4
Joined
Oct 6, 2009
Messages
85
can you make an ability like in this video ://www.youtube.com/watch?v=TkJbYe5h6_M plsssss. make one ^^ cause im going to put it in my map and i dont know how to make like that ability in the video and im just new in triggering spells
 
Level 3
Joined
Mar 29, 2009
Messages
23
Can you make it so the blademaster will keep going off a hill, i put skill in my map and if i cast it while i'm up on this hill and targeted point is somewhere below, it will go until it reaches end of cliff and not past cliff, if you coulf fix this i give +rep and 5/5

Great spell, i love it! thanks

-GhoST-
 
Level 3
Joined
Mar 29, 2009
Messages
23
I tried that and then the blademaster would not move/attack but would constantly change animation and have the phoenix missile attached to him forever, i could move him around but he wouldnt do the skill, it would constantly be on lol, I tried that before i posted so thats why I posted cause i couldnt get it 2 work, sorry if i'm hard to understand lol
 
Level 13
Joined
Mar 13, 2010
Messages
1,172
Wow, this is definately one of my favorite spells. cool name, cool discription, and the spell itself is just awsome! 5/5
 
Level 8
Joined
Jul 14, 2010
Messages
235
Nice spell. But I have a problem ._.
I have copied all the triggers, units, variables etc. attached to Cutting Edge.
But in my map, when I click the spell, it just add the "phoenix missile" Special Effect to my weapon, and nothing else happens. The special effect on my weapon doesnt go away either, it will stack, the more you click the spell. Thanks.

- aiDer
 
Top