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

Kawaii Spell Workshop

Status
Not open for further replies.
Level 10
Joined
Jun 9, 2012
Messages
826
Ok thanks Mal. Here the item request.

Pendant of Essence

DDS: GDD
Code Type: GUI
Spell Type: Item
Target Type: Instant
Area of Effect: 1200
Number of Levels: -
Mana Cost: -
Cooldown: 3
In-game Description: A magical pendant that collects the remnant of nearby magic produced by enemies. The very pendant then turns the remnant stored into positive restoring energy when needed. This pendant was also used in the previous War of the Magi due to its efficiency in mage wars.

Bonuses:
- + 15 hit points and mana points for each essence collected.
- + Maximum of 15 charges.
How the spell works: Whenever an enemy hero casts a spell within 1200 AoE, whoever who is the enemy of the hero and has this item (Pendant of Essence) will collect a charge. The charge has a limit of 15. When used, all charges will be used and each restore 15 hp and 15 mana. There is no cooldown to the collection of charges.
 
Level 13
Joined
Mar 24, 2013
Messages
1,105
Mass Hex

DDS: N/A
Code Type: GUI
Spell Type: Hero
Target Type: Target Point
Area of Effect: 300
Number of Levels: 4
Mana Cost: 100/120/130/140
Cooldown: 15
In-game Description: N/A
How the spell works: all the units on the target point will be hex for 1/2/3/4 seconds
Sink

DDS: N/A
Code Type: GUI
Spell Type: Hero
Target Type: Target Point
Area of Effect: 400
Number of Levels: 4
Mana Cost: 100/110/120/130
Cooldown: 15
In-game Description: Creates an abyss upon a chosen parameter, pulling in and damaging foes in the area.

How the spell works: it suck all enemy units on 400 AOE of the target area,Drags units over 0.4 seconds before dealing damage.


I'll do these. 1st one should be simple, On the 2nd one, it should take the unit .4 seconds to get there no matter the distance? Should the unit be able to cast things while being pulled? (Aka should they be silenced/stunned?)
 
Level 13
Joined
Mar 24, 2013
Messages
1,105
My bad, got busy and didn't upload.

