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

Life Stealer Spells v.1.3

Spells :

Description:The lifestealer has 20% to block an attack, receiving no damage, and dealing the damage taken + 10/20/30 to the attacking Unit.
Trigger :
  • Initialization
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        • Loop - Actions
          • Trigger - Add to Healers Aura <gen> the event (Unit - (Picked unit) Takes damage)
  • Enters Playable Area
    • Events
      • Unit - A unit enters (Playable map area)
    • Conditions
    • Actions
      • Trigger - Add to Healers Aura <gen> the event (Unit - (Entering unit) Takes damage)
  • Healers Aura
    • Events
    • Conditions
      • (Level of Healer's Aura for (Attacked unit)) Greater than or equal to 1
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random real number between 0.00 and 100.00) Less than or equal to 20.00
        • Then - Actions
          • Set HA_Caster = (Attacked unit)
          • Set HA_Target = (Attacking unit)
          • Set HA_Point = (Position of HA_Caster)
          • Set HA_DamageTaken = (Damage taken)
          • Set HA_DamageDealt = (HA_DamageTaken + (10.00 x (Real((Level of Healer's Aura for HA_Caster)))))
          • Animation - Play HA_Caster's spell animation
          • Special Effect - Create a special effect at HA_Point using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Set life of HA_Caster to ((Life of HA_Caster) + HA_DamageTaken)
          • Unit - Cause HA_Caster to damage HA_Target, dealing HA_DamageDealt damage of attack type Spells and damage type Normal
          • Custom script: call RemoveLocation(udg_HA_Point)
        • Else - Actions


Description: The life stealer steals 15/30/45 Dmg From the target healing himself 15/30/45 HitPoints every second. Lasts 3/6/9 seconds
  • Life Steal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Life Steal
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • LS_integer[0] Equal to 0
        • Then - Actions
          • Trigger - Turn on Life Steal Loop <gen>
        • Else - Actions
      • Set LS_integer[0] = (LS_integer[0] + 1)
      • Set LS_integer[1] = (LS_integer[1] + 1)
      • Set LS_Caster[LS_integer[1]] = (Triggering unit)
      • Set LS_Target[LS_integer[1]] = (Target unit of ability being cast)
      • Set LS_Duration[LS_integer[1]] = ((Level of Life Steal for LS_Caster[LS_integer[1]]) x 3)
      • Set LS_DamageHeal[LS_integer[1]] = ((Real((Level of Life Steal for LS_Caster[LS_integer[1]]))) x 15.00)
      • Set LS_EffectCaster[LS_integer[1]] = Abilities\Spells\Demon\DarkPortal\DarkPortalTarget.mdl
      • Set LS_EffectTarget[LS_integer[1]] = Abilities\Spells\Orc\Devour\DevourEffectArt.mdl
  • Life Steal Loop
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • For each (Integer LS_integer[2]) from 1 to LS_integer[1], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • LS_Duration[LS_integer[2]] Greater than 0
            • Then - Actions
              • Special Effect - Create a special effect attached to the chest of LS_Caster[LS_integer[2]] using LS_EffectCaster[LS_integer[2]]
              • Special Effect - Destroy (Last created special effect)
              • Special Effect - Create a special effect attached to the chest of LS_Target[LS_integer[2]] using LS_EffectTarget[LS_integer[2]]
              • Special Effect - Destroy (Last created special effect)
              • Unit - Set life of LS_Caster[LS_integer[2]] to ((Life of LS_Caster[LS_integer[2]]) + LS_DamageHeal[LS_integer[2]])
              • Unit - Cause LS_Caster[LS_integer[2]] to damage LS_Target[LS_integer[2]], dealing LS_DamageHeal[LS_integer[2]] damage of attack type Spells and damage type Normal
              • Set LS_Duration[LS_integer[2]] = (LS_Duration[LS_integer[2]] - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • LS_Duration[LS_integer[2]] Less than or equal to 0
                • Then - Actions
                  • Set LS_integer[0] = (LS_integer[0] - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • LS_integer[0] Equal to 0
                    • Then - Actions
                      • Set LS_integer[0] = 0
                      • Set LS_integer[1] = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
            • Else - Actions


Description : Causes a chain between the life stealer and the target. every time a unit get passed 300 than the other unit, both of them stop and get damaged for 15/30/45 Dmg. Duration increases by level. if the target dies, the chain is still attached to the corpse.
  • Divine Chain
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Divine Chain
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • DC_integer[0] Equal to 0
        • Then - Actions
          • Trigger - Turn on Divine Chain Loop <gen>
        • Else - Actions
      • Set DC_integer[0] = (DC_integer[0] + 1)
      • Set DC_integer[1] = (DC_integer[1] + 1)
      • Set DC_effect[DC_integer[1]] = Abilities\Weapons\FaerieDragonMissile\FaerieDragonMissile.mdl
      • Set DC_caster[DC_integer[1]] = (Triggering unit)
      • Set DC_target[DC_integer[1]] = (Target unit of ability being cast)
      • Set DC_duration[DC_integer[1]] = ((Level of Divine Chain for DC_caster[DC_integer[1]]) x 100)
      • Set DC_damage[DC_integer[1]] = ((Real((Level of Divine Chain for DC_caster[DC_integer[1]]))) x 15.00)
      • Set DC_pointcaster[DC_integer[1]] = (Position of DC_caster[DC_integer[1]])
      • Set DC_pointtarget[DC_integer[1]] = (Position of DC_target[DC_integer[1]])
      • Lightning - Create a Spirit Link lightning effect from source DC_pointcaster[DC_integer[1]] to target DC_pointtarget[DC_integer[1]]
      • Set DC_lightning[DC_integer[1]] = (Last created lightning effect)
      • Custom script: call RemoveLocation(udg_DC_pointcaster[udg_DC_integer[1]])
      • Custom script: call RemoveLocation(udg_DC_pointtarget[udg_DC_integer[1]])
  • Divine Chain Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • For each (Integer DC_integer[2]) from 1 to DC_integer[1], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • DC_duration[DC_integer[2]] Greater than 0
            • Then - Actions
              • Set DC_duration[DC_integer[2]] = (DC_duration[DC_integer[2]] - 1)
              • Set DC_pointcaster[DC_integer[2]] = (Position of DC_caster[DC_integer[2]])
              • Set DC_pointtarget[DC_integer[2]] = (Position of DC_target[DC_integer[2]])
              • Lightning - Move DC_lightning[DC_integer[2]] to source DC_pointcaster[DC_integer[2]] and target DC_pointtarget[DC_integer[2]]
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Distance between DC_pointcaster[DC_integer[2]] and DC_pointtarget[DC_integer[2]]) Greater than or equal to 300.00
                • Then - Actions
                  • Unit - Order DC_caster[DC_integer[2]] to Stop
                  • Unit - Cause DC_caster[DC_integer[2]] to damage DC_target[DC_integer[2]], dealing DC_damage[DC_integer[2]] damage of attack type Spells and damage type Normal
                  • Special Effect - Create a special effect attached to the chest of DC_caster[DC_integer[2]] using DC_effect[DC_integer[2]]
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Order DC_target[DC_integer[2]] to Stop
                  • Unit - Cause DC_target[DC_integer[2]] to damage DC_caster[DC_integer[2]], dealing DC_damage[DC_integer[2]] damage of attack type Spells and damage type Normal
                  • Special Effect - Create a special effect attached to the chest of DC_target[DC_integer[2]] using DC_effect[DC_integer[2]]
                  • Special Effect - Destroy (Last created special effect)
                • Else - Actions
              • Custom script: call RemoveLocation(udg_DC_pointtarget[udg_DC_integer[2]])
              • Custom script: call RemoveLocation(udg_DC_pointcaster[udg_DC_integer[2]])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (DC_caster[DC_integer[2]] is dead) Equal to True
                  • (DC_target[DC_integer[2]] is dead) Equal to True
                • Then - Actions
                  • Set DC_duration[DC_integer[2]] = 0
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DC_duration[DC_integer[2]] Equal to 0
                • Then - Actions
                  • Lightning - Destroy DC_lightning[DC_integer[2]]
                  • Set DC_integer[0] = (DC_integer[0] - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • DC_integer[0] Equal to 0
                    • Then - Actions
                      • Set DC_integer[0] = 0
                      • Set DC_integer[1] = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
            • Else - Actions






~JMS~
The Spells Are fully MUI and MPI :D

Changelog:1.2: Fixed some mistakes.
1.3: made healer's aura possible and fixed effect leaks

Keywords:
jms, lifesteal, gui, mui.
Contents

Life Stealer Spells [MUI] (Map)

Reviews
13:09, 17th Jun 2010 Hanky: Looks good enough for an approval. There are just two things that could be improved: - there's no need to set LS_integer[0] to 0 if the condition is if LS_integer[0] equal to 0 - you could improve the indexing of your...

Moderator

M

Moderator

13:09, 17th Jun 2010
Hanky:
Looks good enough for an approval. There are just two things that could be improved:
- there's no need to set LS_integer[0] to 0 if the condition is if LS_integer[0] equal to 0
- you could improve the indexing of your spells
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
all spells leaks special effects, the first spell with damage taken variable wont work cause the event is "unit is attacked" and damage taken is refered to an event called "Unit takes damage" in unit speciefied events.

no need to null integer 0 in the second spell loop as it reach 0 by itself when doing the -1

divine chain does not leak special effect though
 

Rmx

Rmx

Level 19
Joined
Aug 27, 2007
Messages
1,164
Review



- Idea and creativity - # / 10

- Eye Candy and Ingame Play - # / 10

- Coding - # / 20

- Description of spell - # / 5

- If Spell is MUI you get +3

-if spell is Recycled efficiently you get +2

--------------------------------------------------------------------

-
The total amount is 50

If you get 10 = FAIL

If you get 20 = Lacking

If you get 30 = Acceptable

If you get 40 = Recommended

If you get 50 = Highly ! Recommended


---------------------------------------------------------------------

Idea and Creativity - 3 / 10

Eye Candy & Ingame Play - 3 / 10

Coding - 6 / 20

Description of spell - 2.5 / 5


Total = 14.5

MUI [ No ] then 14.5 + 0 = 14.5

Spell is Recycled Efficiently [ No ] then 14.5 + 0 = 14.5

Status is [ Lacking ]


---------------------------------------------------------------------



First of all all of your spell leaks special effects .....
Your spells are not MUI try finding out by urself coz it will take alot of time to explain.
The lightning spell what if it's casted on a flying unit wouldn't it look weird, try using X Y Z in lightning spell and don't be slazy when a unit die remove the lightning attached to the corp ( but don't remove if this is the part of the spell ).
Your spells need more SAUCE, meaning your ideas are too boring ( no offense ).
That's it for now, but if you are a beginner in spellmaking i'll say you will turn out to be a great spell maker :D

+REP !!!
 

jms

jms

Level 5
Joined
Aug 16, 2009
Messages
71
Rmx thx for that incredible review...:D
but if you are a beginner in spellmaking i'll say you will turn out to be a great spell maker :D
yea i am a beginner ive been doing spells for 4month, thats not a lot, and i have a lot to learn...
Your spells are not MUI try finding out by urself coz it will take alot of time to explain.
can you explain to me why? plz
 
Level 2
Joined
Sep 8, 2008
Messages
10
Not really done very efficiently. You merely added life equal to the amount he lost. What about that unit is going to die and that Healer's Aura activated? You should change it to invulnerable instead of adding the lost life back.
 
Level 2
Joined
Sep 8, 2008
Messages
10
Maybe it was a little confusing. What i meant was that supposed your lifestealer has 25 life. A 100 damage attack came in and so happened, your aura activates. So, the lifestealer takes 100 damage but is unable to recover the 100 damage because it dies. So, if you changed it to invulnerable, it would not take damage for that instance; which is much better than adding back the lost life.
 
Level 5
Joined
Apr 17, 2010
Messages
124
ill just add a
if - "Caster" is alive
and revive him
It would work except for the fact that they DIED. In most games, someone gets gold or points or something for a kill. That revive just means you brought them back, not healed them.
Try this:
  • Healers Aura
  • Events
  • Conditions
  • (Level of Healer's Aura for (Attacked unit)) Greater than or equal to 1
  • Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Random real number between 0.00 and 100.00) Less than or equal to 20.00
  • Then - Actions
  • Set HA_Caster = (Attacked unit)
  • Set HA_Target = (Attacking unit)
  • Set HA_Point = (Position of HA_Caster)
  • Set HA_DamageTaken = (Damage taken)
  • Set HA_DamageDealt = (HA_DamageTaken + (10.00 x (Real((Level of Healer's Aura for HA_Caster)))))
  • Animation - Play HA_Caster's spell animation
  • Special Effect - Create a special effect at HA_Point using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
  • Special Effect - Destroy (Last created special effect)
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Integer((Life of HA_Caster))) Less than HA_DamageTaken
    • Then - Actions
      • Unit - Make HA_Caster Invulnerable
      • Unit - Set life of HA_Caster to ((Life of HA_Caster) + (Real(HA_DamageTaken)))
      • Unit - Make HA_Caster Vulnerable
      • Unit - Order HA_Target to Attack HA_Caster
    • Else - Actions
      • Do nothing
  • Unit - Set life of HA_Caster to ((Life of HA_Caster) + HA_DamageTaken)
    • Unit - Cause HA_Caster to damage HA_Target, dealing HA_DamageDealt damage of attack type Spells and damage type Normal
    • Custom script: call RemoveLocation(udg_HA_Point)
    • Else - Actions
 
Last edited:
Top