• 🏆 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!
  • ✅ Time to vote for the top 3 models! The POLL for Hive's 6th HD Modeling Contest: Mechanical is now open! 📅 Poll close on July 16, 2024! 🔗 Cast your vote now!
  • ✅ The POLL for Hive's Texturing Contest #33 is OPEN! Vote for the TOP 3 SKINS! 🔗Click here to cast your vote!

[General] Multiboard won't load players

Status
Not open for further replies.

sentrywiz

S

sentrywiz

I'm making a mb for a simple 4 player score with some extras.
I've done complex mb's in the past, and they worked flawlessly. But for some reason, this one won't load players... I've checked for errors and I can't find none.


  • MB
    • Events
    • Conditions
    • Actions
      • Trigger - Turn off (This trigger)
      • Multiboard - Create a multiboard with 5 columns and (PlayersOnline + 1) rows, titled (|cffc3dbffWeapons Arena|r |c00DEDEDEv1.0|r + ( ( + ((String(TK)) + ))))
      • Set MB = (Last created multiboard)
      • Multiboard - Set the text for MB item in column 1, row 1 to |cffff8c00#|r
      • Multiboard - Set the text for MB item in column 2, row 1 to |cffff8c00Player|r
      • Multiboard - Set the text for MB item in column 3, row 1 to |cffff8c00K|r
      • Multiboard - Set the text for MB item in column 4, row 1 to |cffff8c00D|r
      • Multiboard - Set the text for MB item in column 5, row 1 to |cffff8c00Title|r
      • Multiboard - Set the width for MB item in column 1, row 1 to 2.00% of the total screen width
      • Multiboard - Set the width for MB item in column 2, row 1 to 6.00% of the total screen width
      • Multiboard - Set the width for MB item in column 3, row 1 to 2.00% of the total screen width
      • Multiboard - Set the width for MB item in column 4, row 1 to 2.00% of the total screen width
      • Multiboard - Set the width for MB item in column 5, row 1 to 6.00% of the total screen width
      • Multiboard - Set the display style for MB item in column 1, row 1 to Show text and Hide icons
      • Multiboard - Set the display style for MB item in column 2, row 1 to Show text and Hide icons
      • Multiboard - Set the display style for MB item in column 3, row 1 to Show text and Hide icons
      • Multiboard - Set the display style for MB item in column 4, row 1 to Show text and Hide icons
      • Multiboard - Set the display style for MB item in column 5, row 1 to Show text and Hide icons
      • Set PlayersOnlineGroup = (All players matching (((Matching player) slot status) Equal to Is playing))
      • For each (Integer A) from 1 to 4, do (Actions)
        • Loop - Actions
          • Multiboard - Set the display style for MB item in column 1, row ((Integer A) + 1) to Hide text and Show icons
          • Multiboard - Set the display style for MB item in column 2, row ((Integer A) + 1) to Show text and Hide icons
          • Multiboard - Set the display style for MB item in column 3, row ((Integer A) + 1) to Show text and Hide icons
          • Multiboard - Set the display style for MB item in column 4, row ((Integer A) + 1) to Show text and Hide icons
          • Multiboard - Set the display style for MB item in column 5, row ((Integer A) + 1) to Show text and Hide icons
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Player[(Integer A)] is in PlayersOnlineGroup) Equal to True
            • Then - Actions
              • Multiboard - Set the icon for MB item in column 1, row ((Integer A) + 1) to ReplaceableTextures\CommandButtons\BTNVillagerMan.blp
              • Multiboard - Set the width for MB item in column 1, row ((Integer A) + 1) to 2.00% of the total screen width
              • Multiboard - Set the text for MB item in column 2, row ((Integer A) + 1) to (PlayerColor[(Player number of (Picked player))] + ((Name of (Picked player)) + |r))
              • Multiboard - Set the width for MB item in column 2, row ((Integer A) + 1) to 6.00% of the total screen width
              • Multiboard - Set the text for MB item in column 3, row ((Integer A) + 1) to 0
              • Multiboard - Set the width for MB item in column 3, row ((Integer A) + 1) to 2.00% of the total screen width
              • Multiboard - Set the text for MB item in column 4, row ((Integer A) + 1) to 0
              • Multiboard - Set the width for MB item in column 4, row ((Integer A) + 1) to 2.00% of the total screen width
              • Multiboard - Set the text for MB item in column 5, row ((Integer A) + 1) to |c00CCCCCCNone|r
              • Multiboard - Set the width for MB item in column 5, row ((Integer A) + 1) to 6.00% of the total screen width
            • Else - Actions
      • Multiboard - Show MB
      • Custom script: call DestroyForce ( udg_PlayersOnlineGroup )


