• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

GetLocalPlayer() Desync

Status
Not open for further replies.
Level 8
Joined
Mar 3, 2009
Messages
327
My multiboard inventory system, scourge of the help section for thatp ast week still has problems :/ The map desyncs at initialization. If theres a fix, or another way to make multiboards mpi please post it here :)

  • Inventory Init
    • Events
      • Time - Elapsed game time is 2.00 seconds
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set InvHash = (Last created hashtable)
      • For each (Integer B) from 1 to 10, do (Actions)
        • Loop - Actions
          • Custom script: if GetLocalPlayer() == ConvertedPlayer(GetForLoopIndexB()) then
          • Multiboard - Create a multiboard with 2 columns and 20 rows, titled Inventory
          • Set Inventory[(Integer B)] = (Last created multiboard)
          • Multiboard - Set the width for Inventory[(Integer B)] item in column 0, row 0 to 16.00% of the total screen width
          • Multiboard - Set the display style for Inventory[(Integer B)] item in column 0, row 0 to Show text and Hide icons
          • -------- Equipped stuff --------
          • For each (Integer A) from 1 to 6, do (Actions)
            • Loop - Actions
              • Multiboard - Set the width for Inventory[(Integer B)] item in column 2, row (Integer A) to 8.00% of the total screen width
              • Multiboard - Set the width for Inventory[(Integer B)] item in column 1, row (Integer A) to 8.00% of the total screen width
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 1 to (Helm)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 2 to (body)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 3 to (Boots)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 4 to (Gloves)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 5 to (Left Hand)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 6 to (Right Hand)
          • -------- description --------
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 1, row 7 to Description:
          • -------- items --------
          • For each (Integer A) from 8 to 20, do (Actions)
            • Loop - Actions
              • Player Group - Pick every player in (All players) and do (Actions)
                • Loop - Actions
                  • Hashtable - Save True as (Integer A) of (Key (Picked player)) in InvHash
              • Multiboard - Set the width for Inventory[(Integer B)] item in column 1, row (Integer A) to 13.00% of the total screen width
              • Multiboard - Set the width for Inventory[(Integer B)] item in column 2, row (Integer A) to 3.00% of the total screen width
          • Multiboard - Minimize Inventory[(Integer B)]
          • Multiboard - Maximize Inventory[(Integer B)]
          • Custom script: endif
 
Last edited:
You need to create the multiboard for all players and this is the point where you will add the GetLocalPlayer():
  • Set Display = False
  • Custom script: if GetLocalPlayer() == GetConvertedPlayer(GetForLoopIndexB()) then
  • Set Display = True
  • Custom script: endif
  • Custom script: call MultiboardDisplay (udg_Inventory[GetForLoopIndexB()], udg_Display)
 
oh.. that must have been when i tried it without getlocalplayer. It's definately that trigger thats the problem. Its hard to test because it doesnt desync with just one person

Yep, as Pharaoh_ said it is because you use "Create Multiboard..." within the GetLocalPlayer() block. Since multiboards are allocated normally with a value > 0x100000 (1048576) they will desync when created within a local player block. (The only handle that isn't normally allocated is pretty much a texttag, their handle values go from 0-99)

You can either use Pharaoh_'s method or simply:
  • Custom script: if GetLocalPlayer() == Player(bj_forLoopIndexB-1) then
  • Multiboard - Display (Inventory[(Integer B)])
  • Custom script: endif
Since using that function directly won't desync, the cases where you need to use an actual global/local variable is usually when you need to physically create something (thus you can switch something like the string path or whatever locally). For more info:
GetLocalPlayer()
 
Level 8
Joined
Mar 3, 2009
Messages
327
i think i understand now :D
so if it creates a handle for a specific player that will make them desync, but if its just showing or hiding something it won't?

  • Inventory Init test
    • Events
      • Time - Elapsed game time is 2.00 seconds
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set InvHash = (Last created hashtable)
      • For each (Integer B) from 1 to 10, do (Actions)
        • Loop - Actions
          • Multiboard - Create a multiboard with 2 columns and 20 rows, titled Inventory
          • Set Inventory[(Integer B)] = (Last created multiboard)
          • Multiboard - Set the width for Inventory[(Integer B)] item in column 0, row 0 to 16.00% of the total screen width
          • Multiboard - Set the display style for Inventory[(Integer B)] item in column 0, row 0 to Show text and Hide icons
          • -------- Equipped stuff --------
          • For each (Integer A) from 1 to 6, do (Actions)
            • Loop - Actions
              • Multiboard - Set the width for Inventory[(Integer B)] item in column 2, row (Integer A) to 8.00% of the total screen width
              • Multiboard - Set the width for Inventory[(Integer B)] item in column 1, row (Integer A) to 8.00% of the total screen width
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 1 to (Helm)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 2 to (body)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 3 to (Boots)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 4 to (Gloves)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 5 to (Left Hand)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 6 to (Right Hand)
          • -------- description --------
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 1, row 7 to Description:
          • -------- items --------
          • For each (Integer A) from 8 to 20, do (Actions)
            • Loop - Actions
              • Player Group - Pick every player in (All players) and do (Actions)
                • Loop - Actions
                  • Hashtable - Save True as (Integer A) of (Key (Picked player)) in InvHash
              • Multiboard - Set the width for Inventory[(Integer B)] item in column 1, row (Integer A) to 13.00% of the total screen width
              • Multiboard - Set the width for Inventory[(Integer B)] item in column 2, row (Integer A) to 3.00% of the total screen width
          • Multiboard - Minimize Inventory[(Integer B)]
          • Multiboard - Maximize Inventory[(Integer B)]
          • Custom script: if GetLocalPlayer() != ConvertedPlayer(GetForLoopIndexB()) then
          • Multiboard - Hide (Last created multiboard)
          • Custom script: endif
should that work? if it wont can you please post the corrected version? thanks :D
 
i think i understand now :D
so if it creates a handle for a specific player that will make them desync, but if its just showing or hiding something it won't?

Exactly. =)