Here it is!

  • Sink Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Sink_PullEffect = Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
      • -------- AoE --------
      • Set Sink_AoE = 400.00
      • -------- Damage Per Level --------
      • Set SinkDamageBase[1] = 50.00
      • Set SinkDamageBase[2] = 75.00
      • Set SinkDamageBase[3] = 100.00
      • Set SinkDamageBase[4] = 150.00
      • -------- Types --------
      • Set Sink_AttackType = Spells
      • Set Sink_DamageType = Universal
      • -------- How Close should they before the spell "ends" --------
      • Set Sink_Threshold = 50.00
      • -------- Speed of pull --------
      • Set Sink_Speed = 800.00
      • -------- Dont Change below --------
      • Set Sink_SpeedInterval = (Sink_Speed x 0.03)
  • Sink Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Sink
    • Actions
      • Set TempPoint = (Target point of ability being cast)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Playable map area) contains TempPoint) Equal to True
        • Then - Actions
          • Set Sink_MaxIndex = (Sink_MaxIndex + 1)
          • Set Sink_Caster[Sink_MaxIndex] = (Triggering unit)
          • Set Sink_Point[Sink_MaxIndex] = (Target point of ability being cast)
          • Set SinkDamage[Sink_MaxIndex] = SinkDamageBase[(Level of Sink for Sink_Caster[Sink_MaxIndex])]
          • Unit - Create 1 Abyss for (Owner of Sink_Caster[Sink_MaxIndex]) at TempPoint facing Default building facing degrees
          • Set Sink_Dummy[Sink_MaxIndex] = (Last created unit)
          • Set TempGroup = (Units within Sink_AoE of TempPoint)
          • Custom script: set udg_Sink_Group[udg_Sink_MaxIndex] = CreateGroup()
          • Unit Group - Pick every unit in TempGroup and do (Actions)
            • Loop - Actions
              • Set TempUnit = (Picked unit)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (TempUnit is A structure) Equal to False
                  • (TempUnit is alive) Equal to True
                  • (TempUnit belongs to an enemy of (Owner of Sink_Caster[Sink_MaxIndex])) Equal to True
                • Then - Actions
                  • Unit Group - Add TempUnit to Sink_Group[Sink_MaxIndex]
                  • Custom script: call SetUnitPropWindow(udg_TempUnit, 0)
                • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Sink_MaxIndex Equal to 1
            • Then - Actions
              • Trigger - Turn on Sink Loop <gen>
            • Else - Actions
          • Custom script: call DestroyGroup(udg_TempGroup)
        • Else - Actions
      • Custom script: call RemoveLocation(udg_TempPoint)
  • Sink Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Sink_CurrentIndex) from 1 to Sink_MaxIndex, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Sink_Group[Sink_CurrentIndex] is empty) Equal to False
            • Then - Actions
              • Custom script: call QueueUnitAnimation(udg_Sink_Dummy[udg_Sink_CurrentIndex], "birth")
              • Unit Group - Pick every unit in Sink_Group[Sink_CurrentIndex] and do (Actions)
                • Loop - Actions
                  • Set TempUnit = (Picked unit)
                  • Set TempPoint = (Position of TempUnit)
                  • Set TempInteger = (Random integer number between 1 and 2)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • TempInteger Equal to 1
                    • Then - Actions
                      • Special Effect - Create a special effect at TempPoint using Sink_PullEffect
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Distance between Sink_Point[Sink_CurrentIndex] and TempPoint) Greater than or equal to Sink_Threshold
                    • Then - Actions
                      • Set TempReal = (Angle from Sink_Point[Sink_CurrentIndex] to TempPoint)
                      • Custom script: call SetUnitX(udg_TempUnit, GetUnitX(udg_TempUnit) - udg_Sink_SpeedInterval * Cos(bj_DEGTORAD * udg_TempReal))
                      • Custom script: call SetUnitY(udg_TempUnit, GetUnitY(udg_TempUnit) - udg_Sink_SpeedInterval * Sin(bj_DEGTORAD * udg_TempReal))
                    • Else - Actions
                      • Custom script: call SetUnitPropWindow(udg_TempUnit, 1)
                      • Unit - Cause Sink_Dummy[Sink_CurrentIndex] to damage TempUnit, dealing SinkDamage[Sink_CurrentIndex] damage of attack type Sink_AttackType and damage type Sink_DamageType
                      • Unit Group - Remove TempUnit from Sink_Group[Sink_CurrentIndex]
                  • Custom script: call RemoveLocation(udg_TempPoint)
            • Else - Actions
              • Unit - Kill Sink_Dummy[Sink_CurrentIndex]
              • Custom script: call DestroyGroup(udg_Sink_Group[udg_Sink_CurrentIndex])
              • Custom script: call RemoveLocation(udg_Sink_Point[udg_Sink_CurrentIndex])
              • Set Sink_Caster[Sink_CurrentIndex] = Sink_Caster[Sink_MaxIndex]
              • Set Sink_Dummy[Sink_CurrentIndex] = Sink_Dummy[Sink_MaxIndex]
              • Set Sink_Group[Sink_CurrentIndex] = Sink_Group[Sink_MaxIndex]
              • Set Sink_Point[Sink_CurrentIndex] = Sink_Point[Sink_MaxIndex]
              • Set Sink_CurrentIndex = (Sink_CurrentIndex - 1)
              • Set Sink_MaxIndex = (Sink_MaxIndex - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Sink_MaxIndex Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
  • Mass Hex
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Mass Hex
    • Actions
      • Set TempPoint = (Target point of ability being cast)
      • Set TempUnit = (Triggering unit)
      • Set TempGroup = (Units within 300.00 of TempPoint)
      • Unit - Create 1 Dummy for (Owner of TempUnit) at TempPoint facing Default building facing degrees
      • Set TempUnit2 = (Last created unit)
      • Unit - Add a 1.00 second Generic expiration timer to TempUnit2
      • Unit - Add Hex to TempUnit2
      • Unit - Set level of Hex for TempUnit2 to (Level of Mass Hex for TempUnit)
      • Unit Group - Pick every unit in TempGroup and do (Actions)
        • Loop - Actions
          • Set TempUnit3 = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (TempUnit3 is A structure) Equal to False
              • (TempUnit3 is alive) Equal to True
              • (TempUnit3 belongs to an enemy of (Owner of TempUnit)) Equal to True
            • Then - Actions
              • Unit - Order TempUnit2 to Orc Shadow Hunter - Hex TempUnit3
            • Else - Actions
      • Custom script: call DestroyGroup(udg_TempGroup)
      • Custom script: call RemoveLocation(udg_TempPoint)
 

Attachments

  • Sink and MassHex.w3x
    24.3 KB · Views: 65
Level 8
Joined
Apr 17, 2013
Messages
381
Draenei Realm

DDS: i dont know if needed
Code Type: GUI
Spell Type: Hero
Target Type: Instant
Area of Effect: 0
Number of Levels: 3
Mana Cost: 300
Cooldown: 70
In-game Description: N/A
How the spell works: Creates a haunting image beside each enemy hero. These images are uncontrollable, take 200% damage, deal 70% damage and each of them will attack only its pair.
 
Level 23
Joined
Oct 20, 2012
Messages
3,076
Draenei Realm

DDS: i dont know if needed
Code Type: GUI
Spell Type: Hero
Target Type: Instant
Area of Effect: 0
Number of Levels: 3
Mana Cost: 300
Cooldown: 70
In-game Description: N/A
How the spell works: Creates a haunting image beside each enemy hero. These images are uncontrollable, take 200% damage, deal 70% damage and each of them will attack only its pair.


Someone here is renaming a lot of dota spells. :3

@Malhorne, read the ultimate skill. http://www.playdota.com/heroes/spectre
 
Level 13
Joined
Mar 24, 2013
Messages
1,105
@chob
It's magic wand

@Edge
That spell is quite simple, it kind of be a waste to even upload it.
Just give your caster the roar ability that gives the armor and damage increase you want. Then on cast spawn a dummy have it cast a different roar that reduces the enemy units by your damage and armor factor. Don't forget to give the dummy an expiration time., set the level of the dummy's to the caster's, and remove the location.
 
Level 4
Joined
Apr 9, 2013
Messages
45
note: this is a spell pack for the GUI team.

Tracking Mine

DDS: none
Code Type: GUI
Spell Type: Hero
Target Type: Target Point
Area of Effect: 250
Number of Levels: 1
Mana Cost: 0
Cooldown: 5
In-game Description: The Gnoll Bounty Hunter seeks his targets through a scent that he leaves on them, the best way to attach that scent to them without him getting near them is to put it in a trap. He sets a 250 AoE land mine that does not damage the target but attaches a buff, "Track", on it for 60 seconds and the unit that has this buff will be visible to the Gnoll Bounty Hunter until the buff is either removed or expired.
How the spell works: Puts a land mine that adds a buff on all units that is inside it's AoE when it's triggered. The buff lasts for 60 seconds, the buff can only be removed by a certain skill or when 60 seconds is over. The land mine is invisible to the enemy but is visible to the caster, visibility radius is 150 AoE both night and day. The land mine lasts for 3 minutes. Maximum number of mines that can be placed is 20, but if, for example you placed 1 mine and you have 19 charges left and an enemy unit stepped on your planted mine your total number of charges will increase depending on how many mines were stepped on/triggered thus your 19 charges will be 20 again. The land mine has 0.95 seconds until it explodes/triggers.
Desolating strike

DDS: none
Code Type: GUI
Spell Type: Hero
Target Type: Single Target
Area of Effect:
Number of Levels: 1
Mana Cost: 0
Cooldown: 5
In-game Description: The Gnoll bounty hunter hacks and slash any unit it comes encounter with, dealing 3x his agility to the target unit. When the target unit has the ''Track buff'' the Gnoll deals extra 200 backstab damage.
How the spell works: This spell is simple, It is a single target spell when used on an enemy the caster deals damage equal to 3x the caster's agility, but when the target has the "track" buff from the spell "Tracking mine" the caster deals 3x his agility + 200 bonus backstab damage and removes the "Track" buff from the target.
Eliminate Target

DDS: none
Code Type: GUI
Spell Type: Hero
Target Type: Single Target
Area of Effect:
Number of Levels: 1
Mana Cost: 0
Cooldown: 10
In-game Description: Gnoll bounty hunter cannot endure his thirst for blood and wants to finally eliminate his target. Deals 200 backstab damage and knocks back the target when the target's HP is above 35%, but if the target's HP is below or equal to 35% then the target will die immediately.

How the spell works: Targets an enemy and deals 200 backstab damage when the HP of the target is above 35% but when the target's HP is below 35% the caster kills the target immediately.
Blood Lust

DDS: none
Code Type: GUI
Spell Type: Hero
Target Type: Passive
Area of Effect: 1000
Number of Levels: 1
Mana Cost: 0
Cooldown:
In-game Description: The Gnoll bounty hunter can smell blood at a distance and when he does his adrenaline pumps through his veins and gains 50% bonus speed but when an enemy unit is out of range he loses his bonus speed.

How the spell works: When an enemy unit enters a 1000 AoE around the caster, the caster gains 50% bonus speed and when there's no enemy unit within 1000 AoE around the caster then the caster loses the 50% bonus speed.
This is a Spell Pack, I hope it's ok with you guys. :))
 
Last edited:
Level 13
Joined
Mar 24, 2013
Messages
1,105
note: this is a spell pack for the GUI team.

Tracking Mine

DDS: none
Code Type: GUI
Spell Type: Hero
Target Type: Target Point
Area of Effect: 250
Number of Levels: 1
Mana Cost: 0
Cooldown: 5
In-game Description: The Gnoll Bounty Hunter seeks his targets through a scent that he leaves on them, the best way to attach that scent to them without him getting near them is to put it in a trap. He sets a 250 AoE land mine that does not damage the target but attaches a buff, "Track", on it for 60 seconds and the unit that has this buff will be visible to the Gnoll Bounty Hunter until the buff is either removed or expired.
How the spell works: Puts a land mine that adds a buff on all units that is inside it's AoE when it's triggered. The buff lasts for 60 seconds, the buff can only be removed by a certain skill or when 60 seconds is over. The land mine is invisible to the enemy but is visible to the caster, visibility radius is 150 AoE both night and day. The land mine lasts for 3 minutes. Maximum number of mines that can be placed is 20, but if, for example you placed 1 mine and you have 19 charges left and an enemy unit stepped on your planted mine your total number of charges will increase depending on how many mines were stepped on/triggered thus your 19 charges will be 20 again. The land mine has 0.95 seconds until it explodes/triggers.
Desolating strike

DDS: none
Code Type: GUI
Spell Type: Hero
Target Type: Single Target
Area of Effect:
Number of Levels: 1
Mana Cost: 0
Cooldown: 5
In-game Description: The Gnoll bounty hunter hacks and slash any unit it comes encounter with, dealing 3x his agility to the target unit. When the target unit has the ''Track buff'' the Gnoll deals extra 200 backstab damage.
How the spell works: This spell is simple, It is a single target spell when used on an enemy the caster deals damage equal to 3x the caster's agility, but when the target has the "track" buff from the spell "Tracking mine" the caster deals 3x his agility + 200 bonus backstab damage and removes the "Track" buff from the target.
Eliminate Target

DDS: none
Code Type: GUI
Spell Type: Hero
Target Type: Single Target
Area of Effect:
Number of Levels: 1
Mana Cost: 0
Cooldown: 10
In-game Description: Gnoll bounty hunter cannot endure his thirst for blood and wants to finally eliminate his target. Deals 200 backstab damage and knocks back the target when the target's HP is above 35%, but if the target's HP is below or equal to 35% then the target will die immediately.

How the spell works: Targets an enemy and deals 200 backstab damage when the HP of the target is above 35% but when the target's HP is below 35% the caster kills the target immediately.
Blood Lust

DDS: none
Code Type: GUI
Spell Type: Hero
Target Type: Passive
Area of Effect: 1000
Number of Levels: 1
Mana Cost: 0
Cooldown:
In-game Description: The Gnoll bounty hunter can smell blood at a distance and when he does his adrenaline pumps through his veins and gains 50% bonus speed but when an enemy unit is out of range he loses his bonus speed.

How the spell works: When an enemy unit enters a 1000 AoE around the caster, the caster gains 50% bonus speed and when there's no enemy unit within 1000 AoE around the caster then the caster loses the 50% bonus speed.
This is a Spell Pack, I hope it's ok with you guys. :))

Should I be using Faerie Fire for the Track spell? It gives sight and is dispelled by Purge and I think (Dispel Magic/Devour Magic/Disenchant)?

Is the tracking mine visible under True Sight?

On the 3rd spell, How fast should it be knocked back? Destroy trees? How far back?

On 4th spell, What kind of speed? Attack and Movement? Only 1?
 
Last edited:
Level 4
Joined
Apr 9, 2013
Messages
45
Should I be using Faerie Fire for the Track spell? It gives sight and is dispelled by Purge and I think (Dispel Magic/Devour Magic/Disenchant)?

Is the tracking mine visible under True Sight?

On the 3rd spell, How fast should it be knocked back? Destroy trees? How far back?

On 4th spell, What kind of speed? Attack and Movement? Only 1?
1. Yes you should use faerie fire.
2. Tracking mine is visible under true sight.
3. it's up to you how fast, not too fast but not too slow, ok?, and yes it destroys trees. The KB distance is 300 units
4. Movement speed, give is 75 bonus movespeed.

anymore questions?
 
Level 13
Joined
Mar 24, 2013
Messages
1,105
chronos request:

  • Tracking Mine Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Delay between trigger and track applied --------
      • Set TM_DelayExplosion = 0.95
      • -------- How many mines can a player have? --------
      • Set TM_MaxMineCount = 20
      • -------- How long should mines last? --------
      • Set TM_TimedLife = 180.00
      • -------- How close does a unit need to come to explode/be tracked? --------
      • Set TM_MineSearchAoE = 250.00
  • Tracking Mine Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Tracking Mine
    • Actions
      • Set TempPlayer = (Triggering player)
      • Set TempGroup = (Units owned by TempPlayer)
      • Set TempInteger = 0
      • Unit Group - Pick every unit in TempGroup and do (Actions)
        • Loop - Actions
          • Set TempUnit = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (TempUnit is alive) Equal to True
              • (Unit-type of TempUnit) Equal to Tracking Mine
            • Then - Actions
              • Set TempInteger = (TempInteger + 1)
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • TempInteger Less than TM_MaxMineCount
        • Then - Actions
          • Set TM_MaxIndex = (TM_MaxIndex + 1)
          • Set TM_Caster[TM_MaxIndex] = (Triggering unit)
          • Set TempLoc = (Target point of ability being cast)
          • Set TM_ShouldExplode[TM_MaxIndex] = False
          • Unit - Create 1 Tracking Mine for TempPlayer at TempLoc facing Default building facing degrees
          • Set TM_Mine[TM_MaxIndex] = (Last created unit)
          • Unit - Add a TM_TimedLife second Generic expiration timer to TM_Mine[TM_MaxIndex]
          • Set TM_ExplosionTimer[TM_MaxIndex] = TM_DelayExplosion
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TM_MaxIndex Equal to 1
            • Then - Actions
              • Trigger - Turn on Tracking Mine Loop <gen>
            • Else - Actions
          • Custom script: call RemoveLocation(udg_TempLoc)
        • Else - Actions
          • Set TempForce = (Player group(TempPlayer))
          • Game - Display to TempForce the text: Already 20 mines pl...
          • Custom script: call DestroyForce(udg_TempForce)
      • Custom script: call DestroyGroup(udg_TempGroup)
  • Tracking Mine Loop
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • For each (Integer TM_CurrentIndex) from 1 to TM_MaxIndex, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TM_ShouldExplode[TM_CurrentIndex] Equal to True
            • Then - Actions
              • Set TM_ExplosionTimer[TM_CurrentIndex] = (TM_ExplosionTimer[TM_CurrentIndex] - 0.05)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TM_ExplosionTimer[TM_CurrentIndex] Less than or equal to 0.00
                • Then - Actions
                  • Set TempLoc = (Position of TM_Mine[TM_CurrentIndex])
                  • Unit - Create 1 Dummy for (Owner of TM_Caster[TM_CurrentIndex]) at TempLoc facing Default building facing degrees
                  • Set TempUnit = (Last created unit)
                  • Unit - Add Track to TempUnit
                  • Unit - Add a 1.00 second Generic expiration timer to TempUnit
                  • Set TempGroup = (Units within TM_MineSearchAoE of TempLoc)
                  • Unit Group - Pick every unit in TempGroup and do (Actions)
                    • Loop - Actions
                      • Set TempUnit2 = (Picked unit)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (TempUnit2 is alive) Equal to True
                          • (TempUnit2 belongs to an enemy of (Owner of TM_Caster[TM_CurrentIndex])) Equal to True
                        • Then - Actions
                          • Unit - Order TempUnit to Night Elf Druid Of The Talon - Faerie Fire TempUnit2
                        • Else - Actions
                  • Unit - Kill TM_Mine[TM_CurrentIndex]
                  • Custom script: call RemoveLocation(udg_TempLoc)
                  • Custom script: call DestroyGroup(udg_TempGroup)
                  • Set TM_Caster[TM_CurrentIndex] = TM_Caster[TM_MaxIndex]
                  • Set TM_Mine[TM_CurrentIndex] = TM_Mine[TM_MaxIndex]
                  • Set TM_ExplosionTimer[TM_CurrentIndex] = TM_ExplosionTimer[TM_MaxIndex]
                  • Set TM_ShouldExplode[TM_CurrentIndex] = TM_ShouldExplode[TM_MaxIndex]
                  • Set TM_CurrentIndex = (TM_CurrentIndex - 1)
                  • Set TM_MaxIndex = (TM_MaxIndex - 1)
                • Else - Actions
            • Else - Actions
              • Set TempLoc = (Position of TM_Mine[TM_CurrentIndex])
              • Set TempGroup = (Units within TM_MineSearchAoE of TempLoc)
              • Unit Group - Pick every unit in TempGroup and do (Actions)
                • Loop - Actions
                  • Set TempUnit = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (TempUnit is alive) Equal to True
                      • (TempUnit belongs to an enemy of (Owner of TM_Caster[TM_CurrentIndex])) Equal to True
                    • Then - Actions
                      • Set TM_ShouldExplode[TM_CurrentIndex] = True
                    • Else - Actions
              • Custom script: call RemoveLocation(udg_TempLoc)
  • Desolating Strike Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- When unit has Track buff, how much extra damage --------
      • Set DS_BonusDamage = 200
      • -------- Types --------
      • Set DS_AttackType = Spells
      • Set DS_DamageType = Universal
  • Desolating Stike Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Desolating Strike
    • Actions
      • Set TempUnit = (Triggering unit)
      • Set TempUnit2 = (Target unit of ability being cast)
      • Set TempInteger = ((Agility of TempUnit (Include bonuses)) x 3)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (TempUnit2 has buff Track ) Equal to True
        • Then - Actions
          • Set TempInteger = (TempInteger + 200)
          • Unit - Remove Track buff from TempUnit2
        • Else - Actions
      • Set TempReal = (Real(TempInteger))
      • Unit - Cause TempUnit to damage TempUnit2, dealing TempReal damage of attack type DS_AttackType and damage type DS_DamageType
      • Floating Text - Create floating text that reads ((String(TempReal)) + !) above TempUnit with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
      • Set TempFT = (Last created floating text)
      • Floating Text - Set the velocity of TempFT to 64.00 towards 90.00 degrees
      • Floating Text - Change TempFT: Disable permanence
      • Floating Text - Change the lifespan of TempFT to 2.50 seconds
  • Eliminate Target Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- How Fast is the unit knocked back --------
      • Set ET_Speed = 600.00
      • -------- How Far should the unit be knocked --------
      • Set ET_TotalDistance = 800.00
      • -------- Regular Damage done when not an instant kill --------
      • Set ET_Damage = 200.00
      • -------- How big of an AoE should Trees be destroyed when unit is knocked back --------
      • Set ET_TreeDestructionAoE = 125.00
      • -------- Types --------
      • Set ET_AttackType = Spells
      • Set ET_DamageType = Universal
      • -------- Slide Effect (Shows the unit is being knockbacked) --------
      • Set ET_SlideEffect = Abilities\Spells\Human\Polymorph\PolyMorphDoneGround.mdl
      • -------- In % what should be an Instant kill --------
      • Set ET_InstantKillThreshold = 35.00
      • -------- Leave below. --------
      • Set ET_SpeedInterval = (ET_Speed x 0.03)
      • Custom script: set udg_ET_TreeDestroyer = CreateUnit (Player(15), 'hpea', 0,0,0)
      • Custom script: call UnitAddAbility(udg_ET_TreeDestroyer, 'Aloc')
      • Unit - Hide ET_TreeDestroyer
      • Set ET_Distance = (ET_TotalDistance / ET_SpeedInterval)
  • Eliminate Target Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Eliminate Target
    • Actions
      • Set TempUnit = (Triggering unit)
      • Set TempUnit2 = (Target unit of ability being cast)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Percentage life of TempUnit2) Less than or equal to ET_InstantKillThreshold
        • Then - Actions
          • Unit - Remove All buffs from TempUnit2
          • Unit - Cause TempUnit to damage TempUnit2, dealing 1000000000.00 damage of attack type Chaos and damage type Universal
        • Else - Actions
          • Set ET_MaxIndex = (ET_MaxIndex + 1)
          • Set ET_Caster[ET_MaxIndex] = TempUnit
          • Set ET_Target[ET_MaxIndex] = TempUnit2
          • Set TempLoc = (Position of TempUnit)
          • Set TempLoc2 = (Position of TempUnit2)
          • Unit - Cause TempUnit to damage TempUnit2, dealing ET_Damage damage of attack type ET_AttackType and damage type ET_DamageType
          • Set ET_Counter[ET_MaxIndex] = ET_Distance
          • Custom script: call SetUnitPropWindow(udg_ET_Target[udg_ET_CurrentIndex], 0)
          • Set ET_Angle[ET_MaxIndex] = (Angle from TempLoc to TempLoc2)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ET_MaxIndex Equal to 1
            • Then - Actions
              • Trigger - Turn on Eliminate Target Loop <gen>
            • Else - Actions
          • Custom script: call RemoveLocation(udg_TempLoc)
          • Custom script: call RemoveLocation(udg_TempLoc2)
  • Eliminate Target Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer ET_CurrentIndex) from 1 to ET_MaxIndex, do (Actions)
        • Loop - Actions
          • Set ET_Counter[ET_CurrentIndex] = (ET_Counter[ET_CurrentIndex] - 1.00)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ET_Counter[ET_CurrentIndex] Greater than or equal to 0.00
            • Then - Actions
              • Set TempLoc = (Position of ET_Target[ET_CurrentIndex])
              • Special Effect - Create a special effect at TempLoc using ET_SlideEffect
              • Special Effect - Destroy (Last created special effect)
              • Set TempLoc2 = (TempLoc offset by ET_SpeedInterval towards ET_Angle[ET_CurrentIndex] degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Playable map area) contains TempLoc2) Equal to True
                  • (Terrain pathing at TempLoc2 of type Flyability is off) Equal to False
                • Then - Actions
                  • Custom script: call SetUnitX(udg_ET_Target[udg_ET_CurrentIndex], GetUnitX(udg_ET_Target[udg_ET_CurrentIndex]) + udg_ET_SpeedInterval * Cos(bj_DEGTORAD * udg_ET_Angle[udg_ET_CurrentIndex]))
                  • Custom script: call SetUnitY(udg_ET_Target[udg_ET_CurrentIndex], GetUnitY(udg_ET_Target[udg_ET_CurrentIndex]) + udg_ET_SpeedInterval * Sin(bj_DEGTORAD * udg_ET_Angle[udg_ET_CurrentIndex]))
                • Else - Actions
              • Destructible - Pick every destructible within ET_TreeDestructionAoE of TempLoc and do (Actions)
                • Loop - Actions
                  • Set TempDestructible = (Picked destructible)
                  • Unit - Order ET_TreeDestroyer to Harvest TempDestructible
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Current order of ET_TreeDestroyer) Equal to (Order(harvest))
                    • Then - Actions
                      • Destructible - Kill TempDestructible
                    • Else - Actions
                  • Unit - Order ET_TreeDestroyer to Stop
              • Custom script: call RemoveLocation(udg_TempLoc)
              • Custom script: call RemoveLocation(udg_TempLoc2)
            • Else - Actions
              • Custom script: call SetUnitPropWindow(udg_ET_Target[udg_ET_CurrentIndex], 1)
              • Set ET_Angle[ET_CurrentIndex] = ET_Angle[ET_MaxIndex]
              • Set ET_Caster[ET_CurrentIndex] = ET_Caster[ET_MaxIndex]
              • Set ET_Counter[ET_CurrentIndex] = ET_Counter[ET_MaxIndex]
              • Set ET_Target[ET_CurrentIndex] = ET_Target[ET_MaxIndex]
              • Set ET_CurrentIndex = (ET_CurrentIndex - 1)
              • Set ET_MaxIndex = (ET_MaxIndex - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ET_MaxIndex Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
  • Blood Lust Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- How big of an AoE is the Bounty Hunter "smelling" lol --------
      • Set BL_EnemyNearAoE = 1000.00
  • Blood Lust
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Blood Lust
    • Actions
      • Set BL_MaxIndex = (BL_MaxIndex + 1)
      • Set BL_Caster[BL_MaxIndex] = (Triggering unit)
      • Set BL_HasBonus[BL_MaxIndex] = False
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • BL_MaxIndex Equal to 1
        • Then - Actions
          • Trigger - Turn on Blood Lust Loop <gen>
        • Else - Actions
  • Blood Lust Loop
    • Events
      • Time - Every 0.25 seconds of game time
    • Conditions
    • Actions
      • For each (Integer BL_CurrentIndex) from 1 to BL_MaxIndex, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (BL_Caster[BL_CurrentIndex] is alive) Equal to True
            • Then - Actions
              • Set TempLoc = (Position of BL_Caster[BL_CurrentIndex])
              • Set TempGroup = (Units within BL_EnemyNearAoE of TempLoc matching ((((Matching unit) belongs to an enemy of (Owner of BL_Caster[BL_CurrentIndex])) Equal to True) and (((Matching unit) is alive) Equal to True)))
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in TempGroup) Greater than 0
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • BL_HasBonus[BL_CurrentIndex] Equal to False
                    • Then - Actions
                      • Unit - Set BL_Caster[BL_CurrentIndex] movement speed to ((Current movement speed of BL_Caster[BL_CurrentIndex]) + 75.00)
                      • Set BL_HasBonus[BL_CurrentIndex] = True
                      • Unit - Add Blood Lust SPX to BL_Caster[BL_MaxIndex]
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • BL_HasBonus[BL_CurrentIndex] Equal to True
                    • Then - Actions
                      • Unit - Set BL_Caster[BL_CurrentIndex] movement speed to ((Current movement speed of BL_Caster[BL_CurrentIndex]) - 75.00)
                      • Set BL_HasBonus[BL_CurrentIndex] = False
                      • Unit - Remove Blood Lust SPX from BL_Caster[BL_CurrentIndex]
                    • Else - Actions
              • Custom script: call RemoveLocation(udg_TempLoc)
              • Custom script: call DestroyGroup(udg_TempGroup)
            • Else - Actions