TO those interested, I'm running this mb trigger after player writes commands that's why there is no event
 

sentrywiz

S

sentrywiz

Maby change For each (Integer A) from 1 to 4, do (Actions)

to

For each (Integer A) from 1 to PlayersOnlineGroup, do (Actions)

Since that is how many are actually on.

Iunno might work who knows.

I just don't see why it is 1-4

Its 1-4 because the map has max 4 players. So each of them gets an IF/THEN/ELSE

If I put it from 1 to PlayersOnlineGroup, then it could bug out in different events like:
-3 players playing, like player 1, player 3, player 4 .. then the multiboard wouldn't put player 4 correctly, it will look for player 3 at max because PlayersOnlineGroup would be 3 and the loop would go: 1, 2, 3... completely ignoring player 4.


I think it's because of Destroying the player group, I had a problem before by doing this.

Try again without this:
Custom script: call DestroyForce ( udg_PlayersOnlineGroup )

That can't be it because first: its outside both loops and two: it doesn't matter to the multiboard in anyway. its only there for the IF condition, but I tried with writing text inside the loop, giving me the player name and it works, but the multiboard doesn't work for some reason.

Still, I tried what you said. That's not it. Still doesn't work.
 
Level 6
Joined
Feb 5, 2012
Messages
1,685
What the heck i did not understand your trigger...

Set Player Online = Players who are in the game (you know what i mean)

If condition Player 1 is in the Player online then (do your action)

