Trigger Malfunctioning

FroznYoghurt

New Member
Reaction score
37
What i want to do: A missile spell that leaves a buff, buff registers mana re and degeneration, when dur is over (target no longer has the buff) it receives damage. (this is not the problem)

The buff is supposed to only be able to be active at one target at a time, when a new unit receives it the last is supposed to have it removed.


Missile: A locust unit with a SFX attachment
Buff: Slow with 0% slow (Does nothing)

What dosen't work: The buff is for some reason instantly removed and therefore the target takes the damage instantly, this really buggs me.

Here is the code:

Ini
Code:
Spirit Leech
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Spirit Leech 
    Actions
        Unit - Remove SL_Missile from the game
        -------- - --------
        Special Effect - Create a special effect attached to the hand, left of (Triggering unit) using Abilities\Spells\NightElf\SpiritOfVengeance\SpiritOfVengeanceBirthMissile.mdl
        Special Effect - Destroy (Last created special effect)
        -------- - --------
        Set SL_Target = (Target unit of ability being cast)
        Set TempPoint = (Position of (Triggering unit))
        -------- - --------
        Unit - Create 1 Mana Leech for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
        Animation - Play (Last created unit)'s walk animation
        Unit - Add Crow Form to (Last created unit)
        Animation - Change (Last created unit) flying height to 125.00 at 0.00
        Unit - Remove Crow Form from (Last created unit)
        Animation - Change (Last created unit)'s vertex coloring to (5.00%, 5.00%, 100.00%) with 45.00% transparency
        Special Effect - Create a special effect attached to the head of (Last created unit) using Abilities\Weapons\SpiritOfVengeanceMissile\SpiritOfVengeanceMissile.mdl
        Unit - Turn collision for (Last created unit) Off
        Set SL_Missile = (Last created unit)
        -------- - --------
        Trigger - Turn on SL Hit <gen>
        Custom script:   call RemoveLocation(udg_TempPoint)

