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

Spell Request -Mind Flay

Status
Not open for further replies.
Level 8
Joined
Dec 16, 2007
Messages
252
I need help of making a channeled spell that damages and slows the enemy unit for 3 seconds. I would like the spell to be based on Life drain cause I need the lightning effect.

And I also like this spell will cancel if the castin unit stops casting it or stunned or dies. It's a channel spell after all, and I got problem with thoose.
 
Level 12
Joined
Nov 5, 2007
Messages
730
Go into the object editor.Change a spell(dont make a new one,edit the original one),lets say Cripple,to decrease the speeds by x%.Make it last 1 second,change the cooldown to 0 seconds,and make the manacost 0.Make a dummy caster unit and give it the modified cripple.

Then make a trigger

Every 0.5 seconds of game time
Pick all units in playable map area and do (Actions)
If
-(picked unit)has buff (Lifesteal buff)
Then
-Create 1 (Dummy caster unit with the cripple) at position of picked unit and order it to (Undead - Cripple) picked unit.
Else
-Do nothing

By doing this,a dummy will actually cast a very short slow spell at any unit that has the mind flay buff.If the buff dissapears,the unit will stop casting,and the slow effect will dissapear.

Of course,dont forget to store the position of the unit in a variable,and use a code to remove it,to prevent leaks.

If you want to damage the unit with your spell as well,just damage the caster for the exact amount of life he drains.

I can make the spell for you tho.
 
Level 12
Joined
Nov 5, 2007
Messages
730
I tried it on my map,it works.Use the Life Steal(Target) buff and there shouldnt be any problems.
 
Level 8
Joined
Dec 16, 2007
Messages
252
I couldn't make it.. Surely just me who is stupid. Maybe you can look for the problem?

(I created a trigger and made MindFlay_Caster to = Casting Unit)

  • Mind Flay
    • Events
      • Time - Every 0.50 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) has buff Drain Life (Target)) Equal to True
            • Then - Actions
              • Unit - Create 1 Dummy for (Owner of MindFlay_Caster) at (Position of (Picked unit)) facing Default building facing degrees
              • Unit - Order (Last created unit) to Undead Necromancer - Cripple (Picked unit)
              • Unit - Cause MindFlay_Caster to damage (Picked unit), dealing 32.00 damage of attack type Spells and damage type Mind
              • Set Mind_FlayUnitPoint = (Position of (Picked unit))
              • Custom script: call RemoveLocation(udg_Mind_FlayUnitPoint)
            • Else - Actions
              • Do nothing
 
Level 12
Joined
Nov 5, 2007
Messages
730
Make sure that the unit has the Cripple ability,that youve removed the research requirement from Cripple,that manacost and cooldowns are 0.

Anyways it works for me,the only difference is that im not using the "order caster to damage picked unit" trigger at all...everything else is the same.
 
Level 5
Joined
Aug 23, 2007
Messages
141
Mind Flay
Events
Time - Every 0.50 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) has buff Drain Life (Target)) Equal to True
Then - Actions
Unit - Create 1 Dummy for (Owner of MindFlay_Caster) at (Position of (Picked unit)) facing Default building facing degrees
Unit - Add 2 second expiration timer to last created unit
Unit - Order (Last created unit) to Undead Necromancer - Cripple (Picked unit)
Else - Actions
Do nothing




Yeah, remove techtree requirements... add a mana pool to the dummy... or just set manacost of cripple to nothing...
 
Level 14
Joined
Nov 18, 2007
Messages
1,084
  • Mind Flay
    • Events
      • Time - Every 0.50 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) has buff Drain Life (Target)) Equal to True
            • Then - Actions
              • Unit - Create 1 Dummy for (Owner of MindFlay_Caster) at (Position of (Picked unit)) facing Default building facing degrees
              • Unit - Order (Last created unit) to Undead Necromancer - Cripple (Picked unit)
              • Unit - Cause MindFlay_Caster to damage (Picked unit), dealing 32.00 damage of attack type Spells and damage type Mind
              • Set Mind_FlayUnitPoint = (Position of (Picked unit))
              • Custom script: call RemoveLocation(udg_Mind_FlayUnitPoint)
            • Else - Actions
              • Do nothing
Should be better...
  • Mind Flay
    • Events
      • Time - Every 0.50 seconds of game time
    • Conditions
    • Actions
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units in (Playable map area) matching (((Matching unit) has buff Drain Life (Target)(Mind Flay)) Equal to True)) and do (Actions)
        • Loop - Action
          • Set Mind_FlayUnitPoint = (Position of (Picked unit))
          • Set MindFlay_Caster = (Picked unit)
          • Unit - Create 1 Dummy for (Owner of MindFlay_Caster) at (Mind_FlayUnitPoint) facing Default building facing degrees
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Cripple to (Last created unit)
          • Unit - Order (Last created unit) to Undead Necromancer - Cripple (Picked unit)
          • Unit - Cause MindFlay_Caster to damage (Picked unit), dealing 32.00 damage of attack type Spells and damage type Mind
          • Custom script: call RemoveLocation(udg_Mind_FlayUnitPoint)
Basically, just make another Cripple with no mana cost and able to target friendly units to add that to the Dummy. Also make the duration 1 second or something so the buff won't last that long if the caster stops channeling it..

I think you should make a custom buff from Drain Life(Target) because the trigger would probably be run when someone uses Life Drain. Drain Life (Target)(Mind Flay) is basically a custom buff that will be in Mind Flay under buffs for Drain Life(Target) so the trigger would only run that ability.

Also, wouldn't
  • Unit - Cause MindFlay_Caster to damage (Picked unit), dealing 32.00 damage of attack type Spells and damage type Mind
be overkill as the unit that's being mind flayed takes 64 damage per second?
 
Last edited:
Status
Not open for further replies.
Top