Integer A loop not adding players to Multiboard

Danis[h]

New Member
Reaction score
19
Okay, so I'm wanting to create a for each integer A loop to add all six players to the multiboard, if said player is playing. However when I removed the conditions to check if it would work, it still only added me.

Trigger:
  • Loop - Actions
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
      • Then - Actions
        • Set i = (i + 1)
        • Set PlayerRow[(Integer A)] = (i + 1)
        • Multiboard - Set the text for (Last created multiboard) item in column 1, row (i + 1) to (Colors[(Integer A)] + (Name of (Player((Integer A)))))
        • Multiboard - Set the text for (Last created multiboard) item in column 2, row (i + 1) to (Colors[(Integer A)] + (String(LivesLabel[Lives[(Integer A)]])))
        • Multiboard - Set the text for (Last created multiboard) item in column 3, row (i + 1) to (Colors[(Integer A)] + (String(Kills[(Integer A)])))
      • Else - Actions
        • Do nothing


The full trigger looks as follows.
Trigger:
  • Init multiboard
    • Events
      • Time - Elapsed game time is 2.00 seconds
    • Conditions
    • Actions
      • Multiboard - Create a multiboard with 3 columns and (1 + (Number of players in Players)) rows, titled (Colors[10] + Game Status|r)
      • Multiboard - Set the text for (Last created multiboard) item in column 1, row 1 to (Colors[10] + Player:|r)
      • Multiboard - Set the text for (Last created multiboard) item in column 2, row 1 to (Colors[10] + Karakter:|r)
      • Multiboard - Set the text for (Last created multiboard) item in column 3, row 1 to (Colors[10] + Kills:|r)
      • Multiboard - Set the display style for (Last created multiboard) item in column 0, row 0 to Show text and Hide icons
      • Multiboard - Set the width for (Last created multiboard) item in column 0, row 0 to 10.00% of the total screen width
      • Multiboard - Set the width for (Last created multiboard) item in column 3, row 0 to 6.00% of the total screen width
      • Multiboard - Minimize (Last created multiboard)
      • Multiboard - Maximize (Last created multiboard)
      • 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
            • Then - Actions
              • Set i = (i + 1)
              • Set PlayerRow[(Integer A)] = (i + 1)
              • Multiboard - Set the text for (Last created multiboard) item in column 1, row (i + 1) to (Colors[(Integer A)] + (Name of (Player((Integer A)))))
              • Multiboard - Set the text for (Last created multiboard) item in column 2, row (i + 1) to (Colors[(Integer A)] + (String(LivesLabel[Lives[(Integer A)]])))
              • Multiboard - Set the text for (Last created multiboard) item in column 3, row (i + 1) to (Colors[(Integer A)] + (String(Kills[(Integer A)])))
            • Else - Actions
              • Do nothing
 

Joccaren

You can change this now in User CP.
Reaction score
54
lol your trigger is made just to add one player.

Note the 'For Each Integer A from 1-6' loop. This tells the game to run that part of the trigger 6 times, allowing six players to be added with very few actions.

Could you post a screenshot of the multiboard in-game?

Umm... Why so many i+1s? Player one from that will appear on row 3, player two row 6, player three row 9 ect. Just do the 'set i to i + 1' action and change everything else to 'set PlayerRow to i' and 'row i'. Also, why the If/then/else? there are no conditions so it is useless.
 

Danis[h]

New Member
Reaction score
19
Note the 'For Each Integer A from 1-6' loop. This tells the game to run that part of the trigger 6 times, allowing six players to be added with very few actions.

Could you post a screenshot of the multiboard in-game?

Umm... Why so many i+1s? Player one from that will appear on row 3, player two row 6, player three row 9 ect. Just do the 'set i to i + 1' action and change everything else to 'set PlayerRow to i' and 'row i'. Also, why the If/then/else? there are no conditions so it is useless.

I removed the conditions for debugging purposes. and the integer i doesn't do anything but count how many times the loop has been run through, why? Because I need it to save which row which player has been added to for later reference..

Example.. Player 1 is playing. Player 5 is playing.. Then the game has to be told to save player 5's data to row 3 instead of row 6. (Note the first row has been used to add text labels)

This means that if I want to alter player 5's data such as kills, I will need to refer to row 3, not row 6.. this is why I have an integer counting how many times the loop has been run through, and thus to what row which player goes.
 

Icyculyr

I'm a Mac
Reaction score
68
Try it like this:

Trigger:
  • Init multiboard
    • Events
    • Time - Elapsed game time is 2.00 seconds
    • Conditions
    • Actions
    • Multiboard - Create a multiboard with 3 columns and (1 + (Number of players in Players)) rows, titled (Colors[10] + Game Status|r)
    • Multiboard - Set the text for (Last created multiboard) item in column 1, row 1 to (Colors[10] + Player:|r)
    • Multiboard - Set the text for (Last created multiboard) item in column 2, row 1 to (Colors[10] + Karakter:|r)
    • Multiboard - Set the text for (Last created multiboard) item in column 3, row 1 to (Colors[10] + Kills:|r)
    • 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
    • Then - Actions
    • Set i = (i + 1)
    • Set PlayerRow[(Integer A)] = (i + 1)
    • Multiboard - Set the text for (Last created multiboard) item in column 1, row (i + 1) to (Colors[(Integer A)] + (Name of (Player((Integer A)))))
    • Multiboard - Set the text for (Last created multiboard) item in column 2, row (i + 1) to (Colors[(Integer A)] + (String(LivesLabel[Lives[(Integer A)]])))
    • Multiboard - Set the text for (Last created multiboard) item in column 3, row (i + 1) to (Colors[(Integer A)] + (String(Kills[(Integer A)])))
    • Else - Actions
    • Multiboard - Set the display style for (Last created multiboard) item in column 0, row 0 to Show text and Hide icons
    • Multiboard - Set the width for (Last created multiboard) item in column 0, row 0 to 10.00% of the total screen width
    • Multiboard - Set the width for (Last created multiboard) item in column 3, row 0 to 6.00% of the total screen width
    • Multiboard - Minimize (Last created multiboard)
    • Multiboard - Maximize (Last created multiboard)
    • Do nothing


I don't think you can add players after the display has been adjusted.. maybe I don't know.
After you create the multiboard add the Game - Display message to All Players - Integer To String (Number of players in Players).

FYI it's flat unfortunately, I only moved the multiboard actions between Display Style and maximize to the bottom.


Kind Regards
 

Danis[h]

New Member
Reaction score
19
Try it like this:

Trigger:
  • Init multiboard
    • Events
    • Time - Elapsed game time is 2.00 seconds
    • Conditions
    • Actions
    • Multiboard - Create a multiboard with 3 columns and (1 + (Number of players in Players)) rows, titled (Colors[10] + Game Status|r)
    • Multiboard - Set the text for (Last created multiboard) item in column 1, row 1 to (Colors[10] + Player:|r)
    • Multiboard - Set the text for (Last created multiboard) item in column 2, row 1 to (Colors[10] + Karakter:|r)
    • Multiboard - Set the text for (Last created multiboard) item in column 3, row 1 to (Colors[10] + Kills:|r)
    • 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
    • Then - Actions
    • Set i = (i + 1)
    • Set PlayerRow[(Integer A)] = (i + 1)
    • Multiboard - Set the text for (Last created multiboard) item in column 1, row (i + 1) to (Colors[(Integer A)] + (Name of (Player((Integer A)))))
    • Multiboard - Set the text for (Last created multiboard) item in column 2, row (i + 1) to (Colors[(Integer A)] + (String(LivesLabel[Lives[(Integer A)]])))
    • Multiboard - Set the text for (Last created multiboard) item in column 3, row (i + 1) to (Colors[(Integer A)] + (String(Kills[(Integer A)])))
    • Else - Actions
    • Multiboard - Set the display style for (Last created multiboard) item in column 0, row 0 to Show text and Hide icons
    • Multiboard - Set the width for (Last created multiboard) item in column 0, row 0 to 10.00% of the total screen width
    • Multiboard - Set the width for (Last created multiboard) item in column 3, row 0 to 6.00% of the total screen width
    • Multiboard - Minimize (Last created multiboard)
    • Multiboard - Maximize (Last created multiboard)
    • Do nothing


I don't think you can add players after the display has been adjusted.. maybe I don't know.
After you create the multiboard add the Game - Display message to All Players - Integer To String (Number of players in Players).

FYI it's flat unfortunately, I only moved the multiboard actions between Display Style and maximize to the bottom.


Kind Regards

This did nothing, a good suggestion though.
 

Danis[h]

New Member
Reaction score
19
Alright, what did the Message of how many players in the Player Group players display?

Doooh what a huge oversight.. I add players to the playergroup in the main initialization trigger of the map, and here I still had the condition of Player controller and player slot status, so no matter what I changed in the multiboard trigger, it would only make it with 2 lines because the playergroup only had me in it, and so it couldn't write to the last lines as those didn't exist.

It works like a charm now.
thank you.

picture =]
screenie.jpg

Screenshot eins
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top