Let me know if you have a question or problem. Also the Blood Lust never deindexes because well.. I figured that the unit will just be respawned at some point...if that is not the case and you plan to remove that unit from the game/suspend Blood Lust, let me know and I will revise it to remove the index of units who are no longer in the game.
 

Attachments

  • Gnoll Spell Pack.w3x
    34.1 KB · Views: 177
Level 4
Joined
Apr 9, 2013
Messages
45
chronos request:

  • Tracking Mine Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Delay between trigger and track applied --------
      • Set TM_DelayExplosion = 0.95
      • -------- How many mines can a player have? --------
      • Set TM_MaxMineCount = 20
      • -------- How long should mines last? --------
      • Set TM_TimedLife = 180.00
      • -------- How close does a unit need to come to explode/be tracked? --------
      • Set TM_MineSearchAoE = 250.00
  • Tracking Mine Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Tracking Mine
    • Actions
      • Set TempPlayer = (Triggering player)
      • Set TempGroup = (Units owned by TempPlayer)
      • Set TempInteger = 0
      • Unit Group - Pick every unit in TempGroup and do (Actions)
        • Loop - Actions
          • Set TempUnit = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (TempUnit is alive) Equal to True
              • (Unit-type of TempUnit) Equal to Tracking Mine
            • Then - Actions
              • Set TempInteger = (TempInteger + 1)
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • TempInteger Less than TM_MaxMineCount
        • Then - Actions
          • Set TM_MaxIndex = (TM_MaxIndex + 1)
          • Set TM_Caster[TM_MaxIndex] = (Triggering unit)
          • Set TempLoc = (Target point of ability being cast)
          • Set TM_ShouldExplode[TM_MaxIndex] = False
          • Unit - Create 1 Tracking Mine for TempPlayer at TempLoc facing Default building facing degrees
          • Set TM_Mine[TM_MaxIndex] = (Last created unit)
          • Unit - Add a TM_TimedLife second Generic expiration timer to TM_Mine[TM_MaxIndex]
          • Set TM_ExplosionTimer[TM_MaxIndex] = TM_DelayExplosion
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TM_MaxIndex Equal to 1
            • Then - Actions
              • Trigger - Turn on Tracking Mine Loop <gen>
            • Else - Actions
          • Custom script: call RemoveLocation(udg_TempLoc)
        • Else - Actions
          • Set TempForce = (Player group(TempPlayer))
          • Game - Display to TempForce the text: Already 20 mines pl...
          • Custom script: call DestroyForce(udg_TempForce)
      • Custom script: call DestroyGroup(udg_TempGroup)
  • Tracking Mine Loop
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • For each (Integer TM_CurrentIndex) from 1 to TM_MaxIndex, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TM_ShouldExplode[TM_CurrentIndex] Equal to True
            • Then - Actions
              • Set TM_ExplosionTimer[TM_CurrentIndex] = (TM_ExplosionTimer[TM_CurrentIndex] - 0.05)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TM_ExplosionTimer[TM_CurrentIndex] Less than or equal to 0.00
                • Then - Actions
                  • Set TempLoc = (Position of TM_Mine[TM_CurrentIndex])
                  • Unit - Create 1 Dummy for (Owner of TM_Caster[TM_CurrentIndex]) at TempLoc facing Default building facing degrees
                  • Set TempUnit = (Last created unit)
                  • Unit - Add Track to TempUnit
                  • Unit - Add a 1.00 second Generic expiration timer to TempUnit
                  • Set TempGroup = (Units within TM_MineSearchAoE of TempLoc)
                  • Unit Group - Pick every unit in TempGroup and do (Actions)
                    • Loop - Actions
                      • Set TempUnit2 = (Picked unit)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (TempUnit2 is alive) Equal to True
                          • (TempUnit2 belongs to an enemy of (Owner of TM_Caster[TM_CurrentIndex])) Equal to True
                        • Then - Actions
                          • Unit - Order TempUnit to Night Elf Druid Of The Talon - Faerie Fire TempUnit2
                        • Else - Actions
                  • Unit - Kill TM_Mine[TM_CurrentIndex]
                  • Custom script: call RemoveLocation(udg_TempLoc)
                  • Custom script: call DestroyGroup(udg_TempGroup)
                  • Set TM_Caster[TM_CurrentIndex] = TM_Caster[TM_MaxIndex]
                  • Set TM_Mine[TM_CurrentIndex] = TM_Mine[TM_MaxIndex]
                  • Set TM_ExplosionTimer[TM_CurrentIndex] = TM_ExplosionTimer[TM_MaxIndex]
                  • Set TM_ShouldExplode[TM_CurrentIndex] = TM_ShouldExplode[TM_MaxIndex]
                  • Set TM_CurrentIndex = (TM_CurrentIndex - 1)
                  • Set TM_MaxIndex = (TM_MaxIndex - 1)
                • Else - Actions
            • Else - Actions
              • Set TempLoc = (Position of TM_Mine[TM_CurrentIndex])
              • Set TempGroup = (Units within TM_MineSearchAoE of TempLoc)
              • Unit Group - Pick every unit in TempGroup and do (Actions)
                • Loop - Actions
                  • Set TempUnit = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (TempUnit is alive) Equal to True
                      • (TempUnit belongs to an enemy of (Owner of TM_Caster[TM_CurrentIndex])) Equal to True
                    • Then - Actions
                      • Set TM_ShouldExplode[TM_CurrentIndex] = True
                    • Else - Actions
              • Custom script: call RemoveLocation(udg_TempLoc)
  • Desolating Strike Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- When unit has Track buff, how much extra damage --------
      • Set DS_BonusDamage = 200
      • -------- Types --------
      • Set DS_AttackType = Spells
      • Set DS_DamageType = Universal
  • Desolating Stike Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Desolating Strike
    • Actions
      • Set TempUnit = (Triggering unit)
      • Set TempUnit2 = (Target unit of ability being cast)
      • Set TempInteger = ((Agility of TempUnit (Include bonuses)) x 3)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (TempUnit2 has buff Track ) Equal to True
        • Then - Actions
          • Set TempInteger = (TempInteger + 200)
          • Unit - Remove Track buff from TempUnit2
        • Else - Actions
      • Set TempReal = (Real(TempInteger))
      • Unit - Cause TempUnit to damage TempUnit2, dealing TempReal damage of attack type DS_AttackType and damage type DS_DamageType
      • Floating Text - Create floating text that reads ((String(TempReal)) + !) above TempUnit with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
      • Set TempFT = (Last created floating text)
      • Floating Text - Set the velocity of TempFT to 64.00 towards 90.00 degrees
      • Floating Text - Change TempFT: Disable permanence
      • Floating Text - Change the lifespan of TempFT to 2.50 seconds
  • Eliminate Target Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- How Fast is the unit knocked back --------
      • Set ET_Speed = 600.00
      • -------- How Far should the unit be knocked --------
      • Set ET_TotalDistance = 800.00
      • -------- Regular Damage done when not an instant kill --------
      • Set ET_Damage = 200.00
      • -------- How big of an AoE should Trees be destroyed when unit is knocked back --------
      • Set ET_TreeDestructionAoE = 125.00
      • -------- Types --------
      • Set ET_AttackType = Spells
      • Set ET_DamageType = Universal
      • -------- Slide Effect (Shows the unit is being knockbacked) --------
      • Set ET_SlideEffect = Abilities\Spells\Human\Polymorph\PolyMorphDoneGround.mdl
      • -------- In % what should be an Instant kill --------
      • Set ET_InstantKillThreshold = 35.00
      • -------- Leave below. --------
      • Set ET_SpeedInterval = (ET_Speed x 0.03)
      • Custom script: set udg_ET_TreeDestroyer = CreateUnit (Player(15), 'hpea', 0,0,0)
      • Custom script: call UnitAddAbility(udg_ET_TreeDestroyer, 'Aloc')
      • Unit - Hide ET_TreeDestroyer
      • Set ET_Distance = (ET_TotalDistance / ET_SpeedInterval)
  • Eliminate Target Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Eliminate Target
    • Actions
      • Set TempUnit = (Triggering unit)
      • Set TempUnit2 = (Target unit of ability being cast)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Percentage life of TempUnit2) Less than or equal to ET_InstantKillThreshold
        • Then - Actions
          • Unit - Remove All buffs from TempUnit2
          • Unit - Cause TempUnit to damage TempUnit2, dealing 1000000000.00 damage of attack type Chaos and damage type Universal
        • Else - Actions
          • Set ET_MaxIndex = (ET_MaxIndex + 1)
          • Set ET_Caster[ET_MaxIndex] = TempUnit
          • Set ET_Target[ET_MaxIndex] = TempUnit2
          • Set TempLoc = (Position of TempUnit)
          • Set TempLoc2 = (Position of TempUnit2)
          • Unit - Cause TempUnit to damage TempUnit2, dealing ET_Damage damage of attack type ET_AttackType and damage type ET_DamageType
          • Set ET_Counter[ET_MaxIndex] = ET_Distance
          • Custom script: call SetUnitPropWindow(udg_ET_Target[udg_ET_CurrentIndex], 0)
          • Set ET_Angle[ET_MaxIndex] = (Angle from TempLoc to TempLoc2)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ET_MaxIndex Equal to 1
            • Then - Actions
              • Trigger - Turn on Eliminate Target Loop <gen>
            • Else - Actions
          • Custom script: call RemoveLocation(udg_TempLoc)
          • Custom script: call RemoveLocation(udg_TempLoc2)
  • Eliminate Target Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer ET_CurrentIndex) from 1 to ET_MaxIndex, do (Actions)
        • Loop - Actions
          • Set ET_Counter[ET_CurrentIndex] = (ET_Counter[ET_CurrentIndex] - 1.00)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ET_Counter[ET_CurrentIndex] Greater than or equal to 0.00
            • Then - Actions
              • Set TempLoc = (Position of ET_Target[ET_CurrentIndex])
              • Special Effect - Create a special effect at TempLoc using ET_SlideEffect
              • Special Effect - Destroy (Last created special effect)
              • Set TempLoc2 = (TempLoc offset by ET_SpeedInterval towards ET_Angle[ET_CurrentIndex] degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Playable map area) contains TempLoc2) Equal to True
                  • (Terrain pathing at TempLoc2 of type Flyability is off) Equal to False
                • Then - Actions
                  • Custom script: call SetUnitX(udg_ET_Target[udg_ET_CurrentIndex], GetUnitX(udg_ET_Target[udg_ET_CurrentIndex]) + udg_ET_SpeedInterval * Cos(bj_DEGTORAD * udg_ET_Angle[udg_ET_CurrentIndex]))
                  • Custom script: call SetUnitY(udg_ET_Target[udg_ET_CurrentIndex], GetUnitY(udg_ET_Target[udg_ET_CurrentIndex]) + udg_ET_SpeedInterval * Sin(bj_DEGTORAD * udg_ET_Angle[udg_ET_CurrentIndex]))
                • Else - Actions
              • Destructible - Pick every destructible within ET_TreeDestructionAoE of TempLoc and do (Actions)
                • Loop - Actions
                  • Set TempDestructible = (Picked destructible)
                  • Unit - Order ET_TreeDestroyer to Harvest TempDestructible
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Current order of ET_TreeDestroyer) Equal to (Order(harvest))
                    • Then - Actions
                      • Destructible - Kill TempDestructible
                    • Else - Actions
                  • Unit - Order ET_TreeDestroyer to Stop
              • Custom script: call RemoveLocation(udg_TempLoc)
              • Custom script: call RemoveLocation(udg_TempLoc2)
            • Else - Actions
              • Custom script: call SetUnitPropWindow(udg_ET_Target[udg_ET_CurrentIndex], 1)
              • Set ET_Angle[ET_CurrentIndex] = ET_Angle[ET_MaxIndex]
              • Set ET_Caster[ET_CurrentIndex] = ET_Caster[ET_MaxIndex]
              • Set ET_Counter[ET_CurrentIndex] = ET_Counter[ET_MaxIndex]
              • Set ET_Target[ET_CurrentIndex] = ET_Target[ET_MaxIndex]
              • Set ET_CurrentIndex = (ET_CurrentIndex - 1)
              • Set ET_MaxIndex = (ET_MaxIndex - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ET_MaxIndex Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
  • Blood Lust Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- How big of an AoE is the Bounty Hunter "smelling" lol --------
      • Set BL_EnemyNearAoE = 1000.00
  • Blood Lust
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Blood Lust
    • Actions
      • Set BL_MaxIndex = (BL_MaxIndex + 1)
      • Set BL_Caster[BL_MaxIndex] = (Triggering unit)
      • Set BL_HasBonus[BL_MaxIndex] = False
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • BL_MaxIndex Equal to 1
        • Then - Actions
          • Trigger - Turn on Blood Lust Loop <gen>
        • Else - Actions
  • Blood Lust Loop
    • Events
      • Time - Every 0.25 seconds of game time
    • Conditions
    • Actions
      • For each (Integer BL_CurrentIndex) from 1 to BL_MaxIndex, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (BL_Caster[BL_CurrentIndex] is alive) Equal to True
            • Then - Actions
              • Set TempLoc = (Position of BL_Caster[BL_CurrentIndex])
              • Set TempGroup = (Units within BL_EnemyNearAoE of TempLoc matching ((((Matching unit) belongs to an enemy of (Owner of BL_Caster[BL_CurrentIndex])) Equal to True) and (((Matching unit) is alive) Equal to True)))
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in TempGroup) Greater than 0
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • BL_HasBonus[BL_CurrentIndex] Equal to False
                    • Then - Actions
                      • Unit - Set BL_Caster[BL_CurrentIndex] movement speed to ((Current movement speed of BL_Caster[BL_CurrentIndex]) + 75.00)
                      • Set BL_HasBonus[BL_CurrentIndex] = True
                      • Unit - Add Blood Lust SPX to BL_Caster[BL_MaxIndex]
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • BL_HasBonus[BL_CurrentIndex] Equal to True
                    • Then - Actions
                      • Unit - Set BL_Caster[BL_CurrentIndex] movement speed to ((Current movement speed of BL_Caster[BL_CurrentIndex]) - 75.00)
                      • Set BL_HasBonus[BL_CurrentIndex] = False
                      • Unit - Remove Blood Lust SPX from BL_Caster[BL_CurrentIndex]
                    • Else - Actions
              • Custom script: call RemoveLocation(udg_TempLoc)
              • Custom script: call DestroyGroup(udg_TempGroup)
            • Else - Actions


