Special Effect Doesent Die

Chewbalka

New Member
Reaction score
14
Code:
Lantern Dies
    Events
        Time - Every 1.00 seconds of game time
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                LanternTimer[1] Greater than or equal to 1
            Then - Actions
                Special Effect - Destroy Lantern[1]
                Special Effect - Create a special effect attached to the chest of Player 0007 <gen> using war3mapImported\TorchHumanOmni.mdx
                Set Lantern[1] = (Last created special effect)
                Set LanternTimer[1] = (LanternTimer[1] - 1)
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                LanternTimer[1] Less than 1
            Then - Actions
                Special Effect - Destroy Lantern[1]
                Set LanternTimer[1] = 0
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Or - Any (Conditions) are true
                    Conditions
                        LanternTimer[1] Equal to 1
                        LanternTimer[1] Equal to 2
            Then - Actions
                Special Effect - Destroy Lantern[1]
                Game - Display to (All players) the text: ((Name of Player 1 (Red)) +  Your Lantern has Died out.)
            Else - Actions


In the trigger above after LanternTimer hits 0 the special effects remain.. i have no clue why...

the actual trigger (i edit above) has the same thing 3 times 1 for each player. someone told me it might be because the death animation might be over 1 second, i dont think thats it.

LanternTimer is a Intiger Array(3)
Lantern is a special effect variable.
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
I suspect these two are conflicting somehow. I also suggest you set the variable in each condition. It not getting destroyed sounds like your losing the special effect somehow. (Especially considering your doing this every second.)
Code:
Lantern Dies
    Events
        Time - Every 1.00 seconds of game time
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
[B]                LanternTimer[1] Greater than or equal to 1[/B]
            Then - Actions
                Special Effect - Destroy Lantern[1]
                Special Effect - Create a special effect attached to the chest of Player 0007 <gen> using war3mapImported\TorchHumanOmni.mdx
                Set Lantern[1] = (Last created special effect)
                Set LanternTimer[1] = (LanternTimer[1] - 1)
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                LanternTimer[1] Less than 1
            Then - Actions
                Special Effect - Destroy Lantern[1]
                Set LanternTimer[1] = 0
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Or - Any (Conditions) are true
                    Conditions
[B]                        LanternTimer[1] Equal to 1[/B]
                        LanternTimer[1] Equal to 2
            Then - Actions
                Special Effect - Destroy Lantern[1]
                Game - Display to (All players) the text: ((Name of Player 1 (Red)) +  Your Lantern has Died out.)
            Else - Actions
 

bOb666777

Stand against the ugly world domination face!
Reaction score
117
Every second, you create a new special effect and set the value of Lantern[1] to that special effect, leaving all the previously created effects without variables, leaking them

Either you create 1 special effect at the very beginning of that timer, and not create any other effect

Or delete it every second before replacing it with another
 

Chewbalka

New Member
Reaction score
14
Every second, you create a new special effect and set the value of Lantern[1] to that special effect, leaving all the previously created effects without variables, leaking them

Either you create 1 special effect at the very beginning of that timer, and not create any other effect

Or delete it every second before replacing it with another

its clearly already doing that

Special Effect - Destroy Lantern[1]
Special Effect - Create a special effect attached to the chest of Player 0007 <gen> using war3mapImported\TorchHumanOmni.mdx
Set Lantern[1] = (Last created special effect)


I suspect these two are conflicting somehow. I also suggest you set the variable in each condition. It not getting destroyed sounds like your losing the special effect somehow. (Especially considering your doing this every second.)

variable Lantern[1] should never have to be set unless lanterntimer[1] is greater then 1, because after it hits lower there shouldent be any special effect to set anymore.
if i Set LanternTimer[1] = (LanternTimer[1] - 1)
theres no point in using that in all conditions either, as then it would be just pushing itself into nagative numbers.

you also have to remember ALL of those if/then/else are used no matter what, none of them are put in each others "Else" position.




Edit: Trigger fixed, i remade the entier thing, the trigger is also now 1/4th the size and 3 times better working.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      • Ghan
        Administrator - Servers are fun

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top