HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Multiboards, desyncs and interfaces

02-20-2006, 12:34 PM#1
Chuckle_Brother
As the title suggests I have some questions about desyncs, multiboards and the game interface.

1) I want to create a multiboard that is personalized for each player. Now I tried doing this with hiding the boards but that didn't work. So I opted for a system that sets local variables to different values on each player's comp and then puts them on the board. It seems to work....but will it cause any desyncs/problems?

2) How(If I even can) can I change how when you go to the game menu how it changes shit like *Menu*/*Quests* back to their original titles? And if its possible, how can I change the texts on the buttons INSIDE the game menu. Example: Game Menu/Help/Tips/ETC.
02-20-2006, 12:46 PM#2
Vexorian
First question:
- It should have been worked well with hiding multiboards for some players and only showing it to one player.

You second solution might work but without seeing the code I can't ensure anything. Tried actually testing it in bnet? It is easy, you give the map a title called Dota AllStars Ultimate! eventually some guy will join and you would be able to test if the new multiboard system desyncs
02-20-2006, 12:54 PM#3
qwertyui
I have 2 multiboards in my game, each shown to a different player team, and it works okay.

I use the following code to choose which one to show:
Collapse JASS:
    if (IsPlayerAlly(GetLocalPlayer(),Player(10))) then 
        call MultiboardDisplay( udg_MultiboardIllyssia, true ) 
    else 
        call MultiboardDisplay( udg_MultiboardStrygia, true ) 
    endif 

It shows correct multiboard to each individual player, based on local player's ally settings and caused no desynchs so far.

I am not sure problems won't appear if you try to have a multiboard for each player though.
02-20-2006, 12:57 PM#4
PerfectlyInsane
hmmm so you can only do it throught JASS?

If you can provide us with a sample that would be good. :)
02-20-2006, 02:45 PM#5
Chuckle_Brother
Quote:
Originally Posted by qwertyui
I have 2 multiboards in my game, each shown to a different player team, and it works okay.

I use the following code to choose which one to show:
Collapse JASS:
    if (IsPlayerAlly(GetLocalPlayer(),Player(10))) then 
        call MultiboardDisplay( udg_MultiboardIllyssia, true ) 
    else 
        call MultiboardDisplay( udg_MultiboardStrygia, true ) 
    endif 
.

If that had worked correctly I would just use:
Collapse JASS:
call MultiboardDisplay(udg_Board, GetLocalPlayer() == udg_SomePlayer)

I tried however, and I always seem to end up seeing player 12's board(player 11 for all you jass types).


@Vex, what I really want to know is whether or not setting locals to different values for each player will desync. The board displays fine, but Bnet play may differ.


Right now it looks like:
Trigger:
Board Update
Events
Conditions
Collapse Actions
Custom script: local string s2
Custom script: local string s3
Custom script: local string s4
Custom script: local string s5
Custom script: local string s6
Custom script: local multiboard b
Custom script: set b=udg_Board_Board
Collapse For each (Integer i) from 1 to 12, do (Actions)
Collapse Loop - Actions
Custom script: if (GetLocalPlayer() == Player(udg_i - 1)) then
Custom script: set s2=udg_t + udg_PlayerColour[udg_i] + I2S(udg_Board_Rank[udg_i])
Custom script: set s3=udg_t + udg_PlayerColour[udg_i] + I2S(udg_Board_Points[udg_i])
Custom script: set s4=udg_t + udg_PlayerColour[udg_i] + I2S(udg_Board_Casualties[udg_i])
Custom script: set s5=udg_t + udg_PlayerColour[udg_i] + I2S(udg_Board_Streak[udg_i])
Custom script: set s6=(udg_t + udg_PlayerColour[udg_i] + udg_Board_Weapon[udg_i] )
Custom script: endif
Custom script: call MultiboardSetItemValueBJ(b, 2, 2, s2)
Custom script: call MultiboardSetItemValueBJ(b, 2, 3, s3)
Custom script: call MultiboardSetItemValueBJ(b, 2, 4, s4)
Custom script: call MultiboardSetItemValueBJ(b, 2, 5, s5)
Custom script: call MultiboardSetItemValueBJ(b, 2, 6, s6)
Custom script: set s2=null
Custom script: set s3=null
Custom script: set s4=null
Custom script: set s5=null
Custom script: set s6=null
Custom script: set b=null

Ugly, huge and messy I know, but I am not overly comfortable with jass yet, so thats it.
02-20-2006, 09:39 PM#6
PerfectlyInsane
I cant see any reference to a loop update

for that you would add in


Wait .5 seconds

Run this trigger checking conditions
02-21-2006, 12:01 PM#7
Chuckle_Brother
How does that pertain to this? It loops through the PLAYER indices, and does its little thing.