should that work? if it wont can you please post the corrected version? thanks :D

Yep, that'll work just fine. Good job, usually it takes a while before people actually understand what I'm talking about. =D
 
Level 8
Joined
Mar 3, 2009
Messages
327
lol thanks
edit: it works, except it stuffs up all my inventory triggers, and doesnt configure the cell width and icon settings right :( any obvious problems in the trigger above? there are definately problems with setting the inventory variable.
 
Last edited:
Level 8
Joined
Mar 3, 2009
Messages
327
yeah, the shape is a little bit off after that i think, i might be wrong. It still shows the icons, which i disabled. Also, you can't toggle the inventory with the esc key (which is a feature i added) or move.

the arrow key related triggers detect if Inventory[player number of(triggering player)] is open, then either move the hero or change the inventory selection.

the inventory selection doesnt seem to work either (i dont think) and if I could pick up items I doubt that would work either

my conclusion is that the inventory variable isnt being set correctly, thus all of the conditions that involve the inventory variable are returning the wrong values. Is there a better way to set all of them other than the loops?
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
Okay, so the map no longer desyncs at the start of the game.

Now what is the problem, exactly? Is there a better way to handle this code than a loop? The answer would be no, a loop would be the best way to handle this actually. If you post a map I may be inclined to try and get it working, though GUI isn't really my thing. Post it up anyways though if you want me to help you figure out why your multiboard isn't working.
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
Okay, I found the problem.

In my experience multiboards tend to be pretty static objects. There was an old post by Ammorth (and another by Anachron) that showed some instances of multiboards not operating as they were told to, and it seemed to be caused from the use of MultiboardSetRowCount() and MultiboardSetColumnCount() to shrink the size of the multiboard.

I think that there is a similar problem here. You frequently try to alter the item width of displayed items in a multiboard, and the way you do it forces the "size" to change dramatically at various points throughout the multiboard. If you remove your uses of Set multiboard item-width and only apply width settings a single time, it seems to function "more properly". I'm going to test a little more and see if maybe it's just shrinking the multiboard that causes the problem, in which case you would be able to start small and build up.

Okay, confirmed that this is the problem. I don't think that setting the individual width of rows or columns is a supported feature, because this seriously bugs out the multiboard. If you only change the item-width of entire columns (meaning the row is 0, so it is applied for all rows) then it seems like the board is still able to handle this, and nothing strange happens.
 
Last edited:
Level 8
Joined
Mar 3, 2009
Messages
327
o_O can you post your edited code? when i just set all the columns and rows to 8% of the total screen width at once, the multiboard doesn't even show up, and I cant move :/

  • Inventory Init test
    • Events
      • Time - Elapsed game time is 2.00 seconds
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set InvHash = (Last created hashtable)
      • For each (Integer B) from 1 to 10, do (Actions)
        • Loop - Actions
          • Multiboard - Create a multiboard with 2 columns and 20 rows, titled Inventory
          • Set Inventory[(Integer B)] = (Last created multiboard)
          • Multiboard - Set the width for Inventory[(Integer B)] item in column 0, row 0 to 8.00% of the total screen width
          • Multiboard - Set the display style for Inventory[(Integer B)] item in column 0, row 0 to Show text and Hide icons
          • -------- Equipped stuff --------
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 1 to (Helm)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 2 to (body)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 3 to (Boots)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 4 to (Gloves)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 5 to (Left Hand)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 6 to (Right Hand)
          • -------- description --------
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 1, row 7 to Description:
          • -------- items --------
          • For each (Integer A) from 8 to 20, do (Actions)
            • Loop - Actions
              • Player Group - Pick every player in (All players) and do (Actions)
                • Loop - Actions
                  • Hashtable - Save True as (Integer A) of (Key (Picked player)) in InvHash
          • Multiboard - Minimize Inventory[(Integer B)]
          • Multiboard - Maximize Inventory[(Integer B)]
          • Custom script: if GetLocalPlayer() != ConvertedPlayer(GetForLoopIndexB()) then
          • Multiboard - Hide (Last created multiboard)
          • Custom script: endif
am i doing something wrong here?
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
The reason your multiboard doesn't show up is because you don't "Show" it. Replace the != in your custom script with == and replace the Hide action with a Show action. It seems like this is how you were doing it before, but this makes no logical sense. A multiboard must be displayed in order for it to be visible, and if there is no "Show" action then that should never happen. The multiboard shouldn't have been showing up for you in the past, but perhaps since you were doing Minimize/Maximize something glitched; everything about multiboards seems to be laced with problems.

Also, minimizing/maximizing the multiboard seems to have glitchy results, I haven't tested it with a 0-second timer yet though but I'll see.

This is my code:
  • Inventory Init
    • Events
      • Time - Elapsed game time is 1.00 seconds
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set InvHash = (Last created hashtable)
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Multiboard - Create a multiboard with 2 columns and 20 rows, titled Inventory
          • Set Inventory[(Integer A)] = (Last created multiboard)
          • Custom script: if(GetPlayerId(GetLocalPlayer())==bj_forLoopAIndex-1) then
          • Custom script: call MultiboardDisplay(udg_Inventory[bj_forLoopAIndex], true)
          • Custom script: endif
          • Multiboard - Set the width for (Last created multiboard) item in column 1, row 0 to 4.00% of the total screen width
          • Multiboard - Set the width for (Last created multiboard) item in column 2, row 0 to 4.00% of the total screen width
          • Multiboard - Set the display style for Inventory[(Integer A)] item in column 1, row 0 to Show text and Hide icons
          • -------- Equipped stuff --------
          • Multiboard - Set the text for Inventory[(Integer A)] item in column 2, row 1 to (Helm)
          • Multiboard - Set the text for Inventory[(Integer A)] item in column 2, row 2 to (body)
          • Multiboard - Set the text for Inventory[(Integer A)] item in column 2, row 3 to (Boots)
          • Multiboard - Set the text for Inventory[(Integer A)] item in column 2, row 4 to (Gloves)
          • Multiboard - Set the text for Inventory[(Integer A)] item in column 2, row 5 to (Left Hand)
          • Multiboard - Set the text for Inventory[(Integer A)] item in column 2, row 6 to (Right Hand)
          • -------- description --------
          • Multiboard - Set the text for Inventory[(Integer A)] item in column 1, row 7 to Description:
          • -------- items --------
          • For each (Integer B) from 8 to 20, do (Actions)
            • Loop - Actions
              • Player Group - Pick every player in (All players) and do (Actions)
                • Loop - Actions
                  • Hashtable - Save True as (Integer B) of (Key (Picked player)) in InvHash
If I were to change the width of a column, it would work correctly however if I were to change the width of a specific row it will bug the multiboard.
 
Level 8
Joined
Mar 3, 2009
Messages
327
thanks a lot, it looks fine now :) but yeah it still isn't detecting the multiboard being minimized/maximized, and i'm guessing its because the variables aren't assigning right.

