• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

[Trigger] Multiboard

Status
Not open for further replies.
Level 2
Joined
Jun 22, 2010
Messages
12
Hi guys, I've read your many tutorials regarding multiboards here, on worldeditors and on thehelp.net, but I still can't find anything to help resolve my issue.
There is one multiboard, with one team containing 10 players and the other containing 2 players. When I'm playing with a full house, the multiboard looks completely fine; when playing with 3 people for example, I'm missing a whole bunch of rows (please view attachments below).
This is my current setup (there are more triggers, just not relevant to the specific issue):
  • Initialization
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Forces[1] = (All enemies of Player 11 (Dark Green))
      • Set Color_Text[1] = |cffFF0000
      • Set Color_Text[2] = |cff0000FF
      • Set Color_Text[3] = |cff00FFFF
      • Set Color_Text[4] = |cff800080
      • Set Color_Text[5] = |cffFFFF00
      • Set Color_Text[6] = |cffFF8000
      • Set Color_Text[7] = |cff00FF00
      • Set Color_Text[8] = |cffFF80C0
      • Set Color_Text[9] = |cffC0C0C0
      • Set Color_Text[10] = |cff80FFFF
      • Set Forces[2] = (All enemies of Player 2 (Blue))
      • Set Color_Text[11] = |cff008000
      • Set Color_Text[12] = |cff804000
  • Create the Multiboard
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Set MultiBoard_Players = (Number of players in (All players matching (((Matching player) slot status) Equal to Is playing)))
      • Multiboard - Create a multiboard with 3 columns and (MultiBoard_Players + 2) rows, titled |cFFFC1803S|r|cFFFB...
      • Set MultiBoard = (Last created multiboard)
      • Multiboard - Set the text for (Last created multiboard) item in column 1, row 1 to |cFFFFCC00Kitties|r
      • Multiboard - Set the text for (Last created multiboard) item in column 2, row 1 to |cff00FF00Saves|r
      • Multiboard - Set the text for (Last created multiboard) item in column 3, row 1 to |cffFF0000Deaths|r
      • Multiboard - Set the text for (Last created multiboard) item in column 1, row 12 to |cFFFFCC00Mammoths|...
      • Multiboard - Set the text for (Last created multiboard) item in column 2, row 12 to |cff00FF00Kills|r
      • Multiboard - Set the text for (Last created multiboard) item in column 3, row 12 to |cffFF0000Deaths|r
      • For each (Integer A) from 1 to (MultiBoard_Players + 2), do (Actions)
        • Loop - Actions
          • Multiboard - Set the display style for (Last created multiboard) item in column 1, row (Integer A) to Show text and Hide icons
          • Multiboard - Set the display style for (Last created multiboard) item in column 2, row (Integer A) to Show text and Hide icons
          • Multiboard - Set the display style for (Last created multiboard) item in column 3, row (Integer A) to Show text and Hide icons
          • Multiboard - Set the width for (Last created multiboard) item in column 1, row (Integer A) to 10.00% of the total screen width
          • Multiboard - Set the width for (Last created multiboard) item in column 2, row (Integer A) to 5.00% of the total screen width
          • Multiboard - Set the width for (Last created multiboard) item in column 3, row (Integer A) to 5.00% of the total screen width
      • Set List = 2
      • Set List_Copy = 13
      • Player Group - Pick every player in Forces[1] and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked player) slot status) Equal to Is playing
            • Then - Actions
              • Set Multiboard_Spots[(Player number of (Picked player))] = List
              • Multiboard - Set the text for (Last created multiboard) item in column 1, row List to (Color_Text[(Player number of (Picked player))] + ((Name of (Picked player)) + |r))
              • Multiboard - Set the text for (Last created multiboard) item in column 2, row List to (|cff00FF00 + 0|r)
              • Multiboard - Set the text for (Last created multiboard) item in column 3, row List to (|cffFF0000 + 0|r)
              • Set List = (List + 1)
            • Else - Actions
      • Player Group - Pick every player in Forces[2] and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked player) slot status) Equal to Is playing
            • Then - Actions
              • Set Multiboard_Spots[(Player number of (Picked player))] = List_Copy
              • Multiboard - Set the text for (Last created multiboard) item in column 1, row List_Copy to (Color_Text[(Player number of (Picked player))] + ((Name of (Picked player)) + |r))
              • Multiboard - Set the text for (Last created multiboard) item in column 2, row List_Copy to (|cff00FF00 + 0|r)
              • Multiboard - Set the text for (Last created multiboard) item in column 3, row List_Copy to (|cffFF0000 + 0|r)
              • Set List_Copy = (List_Copy + 1)
            • Else - Actions
      • Multiboard - Show (Last created multiboard)
      • Multiboard - Maximize (Last created multiboard)
JASS:
function Trig_Leaving_Actions takes nothing returns nothing
    call MultiboardSetItemValueBJ( udg_MultiBoard, 1, GetConvertedPlayerId(GetTriggerPlayer()), ( ( "|cffA2B5CD" + GetPlayerName(GetTriggerPlayer()) ) + ( "<left>" + "|r" ) ) )
endfunction

//===========================================================================
function InitTrig_Multiboard_Leaver takes nothing returns nothing
    set gg_trg_Multiboard_Leaver = CreateTrigger(  )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(0) )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(1) )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(2) )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(3) )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(4) )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(5) )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(6) )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(7) )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(8) )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(9) )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(10) )
    call TriggerRegisterPlayerEventLeave( gg_trg_Multiboard_Leaver, Player(11) )
    call TriggerAddAction( gg_trg_Multiboard_Leaver, function Trig_Leaving_Actions )
endfunction
 

Attachments

  • we1.png
    we1.png
    228 KB · Views: 151
  • we2.png
    we2.png
    63 KB · Views: 104
Last edited:
Level 29
Joined
Oct 24, 2012
Messages
6,543
Anything used twice or more should be stored into a variable. The variable should then be used.
Never use integer A / B. They are slower and less efficient.
Don't convert to jass to post it. If you use GUI keep it as triggers.

Your check for ((Picked player) slot status) Equal to Is playing is not sufficient.
That only checks if a player is playing. For example a computer player is also playing.
You also need to check to see if that players controller status is = to user.

Were do you add players to the forces as I believe that is your problem area.

You should take a look at my tutorial things you should know when using triggers / gui. Link is in my sig.

Also please use hidden tags since your triggers are pretty big.
 
Level 2
Joined
Jun 22, 2010
Messages
12
Alright thanks man, ill try out your suggestion and Ill let you know how it goes.

Edit: After countless tries, I'm still having the same issues listed above. Could anyone help?
Edit#2: Solved.
 
Last edited:
Status
Not open for further replies.
Top