Trigger loop help

NovaKing

New Member
Reaction score
0
: (
.... could you possibly tell me why it crashes when I loop the trigger at the END of the trigger?
 

garion992

TH.net Regular
Reaction score
17
and the damage shown wont be correct cause you wait between it, and the time of the burning unit will decrease, showing less damage (or none)

btw im trying to help :p but im not sure if i can help you
 

NovaKing

New Member
Reaction score
0
since the variable trigger works, it must be the loop trigger. I've produced a simplified version of the trigger bellow.


Code:
Player 0 Burn Copy
    Events
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Remaining time for FlameOn1) Greater than 0.00
            Then - Actions
                Unit Group - Pick every unit in (Units within 500.00 of (Position of BurningUnit_0)) and do (Actions)
                    Loop - Actions
                        Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\Human\HCancelDeath\HCancelDeath.mdl
                        Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (Flame1 x (Remaining time for FlameOn1)))
                        Wait 0.75 seconds
                        Trigger - Run (This trigger) (checking conditions)
            Else - Actions
                Do nothing

for some reason, it crashes when in this variation:

Code:
Player 0 Burn Copy
    Events
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Remaining time for FlameOn1) Greater than 0.00
            Then - Actions
                Unit Group - Pick every unit in (Units within 500.00 of (Position of BurningUnit_0)) and do (Actions)
                    Loop - Actions
                        Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\Human\HCancelDeath\HCancelDeath.mdl
                        Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (Flame1 x (Remaining time for FlameOn1)))
                        Wait 0.75 seconds
            Else - Actions
                Do nothing
Trigger - Run (This trigger) (checking conditions)
 

garion992

TH.net Regular
Reaction score
17
maybe your burning flame is already out? becasue it takes --Wait 0.75 seconds-- every time for a unit.
 

NovaKing

New Member
Reaction score
0
and the damage shown wont be correct cause you wait between it, and the time of the burning unit will decrease, showing less damage (or none)

btw im trying to help :p but im not sure if i can help you


hehe it's fine. Just having someone to talk to helps me a little. and the damage should be shown immediately after it's evaluated, and then once again when it's looped, and evaluated again. I just can't understand why it won't look.........
 

garion992

TH.net Regular
Reaction score
17
it always runs this trigger again. you should add a condition, i think.

this : Trigger - Run (This trigger) (checking conditions)
always happens no mather what. you should add it under Actions - Then or Else. that hopefully fixes it :p
 

RaiJin

New Member
Reaction score
40
does use waits in loops like that

reason why it crashes is because you have to many infinite loops
 

RaiJin

New Member
Reaction score
40
Wait is loops worst friend :(

There is no events and conditions so basically your adding the

Code:
Trigger - Run this trigger <checking conditions>

is basically useless
 

NovaKing

New Member
Reaction score
0
hmmmm hold on...


Code:
Player 0 Burn
    Events
    Conditions
        (Remaining time for FlameOn1) Greater than 0.00
    Actions
        Unit Group - Pick every unit in (Units within 500.00 of (Position of BurningUnit_0)) and do (Actions)
            Loop - Actions
                Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\Human\HCancelDeath\HCancelDeath.mdl
                Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (Flame1 x (Remaining time for FlameOn1)))
                Floating Text - Create floating text that reads (String((Flame1 x (Remaining time for FlameOn1)))) at (Position of (Picked unit)) with Z offset 0.00, using font size 10.00, color (100.00%, 50.00%, 50.00%), and 0.00% transparency
                Floating Text - Change (Last created floating text): Disable permanence
                Floating Text - Change the lifespan of (Last created floating text) to 0.50 seconds
                Game - Display to (All players) the text: IT WORKS!! (2)
                Wait 1.00 seconds
                Trigger - Run (This trigger) (checking conditions)


here's the new trigger, that function is now no longer "useless" but the trigger still doesn't loop

