WoW Spell Triggering - Immolate

DeathWing

New Member
Reaction score
3
Hello, I'm kinda new here but not new in WE.

I have problem with DoT spell (Damage over Time) used by Warlocks in World of Warcraft.

Spell has duration of 15 seconds but cooldown is 6 seconds and problem is: If when it affects one unit and then I'll cast it on another old one stops taking damage.
I need it affect all units that will be targeted by it for full of its duration.

Discription of spell: Ignites target enemy causing X intial damage and then Y damage over 15 seconds. [|cffffcc00Damage over time is increased by spell power.|r]

Spell power is given from items and abilities and thats a variable.
Variables:
variablesuj2.png

Here are my triggers.
(My World Editor is in polish so I tried to change all polish words to english ones.)
Setup trigger (sets caster, target and damage.)
Code:
Immolate
    Wydarzenia
        Jednostka - A unit begins casting an abilitie
    Warunki
        (Ability being cast) is equal to Immolate (preparing)
    Akcje
        Set Immolate_Count = (Immolate_Count + 1)
        Set Immolate_Target[Immolate_Count] = (Target unit of ability being cast)
        Set Immolate_Caster[Immolate_Count] = (Casting unit)
        Set Immolate_Damage[Immolate_Count] = (((Real((Level of Immolate (preparing) for Immolate_Caster[Immolate_Count]))) x 30.00) - 10.00)
        Unit - Cause (Casting unit) to damage Immolate_Target[Immolate_Count], dealing (8.00 x (Real((Level of Immolate (preparing) for Immolate_Caster[Immolate_Count])))) damage of attack type Zaklęcia and damage type Uniwersalne
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditons
                (Random integer number between 1 and 100) Lower or equal to (((Inteligencja of (Casting unit) (with bonuses)) / 10) + (((Integer(Spell_Crit_Rating[(Player number of (Owner of (Casting unit)))])) / 20) + 1))
            then - Actions
                Set Immolate_Damage[Immolate_Count] = (Immolate_Damage[Immolate_Count] x 2.00)
                Gra - Display to (All players matching ((Owner of (Casting unit)) RĂłwna siÄ™ (Matching player))) the text: (|c00ff0000Your immolate deals|r  + ((String(((Real((Level of Immolate (preparing) for Immolate_Caster[Immolate_Count]))) x 8.00))) + ( |c00ff0000 intial damage to  + ((Proper name of (Target unit of ability being cast)) + (and will deal additonal|r  + ((Stri
                Trigger - Run Immolate DoT <gen> (ignoring conditions)
            Else - Actions
                Game - Display to (All players matching ((Owner of (Casting unit)) RĂłwna siÄ™ (Matching player))) the text: (|cffffcc00Your immolate deals|r  + ((String(((Real((Level of Immolate (preparing) for Immolate_Caster[Immolate_Count]))) x 8.00))) + ( |cffffcc00 intial damage to  + ((Proper name of (Target unit of ability being cast)) + (and will deal additonal|r  + ((Stri
                Wyzwalacz - Run Immolate DoT <gen> (ignoring conditions)

Damage causing trigger
Code:
Immolate DoT
    Wydarzenia
    Warunki
    Akcje
        For each (Integer A) from 1 to 5, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Immolate_Target[Immolate_Count] has buff Immolate ) RĂłwna siÄ™ TAK
                    Then - Actions
                        Unit - Cause Immolate_Caster[Immolate_Count] to damage Immolate_Target[Immolate_Count], dealing ((Immolate_Damage[Immolate_Count] + SpellPower[(Player number of (Owner of Immolate_Caster[Immolate_Count]))]) / 5.00) damage of attack type Spells and damage type Normal
                    Else - Actions
                        Do nothing
                Wait 3.00 seconds

In last trigger, 20% of total damage calculated is dealt every 3 seconds.
I hope you can help me.

Hope You can help me.
 

W!†A_cRaft

Ultra Cool Member
Reaction score
28
Hello, first of all I can help you if you decide to remake the ability not to do 20% of the damage dealt but instead calculate the damage at the tick.... the point is that i have been making the same ability and it worked fine (although without being precise, it might have ticked 1 more or less times but what the heck.)

So if you want my help il post you a trigger I made.
 

DeathWing

New Member
Reaction score
3
But will your ability work for unlimited number of casting units and unlimited number of targets at same time? If yes, I'll be very happy if you'll post here trigger.

And about your advice: I'll try :)
 

W!†A_cRaft

Ultra Cool Member
Reaction score
28
My ability will fuction properly for all players as long as there is only 1 Immolate caster per player/ made it for arena so you only control 1 hero.


About the targets the number is not unlimited as the ability lasts 12 seconds and you are going to have some trouble casting it on 100000000000 untis within the period :p

Kidding ofcourse
Yes it is multi target fuctionable.

W8 a sec I'l write it down, need to find the map.
 

DeathWing

New Member
Reaction score
3
It's not MUI. Immolate DoT is only doing stuff for ONE unit (whenever you recast the spell, Immolate_Count increases, meaning that the trigger moves onto a new unit.

That was the problem I met cuz I figured out that effect you're saying about.

Btw, what means exacly MUI? (Manual User Interface?)
 

Kazuga

Let the game begin...
Reaction score
110
MUI stands for "Multi Unit Instanceble" meaning that more than one unit can use it at once.
 

W!†A_cRaft

Ultra Cool Member
Reaction score
28
Here you go, this is a Curse of Agony but it is the same thing.

THIS ABILITY CAN BE USED BY 1 HERO per PLAYER
CoAGroup is a Unit Group with an array.
PlayerSelectedHero[(Integer A)] is the hero that uses the ability where array stands for the player number

THIS TRIGGER SETS THE ABILITY:
Code:
Curse of Agony mark
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Curse of Agony (afli)
    Actions
        Set AgonyTarget[(Player number of (Owner of (Triggering unit)))] = (Target unit of ability being cast)
        Set AbilityUsePoint[3] = (Position of (Triggering unit))
        Unit - Create 1 no missle attacker for (Owner of (Triggering unit)) at AbilityUsePoint[3] facing (Position of (Target unit of ability being cast))
        Unit - Add Curse of Agony DUMMY to (Last created unit)
        Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
        Unit - Order (Last created unit) to Attack (Target unit of ability being cast)
        Custom script:   call RemoveLocation(udg_AbilityUsePoint[3])


THIS TRIGGER ADDS THE TARGET:
Code:
Curse of Agony add
    Events
        Time - Every 0.01 seconds of game time
    Conditions
    Actions
        For each (Integer A) from 1 to 12, do (Actions)
            Loop - Actions
                Unit Group - Add AgonyTarget[(Integer A)] to CoAGroup[(Integer A)]


THIS TRIGGER SETS DEALS DAMAGE:
Code:
Curse of Agony Damage
    Events
        Time - Every (Random real number between 2.98 and 3.02) seconds of game time
    Conditions
    Actions
        For each (Integer A) from 1 to 12, do (Actions)
            Loop - Actions
                Unit Group - Pick every unit in CoAGroup[(Integer A)] and do (Actions)
                    Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                ((Picked unit) has buff Curse of Agony (Stacking)) Equal to False
                            Then - Actions
                                Unit Group - Remove (Picked unit) from CoAGroup[(Integer A)]
                            Else - Actions
                                Do nothing
                Unit Group - Pick every unit in CoAGroup[(Integer A)] and do (Actions)
                    Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Level of Curse of Agony (afli) for PlayerSelectedHero[(Integer A)]) Equal to 5
                            Then - Actions
                                Set AgonyDamageTick[(Player number of (Owner of (Triggering unit)))] = 231.00
                            Else - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        (Level of Curse of Agony (afli) for PlayerSelectedHero[(Integer A)]) Equal to 4
                                    Then - Actions
                                        Set AgonyDamageTick[(Player number of (Owner of (Triggering unit)))] = 194.00
                                    Else - Actions
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            If - Conditions
                                                (Level of Curse of Agony (afli) for PlayerSelectedHero[(Integer A)]) Equal to 3
                                            Then - Actions
                                                Set AgonyDamageTick[(Player number of (Owner of (Triggering unit)))] = 156.00
                                            Else - Actions
                                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    If - Conditions
                                                        (Level of Curse of Agony (afli) for PlayerSelectedHero[(Integer A)]) Equal to 2
                                                    Then - Actions
                                                        Set AgonyDamageTick[(Player number of (Owner of (Triggering unit)))] = 119.00
                                                    Else - Actions
                                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                            If - Conditions
                                                                (Level of Curse of Agony (afli) for PlayerSelectedHero[(Integer A)]) Equal to 1
                                                            Then - Actions
                                                                Set AgonyDamageTick[(Player number of (Owner of (Triggering unit)))] = 81.00
                                                            Else - Actions
                        Set AgonyDamageTick[(Integer A)] = (AgonyDamageTick[(Integer A)] + (Random real number between -3.00 and 3.00))
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Picked unit) Equal to No unit
                            Then - Actions
                                Do nothing
                            Else - Actions
                                Unit - Cause PlayerSelectedHero[(Integer A)] to damage (Picked unit), dealing AgonyDamageTick[(Integer A)] damage of attack type Spells and damage type Death




YES I KNOW IT IS THE MOST COMPLICATED TRIGGER YOU EVER SAW.....oh well it is the way I do things.....

Also check for leaks .... i dotn remember did i remove em.

GLHF
 

DeathWing

New Member
Reaction score
3
YES I KNOW IT IS THE MOST COMPLICATED TRIGGER YOU EVER SAW.....oh well it is the way I do things.....
nahhh, sometimes I make longer ones :p

Curse of Agony you say? Gr8 - That spell i were also going to make :p

I'll be more happy if you could list all variables used and their types so i can make them easy :p But anyway I'll try to find them in trigger.

Anyway thank you very much for help.

+Rep from me for ya :)
 

W!†A_cRaft

Ultra Cool Member
Reaction score
28
Here is your list of variables:

CoAGroup = Unit Group Array, array represents the player number
PlayerSelectedHero = Unit Array, array represents the player number
AgonyTarget = Unit Array, array represents the number of player (caster of immolate)
AbilityUsePoint[3] = Point Array, array refers to the point in order to differ them from other ability points. This is just made to clear the leakage, make them as you like.
AgonyDamageTick = Real Array, array represents the number of player (caster of immolate)


I think that these are all of them...

If you happen to have trouble with some other wow abilities feel free to call :p
 

DeathWing

New Member
Reaction score
3
Code:
       [B] Unit - Add Curse of Agony DUMMY to (Last created unit)[/B]
        Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
        Unit - Order (Last created unit) to Attack (Target unit of ability being cast)

Bolded fragemnt is useless due to that this unit is just attacking target of ability being cast and isn't casting that dummy spell. I'm right? ^^

About leaks - I see some but I'll remove them after I'll do a working trigger :p
 

DeathWing

New Member
Reaction score
3
If its a passive ability so for what dummy needs it? It could create effect at positon of dummy but I can do same thing using Specjal Effect actions or spell's Target, Caster etc attachment points.

I saw u used If, then, esle function for every lvl - damn, my spell has 20 lvls and I need make two same spells with just other damage lol.
 

W!†A_cRaft

Ultra Cool Member
Reaction score
28
Curse of agony dummy is a passive ability, a one made from slow poison, but any ability that leave a buff upon attack will work,

It lasts for the duration of the ability (in my case 24 in your 15 seconds) and it is used to determin which unit is to be added to the group. Dummy has 10 seconds cooldown on attack in order not to attack more than 1 unit in it's brief life time (1.5 sec) and has no missle animation.

It is used as a Marker
 

DeathWing

New Member
Reaction score
3
So, as for me I don't need dummy unit to add buff so i can leave just in that trigger things that set up variables?

Also in third trigger i see Arrays like that [Player number of (owner of triggering unit)] but theres no triggering unit in that trigger cause its activated every X seconds.

Lots of things to fix but I think they'll just make trigger shorter.
 

W!†A_cRaft

Ultra Cool Member
Reaction score
28
The trigger works fine I can tell you that for a 100% sure..... at least it worked when i was making the map....

I dont know why when or how but the damage is set correctly

THOUGHT I THINK that it should be changed to PlayerNumber(Owner of (PlayerSelectedHero[Intriger A])))

If you want i will give you a map where the ability is and test it to see.

EDIT: OR if you dont want to bother with my spell than basicly you gotten the point of making DoT spells VIA triggers, you know adding units to groups and damaging them as a group.
 

hasslarn

New Member
Reaction score
20
hey i made this spell my self

if u want u dont need to trigger it just do like this

Base it on the spell "Shadow Strike"
and change the buff and name
and damage over time and stuffs like that
 

W!†A_cRaft

Ultra Cool Member
Reaction score
28
Here is a tip, there is a reson the solution wasnt made like this......

what are you going to do when you want more than one ability like that in the map... 2 shadow strikes??? It wont do, because the buffs would get overstacked.....

PLUS:

I had a realy bad experiance with shadowstrike so far..... it happens to me sometimes that it instantly kills a unit, dunno why.
 

Leve

New Member
Reaction score
0
Wouldn't it be easier to just pick every unit with the buff and periodically deal damage? Like every 3 seconds of game pick every unit with buff Immolate and deal damage?
EDIT: Sry this is an really old thread..didn't see it
 
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