Let me know if you have a question or problem. Also the Blood Lust never deindexes because well.. I figured that the unit will just be respawned at some point...if that is not the case and you plan to remove that unit from the game/suspend Blood Lust, let me know and I will revise it to remove the index of units who are no longer in the game.
Wow, I'm impressed! :D Thanks alot pOke!!! keep em runnin'!! +rep
 
Level 13
Joined
Mar 24, 2013
Messages
1,105
Draenei Realm

DDS: i dont know if needed
Code Type: GUI
Spell Type: Hero
Target Type: Instant
Area of Effect: 0
Number of Levels: 3
Mana Cost: 300
Cooldown: 70
In-game Description: N/A
How the spell works: Creates a haunting image beside each enemy hero. These images are uncontrollable, take 200% damage, deal 70% damage and each of them will attack only its pair.


"Haunting image"-- is this an image of the casting hero? the enemy hero? Who?

Also should you be able to "Reality" to the illusion as Spec can?

3 levels...what changes per level?
 
Level 13
Joined
Mar 24, 2013
Messages
1,105
Thanks Bunny, here's your Item Request btw

  • Collect Essence Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- If an enemy cannot see you cast a spell, they do not get charges --------
      • Set PoE_BlockedFoggedUnits = True
      • -------- Effect when a spell is cast near --------
      • Set PoE_Effect = Abilities\Spells\Undead\ReplenishMana\SpiritTouchTarget.mdl
      • Set PoE_Effect2 = Abilities\Spells\Items\AIre\AIreTarget.mdl
      • -------- attachment point --------
      • Set PoE_AttachmentPoint = chest
      • -------- How big of an AoE --------
      • Set CollectionRange = 1200.00
      • -------- Abilities that do not give Essence --------
      • Set NonCollectingAbilities[1] = Pendant of Essence
  • Collect Essence
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
    • Actions
      • -------- If you have a LOT of abilites that do not give Essence, you should save Ability being cast into a variable, but I am assuming you wont. --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Ability being cast) Not equal to NonCollectingAbilities[1]
        • Then - Actions
          • Set TempUnit = (Triggering unit)
          • Set TempBoolean = False
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (TempUnit is A Hero) Equal to True
            • Then - Actions
              • Set TempPoint = (Position of TempUnit)
              • Set TempGroup = (Units within CollectionRange of TempPoint)
              • Unit Group - Pick every unit in TempGroup and do (Actions)
                • Loop - Actions
                  • Set TempUnit2 = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • PoE_BlockedFoggedUnits Equal to True
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (TempUnit is fogged to (Owner of TempUnit2)) Equal to True
                        • Then - Actions
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (TempUnit belongs to an enemy of (Owner of TempUnit2)) Equal to True
                            • Then - Actions
                              • For each (Integer TempInteger) from 1 to 6, do (Actions)
                                • Loop - Actions
                                  • Set TempItem = (Item carried by TempUnit2 in slot TempInteger)
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Item-type of TempItem) Equal to Pendant of Essence
                                    • Then - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Charges remaining in TempItem) Less than 15
                                        • Then - Actions
                                          • Item - Set charges remaining in TempItem to ((Charges remaining in TempItem) + 1)
                                          • Set TempBoolean = True
                                        • Else - Actions
                                    • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • TempBoolean Equal to True
                                • Then - Actions
                                  • Special Effect - Create a special effect attached to the PoE_AttachmentPoint of TempUnit2 using PoE_Effect
                                  • Special Effect - Destroy (Last created special effect)
                                  • Set TempBoolean = False
                                • Else - Actions
                            • Else - Actions
                    • Else - Actions
              • Custom script: call RemoveLocation(udg_TempPoint)
              • Custom script: call DestroyGroup(udg_TempGroup)
            • Else - Actions
        • Else - Actions
  • Pendant of Essence Heal
    • Events
      • Unit - A unit Uses an item
    • Conditions
    • Actions
      • Set TempItem = (Item being manipulated)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Item-type of TempItem) Equal to Pendant of Essence
        • Then - Actions
          • Set TempUnit = (Triggering unit)
          • -------- When you use the item it loses 1 charge, this is so we get the amount of charges it should had --------
          • Set TempInteger = ((Charges remaining in TempItem) + 1)
          • Set TempReal = ((Real(TempInteger)) x 15.00)
          • Unit - Set life of TempUnit to ((Life of TempUnit) + TempReal)
          • Unit - Set mana of TempUnit to ((Mana of TempUnit) + TempReal)
          • Item - Set charges remaining in TempItem to 0
          • Special Effect - Create a special effect attached to the PoE_AttachmentPoint of TempUnit using PoE_Effect2
          • Special Effect - Destroy (Last created special effect)
        • Else - Actions