is there anyone else that can help.. : ( is there any way to distribute damage over time by use of a math based function within a radius?
 

RaiJin

New Member
Reaction score
40
sigh.. it doesnt loop because like i said... It has a WAIT in it... WAIT can fuck up your whole trigger...

you want it to do something like this

Code:
Player 0 Burn
    Events
    Conditions
        (Remaining time for FlameOn1) Greater than 0.00
    Actions
        Unit Group - Pick every unit in (Units within 500.00 of (Position of BurningUnit_0)) and do (Actions)
            Loop - Actions
                Set Integer = Integer + 1
                Set FlameUnit[Integer] = (Picked unit)
       Wait 1.00 second
        call DestroyGroup(bj_lastCreatedGroup)
 Do Multiple ActionsFor each (Integer) from 1 to Integer, do (Actions)
    Loop - Actions
                Set Point = Position of (Picked unit)
                Special Effect - Create a special effect at (Point) using Objects\Spawnmodels\Human\HCancelDeath\HCancelDeath.mdl
                Destroy - (Last created special effect)
                (Floating Text - Create floating text that reads (String((Flame1 x (Remaining time for FlameOn1)))) at (Point) with Z offset 0.00, using font size 10.00, color (100.00%, 50.00%, 50.00%), and 0.00% transparency
                Floating Text - Change (Last created floating text): Disable permanence
                Floating Text - Change the lifespan of (Last created floating text) to 0.50 seconds
                call RemoveLocation(Point)
 Trigger - Run (This trigger) (checking conditions)
 

RaiJin

New Member
Reaction score
40
if your going to do it perodically you can just try to do a periodic event

Code:
Player 0 Burn
    Events
        Every 1.00 second of the game
    Conditions
        (Remaining time for FlameOn1) Greater than 0.00
    Actions
        Unit Group - Pick every unit in (Units within 500.00 of (Position of BurningUnit_0)) and do (Actions)
            Loop - Actions
                Set Integer = Integer + 1
                Set FlameUnit[Integer] = (Picked unit)
        call DestroyGroup(bj_lastCreatedGroup)
        Do Multiple ActionsFor each (Integer) from 1 to Integer, do (Actions)
             Loop - Actions
                 Set Point = Position of (Picked unit)
                 Special Effect - Create a special effect at (Point) using Objects\Spawnmodels\Human\HCancelDeath\HCancelDeath.mdl
                Destroy - (Last created special effect)
                (Floating Text - Create floating text that reads (String((Flame1 x (Remaining time for FlameOn1)))) at (Point) with Z offset 0.00, using font size 10.00, color (100.00%, 50.00%, 50.00%), and 0.00% transparency
                Floating Text - Change (Last created floating text): Disable permanence
                Floating Text - Change the lifespan of (Last created floating text) to 0.50 seconds
                call RemoveLocation(Point)
 

NovaKing

New Member
Reaction score
0
if your going to do it perodically you can just try to do a periodic event

Code:
Player 0 Burn
    Events
        Every 1.00 second of the game
    Conditions
        (Remaining time for FlameOn1) Greater than 0.00
    Actions
        Unit Group - Pick every unit in (Units within 500.00 of (Position of BurningUnit_0)) and do (Actions)
            Loop - Actions
                Set Integer = Integer + 1
                Set FlameUnit[Integer] = (Picked unit)
        call DestroyGroup(bj_lastCreatedGroup)
        Do Multiple ActionsFor each (Integer) from 1 to Integer, do (Actions)
             Loop - Actions
                 Set Point = Position of (Picked unit)
                 Special Effect - Create a special effect at (Point) using Objects\Spawnmodels\Human\HCancelDeath\HCancelDeath.mdl
                Destroy - (Last created special effect)
                (Floating Text - Create floating text that reads (String((Flame1 x (Remaining time for FlameOn1)))) at (Point) with Z offset 0.00, using font size 10.00, color (100.00%, 50.00%, 50.00%), and 0.00% transparency
                Floating Text - Change (Last created floating text): Disable permanence
                Floating Text - Change the lifespan of (Last created floating text) to 0.50 seconds
                call RemoveLocation(Point)

ahh thanks, never thought of that. I bow before your WC3 insight.
 
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