A 0 second timer doesn't work.

minimizing/maximising manually doesnt seem to have glitchy results for me?
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
GoGoTauren said:
minimizing/maximising manually doesnt seem to have glitchy results for me?

GoGoTauren said:
but yeah it still isn't detecting the multiboard being minimized/maximized

What exactly do you mean by "detecting", and if it is not working then how are the results not glitchy for you?

Also, just so I don't have to ask later, can you post your updated code?
 
Level 8
Joined
Mar 3, 2009
Messages
327
The manual minimizing/maximising isnt whats glitching, all the multiboard aesthetics are working fine now.

  • inv toggle
    • Events
      • Player - Player 1 (Red) skips a cinematic sequence
      • Player - Player 2 (Blue) skips a cinematic sequence
      • Player - Player 3 (Teal) skips a cinematic sequence
      • Player - Player 4 (Purple) skips a cinematic sequence
      • Player - Player 5 (Yellow) skips a cinematic sequence
      • Player - Player 6 (Orange) skips a cinematic sequence
      • Player - Player 7 (Green) skips a cinematic sequence
      • Player - Player 8 (Pink) skips a cinematic sequence
      • Player - Player 9 (Gray) skips a cinematic sequence
      • Player - Player 10 (Light Blue) skips a cinematic sequence
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Inventory[(Player number of (Triggering player))] is minimized) Equal to True
        • Then - Actions
          • Multiboard - Maximize Inventory[(Player number of (Triggering player))]
        • Else - Actions
          • Multiboard - Minimize Inventory[(Player number of (Triggering player))]
when any player presses escape, the multiboard isn't maximizing or minimizing. I was saying that the
  • If - Conditions
    • (Inventory[(Player number of (Triggering player))] is minimized) Equal to True
wasnt being detected.

Thinking now though, the game also wouldnt know which inventory to minimize/maximize.

What I'm assuming is that the variables arent setting correctly, and stuffing everything up.