I tried to test it a lot but let me know if you have a problem or question!

Edit: I forgot to put the cooldown on the item, just go to the ability and put it there sorry :p
 

Attachments

  • Pendant of Essence.w3x
    21.5 KB · Views: 250
Level 13
Joined
Mar 24, 2013
Messages
1,105
Here is the Draenei Realm request

  • DR Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Set the Duration per Level --------
      • Set DR_SetDuration[1] = 4.00
      • Set DR_SetDuration[2] = 5.00
      • Set DR_SetDuration[3] = 6.00
  • DR Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Draenei Realm
    • Actions
      • Set DR_MaxIndex = (DR_MaxIndex + 1)
      • Set DR_Caster[DR_MaxIndex] = (Triggering unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Reality for DR_Caster[DR_MaxIndex]) Equal to 0
        • Then - Actions
          • Unit - Add Reality to DR_Caster[DR_MaxIndex]
        • Else - Actions
      • Custom script: set udg_DR_IllusionGroup[udg_DR_MaxIndex] = CreateGroup()
      • Set DR_Duration[DR_MaxIndex] = DR_SetDuration[(Level of Draenei Realm for DR_Caster[DR_MaxIndex])]
      • Set DR_HeroCount[DR_MaxIndex] = 0
      • Set TempPoint = (Position of DR_Caster[DR_MaxIndex])
      • Unit - Create 1 Dummy for (Owner of DR_Caster[DR_MaxIndex]) at TempPoint facing Default building facing degrees
      • Set TempUnit = (Last created unit)
      • Unit - Add Illusions to TempUnit
      • Unit - Add a 1.00 second Generic expiration timer to TempUnit
      • Set DR_EnemyHeroGroup[DR_MaxIndex] = (Units in (Playable map area) matching (((((Matching unit) is A Hero) Equal to True) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of (Owner of DR_Caster[DR_MaxIndex])) Equal to True)))
      • Custom script: set udg_TempGroup = CreateGroup()
      • Unit Group - Add all units of DR_EnemyHeroGroup[DR_MaxIndex] to TempGroup
      • Trigger - Turn on DR Cast2 <gen>
      • Unit Group - Pick every unit in TempGroup and do (Actions)
        • Loop - Actions
          • Set TempUnit2 = (Picked unit)
          • Custom script: call IssueTargetOrderById(udg_TempUnit, 852274, udg_DR_Caster[udg_DR_MaxIndex])
          • Set DR_HeroCount[DR_MaxIndex] = (DR_HeroCount[DR_MaxIndex] + 1)
      • Unit Group - Pick every unit in DR_IllusionGroup[DR_MaxIndex] and do (Actions)
        • Loop - Actions
          • Set TempUnit3 = (Picked unit)
          • Custom script: set udg_TempUnit4 = FirstOfGroup(udg_TempGroup)
          • Custom script: call SetUnitX(udg_TempUnit3, GetUnitX(udg_TempUnit4))
          • Custom script: call SetUnitY(udg_TempUnit3, GetUnitY(udg_TempUnit4))
          • Custom script: call GroupRemoveUnitSimple(udg_TempUnit4, udg_TempGroup )
      • Trigger - Turn off DR Cast2 <gen>
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • DR_MaxIndex Equal to 1
        • Then - Actions
          • Trigger - Turn on DR Loop <gen>
        • Else - Actions
      • Custom script: call DestroyGroup(udg_TempGroup)
      • Custom script: call RemoveLocation(udg_TempPoint)
  • DR Cast2
    • Events
      • Unit - A unit Spawns a summoned unit
    • Conditions
    • Actions
      • Set DR_TempUnit = (Triggering unit)
      • Custom script: if IsUnitIllusion(udg_DR_TempUnit) == true then
      • Unit Group - Add DR_TempUnit to DR_IllusionGroup[DR_MaxIndex]
      • Unit - Add Illusion Distinguish to DR_TempUnit
      • Custom script: endif
  • DR Loop
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • For each (Integer DR_CurrentIndex) from 1 to DR_MaxIndex, do (Actions)
        • Loop - Actions
          • Set DR_Duration[DR_CurrentIndex] = (DR_Duration[DR_CurrentIndex] - 0.05)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • DR_Duration[DR_MaxIndex] Less than or equal to 0.00
            • Then - Actions
              • Unit Group - Pick every unit in DR_IllusionGroup[DR_CurrentIndex] and do (Actions)
                • Loop - Actions
                  • Set TempUnit2 = (Picked unit)
                  • Unit - Remove TempUnit2 from the game
              • Custom script: call DestroyGroup(udg_DR_IllusionGroup[udg_DR_CurrentIndex])
              • Custom script: call DestroyGroup(udg_DR_EnemyHeroGroup[udg_DR_CurrentIndex])
              • Set DR_Caster[DR_CurrentIndex] = DR_Caster[DR_MaxIndex]
              • Set DR_Duration[DR_CurrentIndex] = DR_Duration[DR_MaxIndex]
              • Set DR_EnemyHeroGroup[DR_CurrentIndex] = DR_EnemyHeroGroup[DR_MaxIndex]
              • Set DR_IllusionGroup[DR_CurrentIndex] = DR_IllusionGroup[DR_MaxIndex]
              • Set DR_HeroCount[DR_CurrentIndex] = DR_HeroCount[DR_MaxIndex]
              • Set DR_CurrentIndex = (DR_CurrentIndex - 1)
              • Set DR_MaxIndex = (DR_MaxIndex - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DR_MaxIndex Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions
              • Custom script: set udg_TempGroup = CreateGroup()
              • Unit Group - Add all units of DR_EnemyHeroGroup[DR_CurrentIndex] to TempGroup
              • Custom script: set udg_TempGroup2 = CreateGroup()
              • Unit Group - Add all units of DR_IllusionGroup[DR_CurrentIndex] to TempGroup2
              • For each (Integer TempInteger) from 1 to DR_HeroCount[DR_CurrentIndex], do (Actions)
                • Loop - Actions
                  • Custom script: set udg_TempUnit = FirstOfGroup(udg_TempGroup)
                  • Custom script: set udg_TempUnit2 = FirstOfGroup(udg_TempGroup2)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Current order of TempUnit2) Not equal to (Order(attack))
                    • Then - Actions
                      • Set TempPoint = (Position of TempUnit2)
                      • Unit - Order TempUnit2 to Attack-Move To TempPoint
                      • Custom script: call RemoveLocation(udg_TempPoint)
                    • Else - Actions
                  • Unit Group - Remove TempUnit from TempGroup
                  • Unit Group - Remove TempUnit2 from TempGroup2
                  • Custom script: set udg_TempUnit = null
                  • Custom script: set udg_TempUnit2 = null
              • Custom script: call DestroyGroup(udg_TempGroup)
              • Custom script: call DestroyGroup(udg_TempGroup2)
  • Reality
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Reality
    • Actions
      • Custom script: set udg_TempUnit = null
      • Custom script: set udg_TempUnit2 = null
      • Custom script: set udg_TempUnit3 = null
      • Set TempUnit = (Triggering unit)
      • Set TempPoint = (Target point of ability being cast)
      • Set TempGroup = (Units within 1000.00 of TempPoint)
      • Unit Group - Pick every unit in TempGroup and do (Actions)
        • Loop - Actions
          • Set TempUnit2 = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (TempUnit2 is an illusion) Equal to True
              • (Level of Illusion Distinguish for TempUnit2) Equal to 1
              • (TempUnit2 is alive) Equal to True
            • Then - Actions
              • Set TempPoint2 = (Position of TempUnit2)
              • Set TempReal = 1000000000.00
              • Set TempReal2 = (Distance between TempPoint and TempPoint2)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TempReal2 Less than TempReal
                • Then - Actions
                  • Set TempReal = TempReal2
                  • Set TempUnit3 = (Picked unit)
                • Else - Actions
              • Custom script: call RemoveLocation(udg_TempPoint2)
            • Else - Actions
      • Custom script: if udg_TempUnit3 != null then
      • Custom script: call SetUnitX(udg_TempUnit, GetUnitX(udg_TempUnit3))
      • Custom script: call SetUnitY(udg_TempUnit, GetUnitY(udg_TempUnit3))
      • Custom script: else
      • Set TempForce = (Player group((Owner of TempUnit)))
      • Game - Display to TempForce the text: No valid Illusion
      • Custom script: call DestroyForce(udg_TempForce)
      • Custom script: endif
      • Unit - Kill TempUnit3
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call DestroyGroup(udg_TempGroup)
      • Custom script: set udg_TempUnit = null
      • Custom script: set udg_TempUnit2 = null
      • Custom script: set udg_TempUnit3 = null
 