Loop
Code:
SL loop
    Events
        Time - Every 0.01 seconds of game time
    Conditions
    Actions
        -------- Missile, Hit target --------
        Set TempPoint = (Position of SL_Target)
        Set TempPoint2 = (Position of SL_Missile)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Distance between TempPoint and TempPoint2) Less than or equal to 50.00
            Then - Actions
                -------- - --------
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Leeched_Target Not equal to No unit
                    Then - Actions
                        Unit - Remove Mana Leech  buff from Leeched_Target
                        Unit - Cause Caster to damage Leeched_Target, dealing (SL_Damage[1] + SL_Damage[2]) damage of attack type Spells and damage type Normal
                        Special Effect - Create a special effect attached to the chest of Leeched_Target using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
                        Special Effect - Destroy (Last created special effect)
                        Special Effect - Create a special effect attached to the chest of Leeched_Target using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
                        Special Effect - Destroy (Last created special effect)
                        -------- Text --------
                        Floating Text - Create floating text that reads ((((String((Integer(SL_Damage[1])))) +  + ) + (String((Integer(SL_Damage[2]))))) + !) above Leeched_Target with Z offset 0.00, using font size 10.00, color (10.00%, 15.00%, 100.00%), and 0.00% transparency
                        Floating Text - Change (Last created floating text): Disable permanence
                        Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
                        Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
                        -------- - --------
                        Set Leeched_Target = No unit
                    Else - Actions
                -------- - --------
                Set SL_Damage[1] = 0.00
                Set SL_Damage[2] = 0.00
                Special Effect - Create a special effect at TempPoint2 using Abilities\Spells\NightElf\SpiritOfVengeance\SpiritOfVengeanceBirthMissile.mdl
                Special Effect - Destroy (Last created special effect)
                Unit - Create 1 Spell Dummy for (Owner of SL_Missile) at TempPoint2 facing Default building facing degrees
                Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                Unit - Add Mana Leech  to (Last created unit)
                Unit - Order (Last created unit) to Human Sorceress - Slow SL_Target
                Unit - Remove SL_Missile from the game
                -------- - --------
                Set SL_Target = No unit
                -------- - --------
            Else - Actions
                Set TempPointA[3] = (TempPoint2 offset by 4.60 towards (Angle from TempPoint2 to TempPoint) degrees)
                Unit - Move SL_Missile instantly to TempPointA[3], facing (Angle from TempPoint2 to TempPoint) degrees
                Custom script:   call RemoveLocation(udg_TempPointA[3])
        Custom script:   call RemoveLocation(udg_TempPoint)
        Custom script:   call RemoveLocation(udg_TempPoint2)
        -------- Who is Hit? --------
        Set TempGroup = (Units in (Entire map) matching (((Matching unit) Not equal to Leeched_Target) and (((Matching unit) has buff Mana Leech ) Equal to True)))
        Unit Group - Pick every unit in TempGroup and do (Actions)
            Loop - Actions
                Set Leeched_Target = (Picked unit)
        -------- Buff still on? --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Leeched_Target has buff Mana Leech ) Equal to False
            Then - Actions
                Unit - Remove Mana Leech  buff from Leeched_Target
                Unit - Cause Caster to damage Leeched_Target, dealing (SL_Damage[1] + SL_Damage[2]) damage of attack type Spells and damage type Normal
                Special Effect - Create a special effect attached to the chest of Leeched_Target using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
                Special Effect - Destroy (Last created special effect)
                Floating Text - Create floating text that reads ((((String((Integer(SL_Damage[1])))) +  + ) + (String((Integer(SL_Damage[2]))))) + !) above Leeched_Target with Z offset 0.00, using font size 10.00, color (10.00%, 15.00%, 100.00%), and 0.00% transparency
                Floating Text - Change (Last created floating text): Disable permanence
                Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
                Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
                Set SL_Damage[1] = 0.00
                Set SL_Damage[2] = 0.00
                Set Leeched_Target = No unit
            Else - Actions
        -------- Mana Difference --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                SL_ManaCheck Equal to 1
            Then - Actions
                Set SL_ManaCheck = 2
                Set SL_MP[1] = (Mana of Leeched_Target)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        SL_MP[2] Less than SL_MP[1]
                    Then - Actions
                        Set SL_Damage[1] = (SL_Damage[1] + (SL_MP[1] - SL_MP[2]))
                    Else - Actions
                        Set SL_Damage[2] = (SL_Damage[2] + (SL_MP[2] - SL_MP[1]))
            Else - Actions
                Set SL_ManaCheck = 1
                Set SL_MP[2] = (Mana of Leeched_Target)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        SL_MP[2] Less than SL_MP[1]
                    Then - Actions
                        Set SL_Damage[1] = (SL_Damage[1] + (SL_MP[1] - SL_MP[2]))
                    Else - Actions
                        Set SL_Damage[2] = (SL_Damage[2] + (SL_MP[2] - SL_MP[1]))

I know it's a lot of code but it dosen't take too long to read it, please help me on this one im stuck deep.

+rep for sollutions
 

Flare

Stops copies me!
Reaction score
662
What's the duration on the Slow? Do you have any triggers/spells which would remove a buff?

EDIT: Wait, this doesn't look right...
Code:
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Leeched_Target Not equal to No unit
                    Then - Actions
                        Unit - Remove Mana Leech  buff from Leeched_Target

If Leeched_Target is assigned to some particular unit, it will remove the buff from Leeched_Target?
 

FroznYoghurt

New Member
Reaction score
37
What's the duration on the Slow? Do you have any triggers/spells which would remove a buff?

EDIT: Wait, this doesn't look right...
Code:
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Leeched_Target Not equal to No unit
                    Then - Actions
                        Unit - Remove Mana Leech  buff from Leeched_Target

If Leeched_Target is assigned to some particular unit, it will remove the buff from Leeched_Target?

1. Slow duration is 60 seconds. I have no other triggers that removes buffs, and the buff is removed INSTANTLY, it never even shows up.
(And yes I do know it is attached and removed not only never attached, because nothing happens if i cast the spell on an ally on wich slow cannot be cast)

2. That is correct, the buff is supposed to only be active on one unit at a time.
 

FroznYoghurt

New Member
Reaction score
37
Unbump :D

Solved it myself, had to rewrite the whole code differently :rolleyes:

+rep to Flare for being the only one caring :eek:
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top