Its kinda sound harsh but because it is just 4 players better if you do it in every player just copy paste (don't use loop)

Always remember not to use For Integer A or Integer B, use a variable to prevent override with other triggers causing a delay in your trigger or even malfunction

Well if don't understand just reply what did you not understand..


Also at your Show Hide icons just put 0 on the Integer A.. it is understood that when zero it is on full column or row..
 

sentrywiz

S

sentrywiz

What the heck i did not understand your trigger...

Set Player Online = Players who are in the game (you know what i mean)

If condition Player 1 is in the Player online then (do your action)

Its kinda sound harsh but because it is just 4 players better if you do it in every player just copy paste (don't use loop)

Always remember not to use For Integer A or Integer B, use a variable to prevent override with other triggers causing a delay in your trigger or even malfunction

Well if don't understand just reply what did you not understand..


Also at your Show Hide icons just put 0 on the Integer A.. it is understood that when zero it is on full column or row..

There are no other triggers that this one can override with or cause a delay. The trigger is also one-time run with only 1 small loop. This doesn't cause lag or delay. Its also event-proof, its only called when a player finishes writing commands and is then prevented from further calling.

While show hide advice is ok, it doesn't really affect the real issue I am having which is, everything in the loop not being printed on the mb. Thank you for your reply
 
Level 8
Joined
Oct 12, 2011
Messages
483
If it is hitting the oplimit, you should either create a new trigger then use the Trigger - Run, or use JASS and declare functions within the trigger and use something like ExecFunc or ForForce
 

sentrywiz

S

sentrywiz

The code isn't big or demanding. The loop runs up to 4 times and that's it. If that is demanding, then I wonder why complex mb's don't crash games.
There are no leaks in the code or buggy events that may trigger the code multiple times. No, its a one time deal and its called specifically only when game starts, with no units spawning or points being used.

GUI Multiboard operations are very demanding as they iterate through a lot of script unnecessarily. You may be hitting the oplimit as a result.

Guys, you commented on four separate replies but none of you offered specific advice. All you offered as advice is a reply to Dr Super Good's reply, which isn't even helpful to my issue. I don't even know what an oplimit is, nor I care.

So please do focus on what I asked, not what you think is bad or good trigger ethics. Its not even good critic, because its a one-time run trigger, with no events or conditions.

Thank you
 
Last edited by a moderator:
Level 29
Joined
Oct 24, 2012
Messages
6,543
integer A/B are slower and less efficient. so yes its bad coding. it takes more processing power to use integer A/B.
also ur using GUI everything in GUI gets converted to JASS. what u dont see is all the things that are called when converted. Thats y u need to listen to what others say about wat to use and wat to not use.

did u even try DSG's option ?

also u can hit the op-limit a ton of times in a game. the problem is that with a multiboard and other trigger that hit the op-limit is that not all the actions are run.

if ur not going to improve or do wat we say is a better option that may help then y should we waste our time ?
 
Level 8
Joined
Oct 12, 2011
Messages
483
You should care very much about the oplimit. As death said, if a trigger hits the oplimit, Warcraft basically inserts a Skip Remaining Actions. However, if it's only the player names that do not show up, it is probably not the oplimit, since stuff that is created after the player names do show up. it looks like it should be fine, but maybe you should check the PlayerColor[] variable.
 
Level 6
Joined
Feb 5, 2012
Messages
1,685
The code isn't big or demanding. The loop runs up to 4 times and that's it. If that is demanding, then I wonder why complex mb's don't crash games.
There are no leaks in the code or buggy events that may trigger the code multiple times. No, its a one time deal and its called specifically only when game starts, with no units spawning or points being used.



Guys, you commented on four separate replies but none of you offered specific advice. All you offered as advice is a reply to Dr Super Good's reply, which isn't even helpful to my issue. I don't even know what an oplimit is, nor I care.

So please do focus on what I asked, not what you think is bad or good trigger ethics. Its not even good critic, because its a one-time run trigger, with no events or conditions.

Thank you

Lol..


Did you try what i say?.. aside from the loop?..

Anyway my recommendation is to rewrite your whole trigger into a proper one and remember when you rewrite/recode it

- Do what deahismyfriend says or Dr. Super Good..
- Never use Integer A/B use your own integer..
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,233
Never use Integer A/B use your own integer..
Will people stop saying this rubbish. Yes it is slightly less efficient than a nice short global but the reality is it works just as well unless you nest them (in which case using your own also will not work).

Here is my evidence why multiboard operations may hit the oplimit.
JASS:
function MultiboardSetItemValueBJ takes multiboard mb,integer col,integer row,string val returns nothing
    local integer curRow = 0
    local integer curCol = 0
    local integer numRows = MultiboardGetRowCount(mb)
    local integer numCols = MultiboardGetColumnCount(mb)
    local multiboarditem mbitem = null
    loop
        set curRow = curRow + 1
        exitwhen curRow > numRows
        if (row == 0 or row == curRow) then
            set curCol = 0
            loop
                set curCol = curCol + 1
                exitwhen curCol > numCols
                if (col == 0 or col == curCol) then
                    set mbitem = MultiboardGetItem(mb, curRow - 1, curCol - 1)
                    call MultiboardSetItemValue(mbitem, val)
                    call MultiboardReleaseItem(mbitem)
                endif
            endloop
        endif
    endloop
endfunction

In a 10 by 10 multiboard it will, to set the value of cell 10, 10 it will...
Check Row 1
Check Row 2
Check Row 3
Check Row 4
Check Row 5
Check Row 6
Check Row 7
Check Row 8
Check Row 9
Check Row 10, which is the row needed then...
Check Column 1
Check Column 2
Check Column 3
Check Column 4
Check Column 5
Check Column 6
Check Column 7
Check Column 8
Check Column 9
Check Column 10 which it then...
Creates a multiboarditem from
Sets the value of the item
Frees the multiboarditem

Oh and it gets worse, it will do the exact same number of iterations to set cell 1,1 as to set cell 10,10 since it will continue to iterate even after the cell target has been touched and set. This is all because using 0 for row or cell causes a fill in that dimension (0,0 will fill the entire board).

Have a very large multiboard? Even worse as the number of loop iterations per single cell set is equal to the sum of the rows and columns. A 30 by 30 multiboard will loop 60 times per individual cell set using GUI.

I have seen it at least 3 times in the past that the op limit has been hit doing multiboard stuff in GUI. Sure it may not be the problem in this particular case but seeing how many muiltiboard operations you do in a single atomic thread gives me good reason to believe it could be a cause.

Or we do the captain obvious approach...

Multiboard - Set the text for MB item in column 2, row ((Integer A) + 1) to (PlayerColor[(Player number of (Picked player))] + ((Name of (Picked player)) + |r))
Who the hell is "Picked player"?!
There is no player for loop running that script, you meant to specify Player(Integer A).
 
Level 15
Joined
Oct 29, 2012
Messages
1,474
also stop using integer A/B

Death . They are real nightmares for you . I believe that they made a very big trouble to you in the past . that's why you notice repeatedly to not use them . Also You're right :D
Warcraft 3 is less efficient and you should write your own program. However this is all beside the point since it's easier to mod Warcraft 3.
The Computer is less efficient and you should build your own machine. However this is all beside the point since it's better to use PC to mod o_O
 
Level 8
Joined
Oct 12, 2011
Messages
483
jonhysone said:
The Computer is less efficient and you should build your own machine. However this is all beside the point since it's better to use PC to mod o_O

The universe is less efficient and you should make your own. However this is all beside the point because in ~40 years we will reach the technological singularity and we can just simulate other universes.
 

sentrywiz

S

sentrywiz

Will people stop saying this rubbish. Yes it is slightly less efficient than a nice short global but the reality is it works just as well unless you nest them (in which case using your own also will not work).

Here is my evidence why multiboard operations may hit the oplimit.
JASS:
function MultiboardSetItemValueBJ takes multiboard mb,integer col,integer row,string val returns nothing
    local integer curRow = 0
    local integer curCol = 0
    local integer numRows = MultiboardGetRowCount(mb)
    local integer numCols = MultiboardGetColumnCount(mb)
    local multiboarditem mbitem = null
    loop
        set curRow = curRow + 1
        exitwhen curRow > numRows
        if (row == 0 or row == curRow) then
            set curCol = 0
            loop
                set curCol = curCol + 1
                exitwhen curCol > numCols
                if (col == 0 or col == curCol) then
                    set mbitem = MultiboardGetItem(mb, curRow - 1, curCol - 1)
                    call MultiboardSetItemValue(mbitem, val)
                    call MultiboardReleaseItem(mbitem)
                endif
            endloop
        endif
    endloop
endfunction

In a 10 by 10 multiboard it will, to set the value of cell 10, 10 it will...
Check Row 1
Check Row 2
Check Row 3
Check Row 4
Check Row 5
Check Row 6
Check Row 7
Check Row 8
Check Row 9
Check Row 10, which is the row needed then...
Check Column 1
Check Column 2
Check Column 3
Check Column 4
Check Column 5
Check Column 6
Check Column 7
Check Column 8
Check Column 9
Check Column 10 which it then...
Creates a multiboarditem from
Sets the value of the item
Frees the multiboarditem

Oh and it gets worse, it will do the exact same number of iterations to set cell 1,1 as to set cell 10,10 since it will continue to iterate even after the cell target has been touched and set. This is all because using 0 for row or cell causes a fill in that dimension (0,0 will fill the entire board).

Have a very large multiboard? Even worse as the number of loop iterations per single cell set is equal to the sum of the rows and columns. A 30 by 30 multiboard will loop 60 times per individual cell set using GUI.

I have seen it at least 3 times in the past that the op limit has been hit doing multiboard stuff in GUI. Sure it may not be the problem in this particular case but seeing how many muiltiboard operations you do in a single atomic thread gives me good reason to believe it could be a cause.

Or we do the captain obvious approach...


Who the hell is "Picked player"?!
There is no player for loop running that script, you meant to specify Player(Integer A).

Well put. Thank you for pointing out the obvious mistake on my part.
I will try it out when I get home.

Outside of warcraft, isn't that iteration procedure when searching anything through a database? Yes, possibly - unless you are very specific on your query.

But I believe programmers in general code specific well-put algorhytms until they have sufficient server power. Then, they just code out of their ass and have a building worth of servers to iterate their formulated scripts.

Just my two cents.

naa integer A/B never did anything to me. I just dont like coding inefficiently.

Again with those coding ethics, what works for you might not work for me and vice versa. What you say MIGHT hold water, but I haven't seen a mb causing problems due to using integer A/B. It might be "BAAAAAAAAD" but I haven't seen it.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,233
isn't that iteration procedure when searching anything through a database
No...
1. Normally breaks after finding the thing.
2. Normally some sorted system such as an AVL tree is used to reduce number of searches needed to find something.
3. If something can be accessed directly via an index, there is never any need to iterate through all indices you do not want.

The reason it does the iteration through all rows and columns is to support filling by that dimension. Few GUI users know it but specifying a 0 will fill an entire column or row with the specified value instead of you having to do it cell by cell at a time. In the case of formatting columns this saves a lot of time but because they failed to handle this special case they dropped efficiency just to support it when it comes to modifying single cells.
 

sentrywiz

S

sentrywiz

No...
1. Normally breaks after finding the thing.
2. Normally some sorted system such as an AVL tree is used to reduce number of searches needed to find something.
3. If something can be accessed directly via an index, there is never any need to iterate through all indices you do not want.

The reason it does the iteration through all rows and columns is to support filling by that dimension. Few GUI users know it but specifying a 0 will fill an entire column or row with the specified value instead of you having to do it cell by cell at a time. In the case of formatting columns this saves a lot of time but because they failed to handle this special case they dropped efficiency just to support it when it comes to modifying single cells.

Alright, a database is much more like a hashtable than it is like a table.
But a mb is literally like a table.

So in your view, what is the best way to fill a mb with data, since its a table and it might have to be done cell by cell.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,233
Use JASS directly. There you can create a multiboarditem from any cell directly without iteration with O(1) performance and then apply all cell operations at once on that item before freeing it. You can even cache multiboarditems so you never have to free them apparently.
 

sentrywiz

S

sentrywiz

Use JASS directly. There you can create a multiboarditem from any cell directly without iteration with O(1) performance and then apply all cell operations at once on that item before freeing it. You can even cache multiboarditems so you never have to free them apparently.

Since I don't know jass, this won't work for me.
Still good to know.

Btw, did the changes now. Made picked player into player[for int a].
Nothing. Still getting no text

EDIT:

I put three game text in the trigger. One when starting the loop before outputting data, second inside the loop that outputs data and third in the else if player isn't playing.

Here is an in-game screenshot. Player 1 is me, Player 3, 4 is set to computer and Player 2 is open.

Untitled.jpg
 

sentrywiz

S

sentrywiz

Here is the trigger that runs the MB trigger.
Player either types total kills or the system automatically sets it to 30.
In both cases, MB is called after this trigger ends.


  • Command TK
    • Events
      • Player - Player 1 (Red) types a chat message containing -tk as A substring
    • Conditions
      • (Remaining time for StartOfGame) Greater than 0.00
    • Actions
      • Trigger - Turn off (This trigger)
      • Set TK = (Integer((Substring((Entered chat string), 4, (Length of (Entered chat string))))))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • TK Greater than 100
        • Then - Actions
          • Countdown Timer - Pause StartOfGame
          • Trigger - Turn off StartofGameExpires <gen>
          • Set TK = 100
          • Game - Display to Player Group - Player 1 (Red) for 5.00 seconds the text: |c00DEDEDEError: 10...
          • Game - Display to (All players) for 7.00 seconds the text: (KillerColor + ((Name of Player 1 (Red)) + (|r selected + ((String(TK)) + kills to win))))
          • Trigger - Run MB <gen> (ignoring conditions)
        • Else - Actions
          • Countdown Timer - Pause StartOfGame
          • Trigger - Turn off StartofGameExpires <gen>
          • Game - Display to (All players) for 7.00 seconds the text: (KillerColor + ((Name of Player 1 (Red)) + (|r selected + ((String(TK)) + kills to win))))
          • Trigger - Run MB <gen> (ignoring conditions)


Then the MB trigger is called.
Here is the current state of the MB trigger (with the test game messages)


  • MB
    • Events
    • Conditions
    • Actions
      • Trigger - Turn off (This trigger)
      • Multiboard - Create a multiboard with 5 columns and (PlayersOnline + 1) rows, titled (|cffc3dbffWeapons Arena|r |c00DEDEDEv1.0|r + ( ( + ((String(TK)) + ))))
      • Set MB = (Last created multiboard)
      • Multiboard - Set the text for MB item in column 1, row 1 to |cffff8c00#|r
      • Multiboard - Set the text for MB item in column 2, row 1 to |cffff8c00Player|r
      • Multiboard - Set the text for MB item in column 3, row 1 to |cffff8c00K|r
      • Multiboard - Set the text for MB item in column 4, row 1 to |cffff8c00D|r
      • Multiboard - Set the text for MB item in column 5, row 1 to |cffff8c00Title|r
      • Multiboard - Set the width for MB item in column 1, row 1 to 2.00% of the total screen width
      • Multiboard - Set the width for MB item in column 2, row 1 to 6.00% of the total screen width
      • Multiboard - Set the width for MB item in column 3, row 1 to 2.00% of the total screen width
      • Multiboard - Set the width for MB item in column 4, row 1 to 2.00% of the total screen width
      • Multiboard - Set the width for MB item in column 5, row 1 to 6.00% of the total screen width
      • Multiboard - Set the display style for MB item in column 1, row 1 to Show text and Hide icons
      • Multiboard - Set the display style for MB item in column 2, row 1 to Show text and Hide icons
      • Multiboard - Set the display style for MB item in column 3, row 1 to Show text and Hide icons
      • Multiboard - Set the display style for MB item in column 4, row 1 to Show text and Hide icons
      • Multiboard - Set the display style for MB item in column 5, row 1 to Show text and Hide icons
      • Set PlayersOnlineGroup = (All players matching (((Matching player) slot status) Equal to Is playing))
      • For each (Integer A) from 1 to 4, do (Actions)
        • Loop - Actions
          • Game - Display to (All players) the text: (Outside of mb loop: + (String((Integer A))))
          • Multiboard - Set the display style for MB item in column 1, row ((Integer A) + 1) to Hide text and Show icons
          • Multiboard - Set the display style for MB item in column 2, row ((Integer A) + 1) to Show text and Hide icons
          • Multiboard - Set the display style for MB item in column 3, row ((Integer A) + 1) to Show text and Hide icons
          • Multiboard - Set the display style for MB item in column 4, row ((Integer A) + 1) to Show text and Hide icons
          • Multiboard - Set the display style for MB item in column 5, row ((Integer A) + 1) to Show text and Hide icons
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Player[(Integer A)] is in PlayersOnlineGroup) Equal to True
            • Then - Actions
              • Game - Display to (All players) the text: ((Name of Player[(Integer A)]) + ( is playing, should be in mb. Has index of: + (String((Integer A)))))
              • Multiboard - Set the icon for MB item in column 1, row ((Integer A) + 1) to ReplaceableTextures\CommandButtons\BTNVillagerMan.blp
              • Multiboard - Set the width for MB item in column 1, row ((Integer A) + 1) to 2.00% of the total screen width
              • Multiboard - Set the text for MB item in column 2, row ((Integer A) + 1) to (PlayerColor[(Player number of (Picked player))] + ((Name of Player[(Integer A)]) + |r))
              • Multiboard - Set the width for MB item in column 2, row ((Integer A) + 1) to 6.00% of the total screen width
              • Multiboard - Set the text for MB item in column 3, row ((Integer A) + 1) to 0
              • Multiboard - Set the width for MB item in column 3, row ((Integer A) + 1) to 2.00% of the total screen width
              • Multiboard - Set the text for MB item in column 4, row ((Integer A) + 1) to 0
              • Multiboard - Set the width for MB item in column 4, row ((Integer A) + 1) to 2.00% of the total screen width
              • Multiboard - Set the text for MB item in column 5, row ((Integer A) + 1) to |c00CCCCCCNone|r
              • Multiboard - Set the width for MB item in column 5, row ((Integer A) + 1) to 6.00% of the total screen width
            • Else - Actions
              • Game - Display to (All players) the text: ((Name of Player[(Integer A)]) + ( isn't playing, not in mb. Has index of: + (String((Integer A)))))
      • Multiboard - Show MB
      • Custom script: call DestroyForce ( udg_PlayersOnlineGroup )


I tried the following things:

- remove the player group and replace the condition with just player is playing
- remove the entire player color + player name and just put player name

None of those works.
 

sentrywiz

S

sentrywiz

It looks like only 1 row is being created in the screenshot which would point to that variable having a value of 0.

That solved it.
Many thanks, already rep-ed you.

You just saved an awesome map from not being published on hive.
Will be posting the map fairly soon.
 

sentrywiz

S

sentrywiz

I think you meant "...from not being published unprotected on hive." Since I think hive is where awesome maps are supposed to be published.

You just want to say something?

Because I said "You just saved an awesome map from not being published on hive. " Because I wouldn't have published the map if the multiboard wasn't fixed.

Then you replied saying "I think you meant "...from not being published unprotected on hive.""

Does the unprotected/protected have something to do with posting maps? This is the author's choice, with rules given that mods should get an unprotected version to fix stuff if necessary or deny because of coding and leaks.

Idk, your reply just doesn't make sense to me.
 
Level 29
Joined
Oct 24, 2012
Messages
6,543
that statement is just pointless as u should code the most efficiently u can in the program u use. so GUIers should code the best they can using GUI. although some jass knowledge is needed it doesnt mean they have to convert. ur arguement about GUI not being as efficient as Jass / vJass / java / C++ is plain pointless and ignorant.
 
Status
Not open for further replies.
Top