Attachments

  • Draenei Realm.w3x
    24.1 KB · Views: 163
Level 13
Joined
Mar 24, 2013
Messages
1,105
Test map fails or import problems?

If import problems--

Make sure all variables are there.
Make sure all abilities have been copied over from OE. I'm assuming if you're saying no illusions are spawning you did not copy the Illusions ability in the OE, look under the special tab.
Be sure that the imported illusions ability is being added to the dummy in DR Cast, and not some other ability.
PM or VM me if you're still having issues.
 
Level 8
Joined
Apr 16, 2013
Messages
351
Tidal Aura

Code Type: GUI/Jass
Spell Type: Hero
Target Type: Passive
Area of Effect: 300
Number of Levels: 4
Mana Cost: 0
Cooldown: 0
In-game Description: The powers of the tides saps the energies of his opponents. Nearby opponents will lose 0.2%/0.4%/0.6%/0.8% of their max hp per second.
How the spell works: Nearby enemies within a 300 AoE will lose hp at an interval of 0.05 second but deals the exact damage at 1 second.
Swamp Slash

Code Type: GUI/Jass
Spell Type: Hero
Target Type: Passive
Area of Effect: 0
Number of Levels: 4
Mana Cost: 0
Cooldown: 0
In-game Description: Each attack inflicts the wrath of the swamp. An attack reduces your targets armor by 2/4/6/8 for 10 seconds.
How the spell works: Reduces attacked unit's armor by 2/4/6/8 on an attack and lasts for 10 seconds.
Natural Being

