Inventory Item Stacking, Help Me Please

jomik

New Member
Reaction score
17
SOLVED

Hey, I'm new here :p I thought you'd be able to help me out with this problem I have... I'm using GUI triggers.

Basically I want it to give all "Chicken House"s an egg every 15 seconds, but, if there's less than 6 eggs in an inventory slot, it should fill this up to 6 eggs (by adding 1 every 15 seconds), before giving an egg to a new spot. I tried to do it like this, and it seems to work sometimes, but sometimes it gets stuck with like, 3 spots with 6 eggs, and one with 3-4 eggs. Please help me out :D

For event I'm using a periodic timer.

Trigger:
  • Player Group - Pick every player in (All players matching ((((Matching player) slot status) Equal to Is playing) and (((Matching player) controller) Equal to User))) and do (Actions)
    • Loop - Actions
      • -------- Eggs --------
      • Unit Group - Pick every unit in (Units owned by (Picked player) matching ((Unit-type of (Matching unit)) Equal to Chicken House)) and do (Actions)
        • Loop - Actions
          • Set done = False
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Life of (Picked unit)) Equal to (Max life of (Picked unit))
            • Then - Actions
              • For each (Integer B) from 1 to 2, do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Integer B) Equal to 1
                    • Then - Actions
                      • For each (Integer A) from 1 to 6, do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Item-type of (Item carried by (Picked unit) in slot (Integer A))) Equal to Egg) and ((Charges remaining in (Item carried by (Picked unit) in slot (Integer A))) Less than 6)
                            • Then - Actions
                              • Item - Set charges remaining in (Item carried by (Picked unit) in slot (Integer A)) to ((Charges remaining in (Item carried by (Picked unit) in slot (Integer A))) + 1)
                              • Set done = True
                              • Custom script: exitwhen true
                            • Else - Actions
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Number of items carried by (Picked unit)) Less than 6) and (done Equal to False)
                        • Then - Actions
                          • Item - Create Egg at (Position of (Picked unit))
                          • Unit - Order (Picked unit) to Right-Click (Last created item)
                        • Else - Actions
            • Else - Actions
      • -------- ------ --------
 

jomik

New Member
Reaction score
17
Sorry for the double post, didn't see the 24-hour limit :S I'm a bit in a time-press, since I want this done by tomorrow and this trigger is probably the main part of the map :p

Update on it shows that it's only the first "Chicken House" that bugs, the others fills out.
 

LoveTD's

New Member
Reaction score
34
Item - Create Egg at (Position of (Picked unit))
Unit - Order (Picked unit) to Right-Click (Last created item)

does the right click function work properly? wat if u make the chicken house be a hero and use this function instead?

Hero - Create Egg and give it to (Picked unit)

just make the house be based off a hero... and remove a few things of the hero... ;)

(if that is the problem ofcourse XD)
 

jomik

New Member
Reaction score
17
The picking up doesn't seem to be a problem, and I did look at yours Scary Nachos :p

But I fixed the problem by removing the For Integer B loop, it didn't do anything anyways, was just a leftover from another try :D
 

NineClick

New Member
Reaction score
11
here's an idea. ...(how many chicken houses do you have?)

make sure that the previous chicken house is full before it transfer to the next, thru boolean or integer condition.

for boolean,create a boolean variable, then:
if number of eggs > 6 in current house, make VariableBoolean true. ... then if VariableBoolean true, proceed to the next house.

for integer:
if number of eggs > 6 in current house, proceed to the next house.

.. and separate it to the "Every 15 seconds" event. the filling of the slot is "Every 15 seconds" and if the house if full, make the VariableBoolean true. and then proceed to the next.
 

jomik

New Member
Reaction score
17
Ahh, I figured it out already, and it has to run for like, 100 houses or something :p
But it's not like it fills up houses in a queue, it fills up the inventory slots in each house, a stack of 6 eggs in 1 inventory slot, then a stack of 6 eggs in the next inventory slots, for all houses :)

But it is solved :D
 
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