OpenArena Message Boards

OpenArena => Multiplayer => Topic started by: MasonD on November 06, 2012, 03:55:20 PM



Title: duplicate guid
Post by: MasonD on November 06, 2012, 03:55:20 PM
i have setup a dedicated server on a lan, downloaded 0.8.8 and once extracted allowed everyone to copy the oa folder from a shared drive. however when 1st player joined ok and then i tried to join got duplicate guid error? do all players need to download a separate copy of the oa client to get round this?
any info appreciated as im fairly new to setting up


Title: Re: duplicate guid
Post by: Gig on November 07, 2012, 02:10:29 AM
I don't know how GUID check works.
With a quick search on the forum, I see Sago added "duplicate GUID check" (http://openarena.ws/board/index.php?topic=1908.msg25361#msg25361) since DO NOT LINK[/b]) h t t p s : / / openarena . wikia . com/wiki/OpenArena_eXpanded]OAX (http://([b) B40.

I hope Sago will notice your question and give some infos about it.

I can find a "duplicate guid" line in the OAX svn here (http://code.google.com/p/oax/source/search?q=duplicate+guid&origq=duplicate+guid&btnG=Search+Trunk), but I can't understand what the controls that trigger it do.

I've found a few general infos about guid on ioquake3 readme:
http://svn.icculus.org/*checkout*/quake3/trunk/README (see the "cl_guid Support" section down in that page)....
To sum up, the GUID is automatically generated by the client, and you can see your guid checking the cl_guid variable. The cl_guidServerUniq variable allows your client to generate a different GUID depending from the server it is connecting to (if enabled, when playing on a certain server, the client would use a specific GUID... if disabled, the client would sent the same GUID to any server).
But I don't know how that GUIDs are calculated, so I don't know how it is possible that different machines get the same GUID... do they have identical hardware? Did they customize their playername?

OT maybe: reading somewhere that GUID is part of "userinfo" infos, I tried typing "userinfo" command in console (when playing locally), and something WEIRD happened. With "/USERINFO", it replied "unknown command"... with "/userinfo", it renamed me to "Nameless0". What? Since when command names are case sensitive? What's the meaning of this automatic renaming?


Title: Re: duplicate guid
Post by: MasonD on November 07, 2012, 08:55:30 AM
ok thanks for the info and for digging around, I will try later to download a fresh copy of OA to a different machine on the LAN and once I am connected to the server ok using my machine will try connecting from this machine to see if same error occurs, I suspect the GUID is generated per copy of OA per machine (a bit like what Windows does) -  the hardware of the machines is slightly different so not identical and I tried changing the player names as a first thing when this occurred which did not help.

As you say I think the key bit of info we are missing is what exactly triggers this error and how is the id generated.


Title: Re: duplicate guid
Post by: sago007 on November 07, 2012, 03:17:27 PM
GUID is stored in the q3key-file that you usually would not copy to your friends. The game uses it for multiple systems especially the KK-Admin system and the player restore feature (if the guid was duplicated a player joining would take the score from the last player that left).


Title: Re: duplicate guid
Post by: andrewj on November 07, 2012, 10:33:03 PM
I think if you delete the 'qkey' file (in the shared version which everyone can copy), then each client will generate a new one automatically.


Title: Re: duplicate guid
Post by: Gig on November 08, 2012, 01:06:03 AM
I can see homepath/baseoa/q3key. (e.g. %appdata%\baseoa\q3key.) and basepath/qkey. (e.g. c:\program files\openarena\qkey.)
Which is the one? I think it's the one in basepath (considering it's the one his friends would find as repository, and considering it contains binary data, while the other one contains three "comment" plain text lines only), but I prefer to be sure, before updating the wiki.


PS: I'm still curious about that weird "/userinfo" console command behavior I mentioned above...


Title: Re: duplicate guid
Post by: sago007 on November 08, 2012, 11:49:37 AM
There should not be a c:\program files\openarena\qkey all data should be in %appdata%, that is also why I don't understand how it got copied in the case of MasonD. It should not be created (unless you have experimented with homepath).


Title: Re: duplicate guid
Post by: Gig on November 09, 2012, 01:24:56 AM
My "qkey" file in installation folder has probably been created when I was doing some experiments with homepath years ago (I've found a test shortcut I did, specifying fs_homepath in its command line, with the same date). I tried it now, and it created a "qkey" file in the folder specified.
But I don't understand how a such thing happened to MasonD. Mason, which OA package did you download exactly? Can you provide its link? Maybe it's a re-packaging made by someone who erroneously messed up with fs_homepath?
MasonD, can you confirm you have a "qkey" file in the same folder you have openarena.exe? (Removing it should fix the problem)
And can you launch the game, type /fs_homepath [ENTER] and tell us if it is the same it shows with /fs_basepath or it's different?

PS: Apart the "qkey" file (that is placed directly in homepath), I can however find a couple of "q3key" files (that are placed in homepath\modfolder)... I have them under my %appdata%\openarena\baseoa and %appdata%\openarena\calypso -which is DO NOT LINK[/b]) h t t p s : / / openarena . wikia . com/wiki/Mods/Calypso]this (http://([b) recent mod-, but many other mod folders don't have them. Any idea about the reason?


Title: Re: duplicate guid
Post by: MasonD on November 09, 2012, 08:17:05 AM
Again thanks for the info so far.

To start off with I downloaded separate copies of OA 0.8.8 on a few other colleagues machines on the LAN and we were all able to join the server fine so it does seem to have been an issue with me downloading the first copy and putting it on the share for people to use.

After the initial download the only thing i changed was to add my own server config file to the baseoa folder on the server and on my own machine (although I realized later the server config file didn't need to be placed on each client as well)

All the versions I/colleagues have downloaded were from this link http://www.openarena.ws/download.php?list.61 (I did'nt download the patch)

1. I can confirm I have a qkey file in the installation folder where the .exe is on my machine. Its also there on the copy I put on the shared drive.
2. ON my own machine i.e not the dedicated server
/fs_homepath = C:\Users\<Myusername>\Appdata\Roaming\OpenArena
/fs_basepath = C:\OpenAreana\openAreana-0.8.8

So are you saying I can remove the qkey file on the copy I have on shared drive so when someone copies it to their machine and launches, a new one will be generated against their machine/install and remove this issue?

Cheers


Title: Re: duplicate guid
Post by: sago007 on November 09, 2012, 08:24:50 AM
So are you saying I can remove the qkey file on the copy I have on shared drive so when someone copies it to their machine and launches, a new one will be generated against their machine/install and remove this issue?
Yes


Title: Re: duplicate guid
Post by: Gig on November 09, 2012, 12:26:44 PM
What is unclear is why a "qkey" file has been created in your installation folder, and why the game loads it from there (basepath) instead of from the %appdata% folder (homepath)...  ??? ??? ???


Title: Re: duplicate guid
Post by: grey matter on November 09, 2012, 12:38:02 PM
Beware, OT post;

OT maybe: reading somewhere that GUID is part of "userinfo" infos, I tried typing "userinfo" command in console (when playing locally), and something WEIRD happened. With "/USERINFO", it replied "unknown command"... with "/userinfo", it renamed me to "Nameless0". What? Since when command names are case sensitive? What's the meaning of this automatic renaming?

Command strings are parsed by code, so if one programmer forgets to use a case-insensitive compare function, the code will only trigger on exact match. The server commands use strmp() (instead of stricmp(), so they are case-sensitive.

I can confirm the behavior you've described, same thing happens to me when trying /USERINFO and /userinfo locally.
The /userinfo command just copies whatever you pass as 2nd argument into your userinfo, so "/userinfo" basically clears your userinfo (and the game thus defaults to Nameless0, since you no longer have a playername set).
Maybe you wanted to use "/dumpuser <clientId>" or "/clientinfo" instead?