Code Type: GUI/Jass
Spell Type: Hero
Target Type: Passive
Area of Effect: 900
Number of Levels: 4
Mana Cost: 0
Cooldown: 0
In-game Description: The murloc's natural being allows him to turn invisible, has max movespeed, nearby units lose 5 mana for every 30/20/10 damage taken and regenerates 4% of his current hp every second.
How the spell works: Turns invisible, grants max movespeed, nearby enemies lose 5 mana for every 30/20/10 damage and regenerates 4% of his current hp every second. Casting unit cannot be seen by truesight, fairie fire or any other truesight effects.
 
Level 2
Joined
Nov 12, 2013
Messages
28
excuse me sir,
can someone in there make a simple cinematic anime edition spells?

i have a example for that

if someone from this crew can please respon :D
thanks
 
Level 24
Joined
May 15, 2013
Messages
3,782
Does anyone here know what System was the Sunken City use. The System that when a unit is damage (not include doodads), regaining health, lost mana, regains mana, critical damage or others, theres a floating number(depends on colors). Does anybody know that system?. I forgot its name.
 
Level 23
Joined
Oct 20, 2012
Messages
3,076
Everything is triggered I think. The critical, the damage the mana regen and stuff so that floating texts can be shown. That's the way I know it though. It would be hard to create a system if we don't know what the possible sources of damage or heals there would be since, as I recall, you cannot detect when critical procs.
 
Status
Not open for further replies.
Top