my new code is
  • Inventory Init test
    • Events
      • Time - Elapsed game time is 1.00 seconds
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set InvHash = (Last created hashtable)
      • For each (Integer B) from 1 to 10, do (Actions)
        • Loop - Actions
          • Multiboard - Create a multiboard with 2 columns and 20 rows, titled Inventory
          • Set Inventory[(Integer B)] = (Last created multiboard)
          • Custom script: if(GetPlayerId(GetLocalPlayer())==bj_forLoopBIndex-1) then
          • Custom script: call MultiboardDisplay(udg_Inventory[bj_forLoopBIndex], true)
          • Custom script: endif
          • Multiboard - Set the width for Inventory[(Integer B)] item in column 0, row 0 to 10.00% of the total screen width
          • Multiboard - Set the display style for Inventory[(Integer B)] item in column 0, row 0 to Show text and Hide icons
          • -------- Equipped stuff --------
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 1 to (Helm)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 2 to (body)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 3 to (Boots)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 4 to (Gloves)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 5 to (Left Hand)
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 2, row 6 to (Right Hand)
          • -------- description --------
          • Multiboard - Set the text for Inventory[(Integer B)] item in column 1, row 7 to Description:
          • -------- items --------
          • For each (Integer A) from 8 to 20, do (Actions)
            • Loop - Actions
              • Player Group - Pick every player in (All players) and do (Actions)
                • Loop - Actions
                  • Hashtable - Save True as (Integer A) of (Key (Picked player)) in InvHash
          • Multiboard - Minimize Inventory[(Integer B)]
          • Multiboard - Maximize Inventory[(Integer B)]
what would we do without copy as text ;)
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
Player number of (Triggering player) when (Triggering player) refers to the first player will return 1.

When you set your multiboard up you start the loop at 1, and end it at 10, basically meaning that the variable references should be fine. I'll take a look at your other trigger and get back to you.

Okay, the problem wasn't the variable references, actually the function was working perfectly okay; the problem was the multiboard display. What you need to do is hide/show the multiboard for the triggering player so that it can be updated, displaying the actual state of the multiboard.

  • inv toggle
    • Events
      • Player - Player 1 (Red) skips a cinematic sequence
      • Player - Player 2 (Blue) skips a cinematic sequence
      • Player - Player 3 (Teal) skips a cinematic sequence
      • Player - Player 4 (Purple) skips a cinematic sequence
      • Player - Player 5 (Yellow) skips a cinematic sequence
      • Player - Player 6 (Orange) skips a cinematic sequence
      • Player - Player 7 (Green) skips a cinematic sequence
      • Player - Player 8 (Pink) skips a cinematic sequence
      • Player - Player 9 (Gray) skips a cinematic sequence
      • Player - Player 10 (Light Blue) skips a cinematic sequence
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Inventory[(Player number of (Triggering player))] is minimized) Equal to True
        • Then - Actions
          • Custom script: call BJDebugMsg("Maximize!")
          • Multiboard - Maximize Inventory[(Player number of (Triggering player))]
        • Else - Actions
          • Multiboard - Minimize Inventory[(Player number of (Triggering player))]
          • Custom script: call BJDebugMsg("Minimize!")
      • Custom script: if(GetLocalPlayer()==GetTriggerPlayer()) then
      • Multiboard - Hide Inventory[(Player number of (Triggering player))]
      • Multiboard - Show Inventory[(Player number of (Triggering player))]
      • Custom script: endif
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
Good luck with your map, I actually didn't mind moving around with the Paladin, the terrain is nice and the movement (in single player, at least) is really smooth.

I have a suggestion, if I may.

When you are walking around as the Paladin and you walk into rock terrain, notice how your hero doesn't stutter (as well as the camera) when trying to move into it despite it being unpathable. When you try the same thing on a rock doodad or some other unpathable zone, the Paladin seems to stutter as if he's continuously moving forward, but unable to. You should fix this so that the hero doesn't move if the area in front of him that he is trying to move to is walkable.

I think it's handled by this part:
  • Untitled Trigger 001
    • Events
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Terrain type at temppoint1[(Player number of (Picked player))]) Equal to Village - Rocks
        • Then - Actions
          • Animation - Play Hero[(Player number of (Picked player))]'s stand animation
          • Unit - Move Hero[(Player number of (Picked player))] instantly to temppoint[(Player number of (Picked player))]
        • Else - Actions
          • Unit - Move Hero[(Player number of (Picked player))] instantly to temppoint1[(Player number of (Picked player))]
When I tested it the first time it worked really smoothly, now it seems to be bumping my hero around. I don't know, if I look into it further I'll try to shine some more light on it; other than that I think this thread has been solved.
 
Level 8
Joined
Mar 3, 2009
Messages
327
it's nice to hear that, most people just bitch about the camera system lol.
It feels wrong to start a new thread for this; so what do you think would be a better event for the item pick up trigger? the hero having an inventory causes bugs.

i don't think theres a way to detect a player selecting an item, and right clicking doesn't count as an order without the hero first having an inventory.

congrats on the blue gem btw :p

as to your suggestion;
yeah i spent a lot of time mucking around with pathing. Is there some way to detect pathability in general, for a given point?

and yeah this thread is basically solved :D
 
Level 10
Joined
May 27, 2009
Messages
494
OK i have the same problem as Tauren's

My board always gives any of this problems:
Fatal Error
Text Informations Not Displayed (only icons)
No multiboard is showed to any player at all..

