Coin Collection Problem

HG-Bonfire

New Member
Reaction score
22
Ive got a trigger that makes it so every 30 seconds, if a unit doesnt have a certain number of coins (the coin is recreated as an item) then they die

Code:
Coin Collection Countdown
    Events
        Time - Every 0.10 seconds of game time
    Conditions
    Actions
        Trigger - Turn off (This trigger)
        For each (Integer A) from 1 to 1, do (Actions)
            Loop - Actions
                Countdown Timer - Start Countdown as a Repeating timer that will expire in 30.00 seconds
                Countdown Timer - Destroy Countdown_Window
                Countdown Timer - Create a timer window for (Last started timer) with title ((You need  + (String((Integer A)))) +  coin!)
                Set Countdown_Window = (Last created timer window)
                Wait 29.00 seconds
                Unit Group - Pick every unit in (Units in Region 007 <gen> matching (Numof_Coins[(Player number of (Owner of (Matching unit)))] Less than (Integer A))) and do (Unit - Kill (Picked unit))
        For each (Integer A) from 2 to 6, do (Actions)
            Loop - Actions
                Countdown Timer - Start Countdown as a Repeating timer that will expire in 30.00 seconds
                Countdown Timer - Destroy Countdown_Window
                Countdown Timer - Create a timer window for (Last started timer) with title ((You need  + (String((Integer A)))) +  coins!)
                Set Countdown_Window = (Last created timer window)
                Wait 29.00 seconds
                Unit Group - Pick every unit in (Units in Region 007 <gen> matching (Numof_Coins[(Player number of (Owner of (Matching unit)))] Less than (Integer A))) and do (Unit - Kill (Picked unit))

the problem is that after the 30 seconds, it isnt killing the units without the right number of coins, anybody know why?
 

Shadow

TH.net Regular
Reaction score
23
Shouldnt

Code:
Trigger - Turn off (This trigger)
be the last action
and not the first?
 

HG-Bonfire

New Member
Reaction score
22
even after turning off the trigger, it will let the trigger finish

if i put it at the end then the wait time will allow the trigger to work a bunch of times before turning off
 

Shadow

TH.net Regular
Reaction score
23
well its definately not gonna work if you put it first because then as soon as the event happens the actions will be shut off
it must be repeating because you put it every 1/10 of a second so maybe if you made the event every 30secs?
 

HG-Bonfire

New Member
Reaction score
22
the idea is that from a different trigger, when a player types a message it triggers this trigger, turning it on. then the command to turn the trigger off makes sure that it only works once. I think you need to read the small text at the bottom of the trigger turn trigger off. it says "Does not interrupt existing executions of the trigger, but prevents future executions" that means it will allow the trigger to run once comepletly.
 

Shadow

TH.net Regular
Reaction score
23
"existing meaning before" "future meaning after"
thats what i get from it
 

HG-Bonfire

New Member
Reaction score
22
execution means triggering of the trigger, so turning off the trigger means that it will only execute once, instead of every second

besides thats not the problem, the timer shows up and stuff, but it just wont kill the unit when it is done.
 

Shadow

TH.net Regular
Reaction score
23
Code:
                Unit Group - Pick every unit in (Units in Region 007 <gen> matching (Numof_Coins[(Player number of (Owner of (Matching unit)))] Less than (Integer A))) and do (Unit - Kill ([B]matching unit[/B]))

try changing picked unit to matching unit
 

HG-Bonfire

New Member
Reaction score
22
Nope that aint it

Matching unit only applys to units being considered to be a picked unit under a condition, it doesnt refer to the picked units themselves.
 

Effane

Save/Load Code Tutorial
Reaction score
51
Hate to say this, but I am trying to be honest. Trigger is pretty sloppy.

Why such a crazy action time on a trigger thats supposed to run on initiation? You can remove that and just have another trigger that detects the player action to start this one.

If you want it to be triggered by someone typing in a message somewhere else but dont want multiple versions of it running then just create a Boolean variable that will be a required condition for the variable to execute, then it just set the variable to true once you run the variable once, and if you want to clear up the variable at the end or reset it later, then you just set it back to false condition. Easy enough and you dont need that Turn Trigger Off in a weird spot. (Its called RunSafe or Protected Coding)

Next, why two loops? A single loop with maybe two if statements to check for integerA would have been much easier.

Code:
Unit Group - Pick every unit in (Units in Region 007 <gen> matching (Numof_Coins[(Player number of (Owner of (Matching unit)))] Less than (Integer A))) and do (Unit - Kill (Picked unit))

This code is the problem in the end though. Matching unit is a situation of a condition. You have no condition, therefore no matching unit. I suspect you want this to be the unit that triggered the event. So when the message is sent, save the player number to a variable, then this trigger will just read that variable and none of this "(Player number of (Owner of (Matching unit)))" will be needed, just "Numof_Coins[PlayerNumberVariable]". If you are doing it this way, then make sure you scrutinize the Numof_Coins[] variable, it will have to be in working order for things to be

Now if I got the intention wrong, and you really want to check every unit in a region and see if they have less coins than the IntegerA there is another way to do this. You will need to switch Matching with PickedUnit.

You could have more control over this if you just created the Pick Every Unit in Region and perform multiple actions, you really arent saving any process time by using the compact and convuluted condition version. Then you can make custom and more handlable conditions with IF statements and actually get this thing under some control.

I would knock out a sample trigger, but I dont have my disk at this office. So sorry... but hope this gives some info.
 

Deathbedeli2

New Member
Reaction score
18
Actually if your first action is (turn off this trigger) It will still run, but prevent it from running again (Unless you turn it back on at the end of the trigger)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top