here's my triggers

  • Multiboard Setup
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Countdown Timer - Start CounterPeriodicEventsTimer as a One-shot timer that will expire in 25.00 seconds
      • Leaderboard - Create a leaderboard for PlayersSerdin titled Serdin
      • Set LeaderboardSerdin = (Last created leaderboard)
      • Leaderboard - Hide LeaderboardSerdin
      • Leaderboard - Create a leaderboard for PlayersKanavan titled Kanavan
      • Set LeaderboardKanavan = (Last created leaderboard)
      • Leaderboard - Hide LeaderboardKanavan
      • Player Group - Pick every player in PlayersSerdin and do (Actions)
        • Loop - Actions
          • Leaderboard - Add (Picked player) to LeaderboardSerdin with label (Name of (Picked player)) and value 0
      • Player Group - Pick every player in PlayersKanavan and do (Actions)
        • Loop - Actions
          • Leaderboard - Add (Picked player) to LeaderboardKanavan with label (Name of (Picked player)) and value 0
      • Trigger - Run Create Multiboard <gen> (ignoring conditions)



  • Create Multiboard
    • Events
    • Conditions
    • Actions
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • Multiboard - Create a multiboard with 7 columns and (6 + PlayersCount) rows, titled Grand Chase
          • Set MultiboardsLocal[(Integer A)] = (Last created multiboard)
          • Custom script: if ( GetLocalPlayer() == ConvertedPlayer(bj_forLoopAIndex-1) ) then
          • Custom script: call MultiboardDisplay(udg_MultiboardsLocal[bj_forLoopAIndex], true)
          • Custom script: set udg_Multiboard_PlayerHasBoard[bj_forLoopAIndex] = true
          • Custom script: endif
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row 1 to Player
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 2, row 1 to L
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 3, row 1 to |c00ff0303K|r
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row 1 to |c000042ffD|r
          • -------- Now set the fields for the first row, AND our player rows. --------
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 0, row 0 to Show text and Hide icons
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 1, row 0 to 11.00% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 2, row 0 to 2.50% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 3, row 0 to 2.25% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 4, row 0 to 2.25% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 5, row 0 to 2.25% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 6, row 0 to 3.00% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 7, row 0 to 3.40% of the total screen width
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 2, row 0 to (70.00%, 70.00%, 70.00%) with 0.00% transparency
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 3, row 0 to (70.00%, 70.00%, 70.00%) with 0.00% transparency
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 4, row 0 to (70.00%, 70.00%, 70.00%) with 0.00% transparency
          • -------- DEFINE PLAYERS ON THE BOARD --------
          • Trigger - Run Sort Multiboard <gen> (ignoring conditions)
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row 0 to Show text and Show icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row 0 to Show text and Show icons
          • Multiboard - Set the icon for MultiboardsLocal[(Integer A)] item in column 1, row 0 to UI\Widgets\Console\Undead\undead-inventory-slotfiller.blp
          • Multiboard - Set the icon for MultiboardsLocal[(Integer A)] item in column 6, row 0 to UI\Widgets\Console\Undead\undead-inventory-slotfiller.blp
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row 1 to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row 1 to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 7, row 0 to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 7, row 1 to Hide text and Show icons
          • Multiboard - Set the icon for MultiboardsLocal[(Integer A)] item in column 7, row 1 to UI\Feedback\Resources\ResourceGold.blp
          • -------- Assist --------
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row 0 to |c009596970
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row 1 to |c00959697A
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 6, row 1 to Pet
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 6, row 0 to (100.00%, 100.00%, 100.00%) with 20.00% transparency
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row 2 to
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 5, row 0 to (100.00%, 100.00%, 100.00%) with 0.00% transparency
          • -------- Serdin Team --------
          • Set TempInteger = 2
          • Set Multiboard_Spots[1] = TempInteger
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row TempInteger to PlayerNames[1]
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 2, row TempInteger to
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 3, row TempInteger to |c00ff0303 0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row TempInteger to |c000042ff 0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row TempInteger to
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 6, row TempInteger to
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row TempInteger to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row TempInteger to Show text and Hide icons
          • -------- Kanavan Team --------
          • Set TempInteger = ((Number of players in PlayersSerdin) + 3)
          • Set Multiboard_Spots[7] = TempInteger
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row TempInteger to PlayerNames[7]
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 2, row TempInteger to
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 3, row TempInteger to |c00ff0303 0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row TempInteger to |c000042ff 0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row TempInteger to
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 6, row TempInteger to
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row TempInteger to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row TempInteger to Show text and Hide icons
          • -------- PvP --------
          • Set MultiboardPvPSerdin = (PlayersCount + 5)
          • Set MultiboardPvPKanavan = (PlayersCount + 6)
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row MultiboardPvPSerdin to |c00ff8000PvP Wins/...
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row MultiboardPvPKanavan to |c00540081PvP Wins/...
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row MultiboardPvPSerdin to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row MultiboardPvPSerdin to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row MultiboardPvPKanavan to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row MultiboardPvPKanavan to Show text and Hide icons
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row MultiboardPvPSerdin to 0/0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row MultiboardPvPKanavan to 0/0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row MultiboardPvPKanavan to
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row MultiboardPvPSerdin to
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 4, row MultiboardPvPSerdin to (100.00%, 100.00%, 100.00%) with 0.00% transparency
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 4, row MultiboardPvPKanavan to (100.00%, 100.00%, 100.00%) with 0.00% transparency
          • -------- Battle Mode --------
          • Set Multiboard_BM = (PlayersCount + 4)
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row Multiboard_BM to Battle Mode
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row Multiboard_BM to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row Multiboard_BM to Show text and Hide icons
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row Multiboard_BM to -
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row Multiboard_BM to
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 4, row Multiboard_BM to (100.00%, 100.00%, 100.00%) with 0.00% transparency
          • Multiboard - Minimize MultiboardsLocal[(Integer A)]



  • Sort Multiboard
    • Events
    • Conditions
    • Actions
      • Player Group - Pick every player in PlayersSerdin and do (Actions)
        • Loop - Actions
          • Leaderboard - Change the value for (Picked player) in LeaderboardSerdin to ((Score_Kills[(Player number of (Picked player))] x 10000) - Score_Deaths[(Player number of (Picked player))])
      • Player Group - Pick every player in PlayersKanavan and do (Actions)
        • Loop - Actions
          • Leaderboard - Change the value for (Picked player) in LeaderboardKanavan to ((Score_Kills[(Player number of (Picked player))] x 10000) - Score_Deaths[(Player number of (Picked player))])
      • Leaderboard - Sort LeaderboardKanavan by Player in Ascending order
      • Leaderboard - Sort LeaderboardSerdin by Player in Ascending order
      • Set TempInteger = 2
      • Player Group - Pick every player in PlayersSerdin and do (Actions)
        • Loop - Actions
          • Set Multiboard_Spots[(Player number of (Picked player))] = ((Position of (Picked player) in LeaderboardSerdin) + TempInteger)
      • Set TempInteger = ((Number of players in PlayersSerdin) + 3)
      • Player Group - Pick every player in PlayersKanavan and do (Actions)
        • Loop - Actions
          • Set Multiboard_Spots[(Player number of (Picked player))] = ((Position of (Picked player) in LeaderboardKanavan) + TempInteger)
      • Player Group - Pick every player in Players and do (Actions)
        • Loop - Actions
          • Set TempInteger = (Player number of (Picked player))
          • For each (Integer Multiboard_integer) from 1 to 12, do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Multiboard_PlayerHasBoard[Multiboard_integer] Equal to True
                • Then - 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
                      • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 1, row Multiboard_Spots[TempInteger] to PlayerNames[TempInteger]
                    • Else - Actions
                      • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 1, row Multiboard_Spots[TempInteger] to LeaverHeroPlayerNames[TempInteger]
                  • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 2, row Multiboard_Spots[TempInteger] to (String(HeroUnitLevel[TempInteger]))
                  • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 3, row Multiboard_Spots[TempInteger] to (|c00ff0303 + (String(Score_Kills[TempInteger])))
                  • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 4, row Multiboard_Spots[TempInteger] to (|c000042ff + (String(Score_Deaths[TempInteger])))
                  • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 5, row Multiboard_Spots[TempInteger] to (|c00959697 + (String(Score_Assist[TempInteger])))
                  • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 6, row Multiboard_Spots[TempInteger] to ([|cffffcc00 + ((String(PetUnitLevel[TempInteger])) + |r]))
                • Else - Actions
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
When you're using a timer you can use a 0.00-second expiration time (in JASS) but I'm not so sure if the same rule can be applied when using the time-elapsed event.

GoGoTauren said:
i don't think theres a way to detect a player selecting an item, and right clicking doesn't count as an order without the hero first having an inventory.

Quick response. Have you tried power-ups?

GoGoTauren said:
yeah i spent a lot of time mucking around with pathing. Is there some way to detect pathability in general, for a given point?

Look in the Environment section of the conditions. There is a field there that checks whether pathability is off at a certain location.

  • Untitled Trigger 001
    • Events
    • Conditions
      • (Terrain pathing at (Center of (Playable map area)) of type Walkability is off) Equal to True
    • Actions
jim7777 said:
My board always gives any of this problems:
Fatal Error

I would try Cokemonkey11's approach first, if that doesn't work well post back here :p
 
Level 10
Joined
May 27, 2009
Messages
494
i try doing what cokemonkey says but it gives me a fatal error.

I think the problem is from this line:
  • Custom script: if ( GetLocalPlayer() == ConvertedPlayer(bj_forLoopAIndex-1) ) then
i try removing -1 but what happens is it only shows the icons and only show the texts in row 1.. I don't know what is really happening
 
Level 10
Joined
May 27, 2009
Messages
494
yeah i've already tried that .... its really that line..

I try using GetLoopAIndex() but no multiboard is showed..

are there any more suggestions??

EDIT:
its working fine now but no text is showned. All functions after the comment
  • -------- Serdin Team --------
are not run but skipped up to the
  • Multiboard - Minimize MultiboardsLocal[(Integer A)]
function.
 
Last edited:

Cokemonkey11

Spell Reviewer
Level 30
Joined
May 9, 2006
Messages
3,537
...Are you absolutely sure this:

JASS:
set udg_Multiboard_PlayerHasBoard[bj_forLoopAIndex] = true

isn't the problem line?

Edit: let me explain. That's the problem line because it desyncs the string table.

Also, change:

JASS:
if ( GetLocalPlayer() == ConvertedPlayer(bj_forLoopAIndex-1) ) then

to:

JASS:
if GetLocalPlayer()=Player(bj_forLoopAIndex) then
 
Level 10
Joined
May 27, 2009
Messages
494
ok i've tried what you say....

here's the new code:

  • Create Multiboard
    • Events
      • Time - Elapsed game time is 5.00 seconds
    • Conditions
    • Actions
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • Multiboard - Create a multiboard with 7 columns and (6 + PlayersCount) rows, titled Grand Chase
          • Set MultiboardsLocal[(Integer A)] = (Last created multiboard)
          • Custom script: if GetLocalPlayer() ==Player(bj_forLoopAIndex) then
          • Custom script: call MultiboardDisplay(udg_MultiboardsLocal[bj_forLoopAIndex], true)
          • Custom script: endif
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row 1 to Player
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 2, row 1 to L
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 3, row 1 to |c00ff0303K|r
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row 1 to |c000042ffD|r
          • -------- Now set the fields for the first row, AND our player rows. --------
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 0, row 0 to Show text and Hide icons
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 1, row 0 to 11.00% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 2, row 0 to 2.50% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 3, row 0 to 2.25% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 4, row 0 to 2.25% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 5, row 0 to 2.25% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 6, row 0 to 3.00% of the total screen width
          • Multiboard - Set the width for MultiboardsLocal[(Integer A)] item in column 7, row 0 to 3.40% of the total screen width
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 2, row 0 to (70.00%, 70.00%, 70.00%) with 0.00% transparency
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 3, row 0 to (70.00%, 70.00%, 70.00%) with 0.00% transparency
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 4, row 0 to (70.00%, 70.00%, 70.00%) with 0.00% transparency
          • -------- DEFINE PLAYERS ON THE BOARD --------
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row 0 to Show text and Show icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row 0 to Show text and Show icons
          • Multiboard - Set the icon for MultiboardsLocal[(Integer A)] item in column 1, row 0 to UI\Widgets\Console\Undead\undead-inventory-slotfiller.blp
          • Multiboard - Set the icon for MultiboardsLocal[(Integer A)] item in column 6, row 0 to UI\Widgets\Console\Undead\undead-inventory-slotfiller.blp
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row 1 to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row 1 to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 7, row 0 to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 7, row 1 to Hide text and Show icons
          • Multiboard - Set the icon for MultiboardsLocal[(Integer A)] item in column 7, row 1 to UI\Feedback\Resources\ResourceGold.blp
          • -------- Assist --------
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row 0 to |c009596970
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row 1 to |c00959697A
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 6, row 1 to Pet
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 6, row 0 to (100.00%, 100.00%, 100.00%) with 20.00% transparency
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row 2 to
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 5, row 0 to (100.00%, 100.00%, 100.00%) with 0.00% transparency
          • -------- Serdin Team --------
          • Set TempInteger = 2
          • Set Multiboard_Spots[1] = TempInteger
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row TempInteger to PlayerNames[1]
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 2, row TempInteger to
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 3, row TempInteger to |c00ff0303 0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row TempInteger to |c000042ff 0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row TempInteger to
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 6, row TempInteger to
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row TempInteger to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row TempInteger to Show text and Hide icons
          • -------- Kanavan Team --------
          • Set TempInteger = ((Number of players in PlayersSerdin) + 3)
          • Set Multiboard_Spots[7] = TempInteger
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row TempInteger to PlayerNames[7]
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 2, row TempInteger to
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 3, row TempInteger to |c00ff0303 0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row TempInteger to |c000042ff 0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row TempInteger to
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 6, row TempInteger to
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row TempInteger to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row TempInteger to Show text and Hide icons
          • -------- PvP --------
          • Set MultiboardPvPSerdin = (PlayersCount + 5)
          • Set MultiboardPvPKanavan = (PlayersCount + 6)
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row MultiboardPvPSerdin to |c00ff8000PvP Wins/...
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row MultiboardPvPKanavan to |c00540081PvP Wins/...
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row MultiboardPvPSerdin to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row MultiboardPvPSerdin to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row MultiboardPvPKanavan to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row MultiboardPvPKanavan to Show text and Hide icons
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row MultiboardPvPSerdin to 0/0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row MultiboardPvPKanavan to 0/0
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row MultiboardPvPKanavan to
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row MultiboardPvPSerdin to
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 4, row MultiboardPvPSerdin to (100.00%, 100.00%, 100.00%) with 0.00% transparency
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 4, row MultiboardPvPKanavan to (100.00%, 100.00%, 100.00%) with 0.00% transparency
          • -------- Battle Mode --------
          • Set Multiboard_BM = (PlayersCount + 4)
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 1, row Multiboard_BM to Battle Mode
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 1, row Multiboard_BM to Show text and Hide icons
          • Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 6, row Multiboard_BM to Show text and Hide icons
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 4, row Multiboard_BM to -
          • Multiboard - Set the text for MultiboardsLocal[(Integer A)] item in column 5, row Multiboard_BM to
          • Multiboard - Set the color for MultiboardsLocal[(Integer A)] item in column 4, row Multiboard_BM to (100.00%, 100.00%, 100.00%) with 0.00% transparency
          • Multiboard - Minimize MultiboardsLocal[(Integer A)]
      • Trigger - Run Sort Multiboard <gen> (ignoring conditions)


  • Sort Multiboard
    • Events
    • Conditions
    • Actions
      • Player Group - Pick every player in PlayersSerdin and do (Actions)
        • Loop - Actions
          • Leaderboard - Change the value for (Picked player) in LeaderboardSerdin to ((Score_Kills[(Player number of (Picked player))] x 10000) - Score_Deaths[(Player number of (Picked player))])
      • Player Group - Pick every player in PlayersKanavan and do (Actions)
        • Loop - Actions
          • Leaderboard - Change the value for (Picked player) in LeaderboardKanavan to ((Score_Kills[(Player number of (Picked player))] x 10000) - Score_Deaths[(Player number of (Picked player))])
      • Leaderboard - Sort LeaderboardKanavan by Player in Ascending order
      • Leaderboard - Sort LeaderboardSerdin by Player in Ascending order
      • Set TempInteger = 2
      • Player Group - Pick every player in PlayersSerdin and do (Actions)
        • Loop - Actions
          • Set Multiboard_Spots[(Player number of (Picked player))] = ((Position of (Picked player) in LeaderboardSerdin) + TempInteger)
      • Set TempInteger = ((Number of players in PlayersSerdin) + 3)
      • Player Group - Pick every player in PlayersKanavan and do (Actions)
        • Loop - Actions
          • Set Multiboard_Spots[(Player number of (Picked player))] = ((Position of (Picked player) in LeaderboardKanavan) + TempInteger)
      • Player Group - Pick every player in Players and do (Actions)
        • Loop - Actions
          • Set TempInteger = (Player number of (Picked player))
          • For each (Integer Multiboard_integer) from 1 to 12, 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
                  • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 1, row Multiboard_Spots[TempInteger] to PlayerNames[TempInteger]
                • Else - Actions
                  • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 1, row Multiboard_Spots[TempInteger] to LeaverHeroPlayerNames[TempInteger]
              • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 2, row Multiboard_Spots[TempInteger] to (String(HeroUnitLevel[TempInteger]))
              • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 3, row Multiboard_Spots[TempInteger] to (|c00ff0303 + (String(Score_Kills[TempInteger])))
              • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 4, row Multiboard_Spots[TempInteger] to (|c000042ff + (String(Score_Deaths[TempInteger])))
              • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 5, row Multiboard_Spots[TempInteger] to (|c00959697 + (String(Score_Assist[TempInteger])))
              • Multiboard - Set the text for MultiboardsLocal[Multiboard_integer] item in column 6, row Multiboard_Spots[TempInteger] to ([|cffffcc00 + ((String(PetUnitLevel[TempInteger])) + |r]))
Still same problem as the recent post. What could be the problem
 

Attachments

  • scrn5-2-10.JPG
    scrn5-2-10.JPG
    202.8 KB · Views: 109
Last edited:
Level 18
Joined
Jan 21, 2006
Messages
2,552
JASS:
if GetLocalPlayer()=Player(bj_forLoopAIndex) then[/quote]

This is no good either. The value of [icode=jass]bj_forLoopAIndex[/icode] will be 1 on the first iteration of the loop, and therefore your code will return [icode=jass]Player(1)[/icode] when it should be returning [icode=jass]Player(0)[/icode].

It should be:

[code=jass]if GetLocalPlayer()==Player(bj_forLoopAIndex-1) then

jim7777 said:
Still same problem as the recent post. What could be the problem

Wait, so does your code still cause a fatal error? Could you please clarify what the problem is because this thread has already been solved, it's hard to keep it organized as to what the actual problem is that is being discussed.
 
Level 10
Joined
May 27, 2009
Messages
494
ok

this function
JASS:
if GetLocalPlayer()==Player(bj_forLoopAIndex-1) then

gives me a fatal error when used.

but I try removing the -1 and it is being showed but the problem is texts are not showed. Look at the attachment to the recent post I have..

EDIT:

oh its working now... but Why it give me spaces after a row??

EDIT2:

[inlinetrigger]Multiboard - Set the display style for MultiboardsLocal[(Integer A)] item in column 0, row 0 to Show text and Hide icons[/inlinetrigger]

Here's another problem occurs. When I remove that function. The Board shows all text. When I add that function, the board only shows the text in row 1. I try rechanging it to 1 function per column but still same problem exist. When I Remove the For Loop Integer A, that problem does not occur. Are there any more ways to do a local player board but the same contents in every player? (except looping)
 
Last edited:
Status
Not open for further replies.
Top