Jump to content

invalid guid bug


Dookie

Recommended Posts

Hello, in this 0.5.2 version when people are connecting, during the warmup time, and warmup ends mostly everyone gets kicked for invalid silent guid, and then they have to reconnect on server, heavent seen that in 0.5.1 version...
Link to comment
Share on other sites

  • Management

It usually happens when players are connect to the server just when the server restarts after warmup. How long is the warmup period on your server?

 

EDIT:

Or did you mean only new players connecting to the server gets kicked? Because I checked and couldn't see a reason for this to happen for old players. This is unfortunate but, it happens because the mod ensures all the players have a silEnT GUID before they enter the game and if they don't have, they get kicked. In the 0.5.1 it was not checked. IT seemed that it happens only for the exact moment when the warmup ends. If clients connect to the game(spectators) before the warmup ends, they have no problems.

Link to comment
Share on other sites

it happends like to everyone, if you are connecting during the warmup time and when warmup ends and ur still connecting u get kicked for invalid silent guid, and have to reconnect again, warmup on my server is like 10 seconds i believe..never seen this happening in 0.5.1, but had the same warmup time and alll.. Edited by Dookie
Link to comment
Share on other sites

  • Management
I think I have found the reason for this. The engine is calling the mod side ClientBegin after warmup even to the players who have not yet been properly reconnected. I don't have the means to reproduce this because even on my network test server I connect before the warmup ends. Even when setting g_warmup to 0. There seems to be no way to completely prevent the warmup or I didn't find it.
Link to comment
Share on other sites

  • Management

I have found the information I was looking for from the logs. This problem is very problematic because it is important the mod doesn't allow players without proper silEnT GUID to play. However, the SV_MapRestart_f in the engine side does force the ClientBegin in the mod side to execute for everyone after the warmup ends. This falsely sets the players to the fully connected state on the server.

 

I would rather look at:

// connect and begin all the clients
   for ( i = 0 ; i < sv_maxclients->integer ; i++ ) {
       client = &svs.clients[i];

       // send the new gamestate to all connected clients
       if ( client->state < CS_CONNECTED ) {
           continue;
       }

       if ( client->netchan.remoteAddress.type == NA_BOT ) {
           if ( SV_GameIsSinglePlayer() || SV_GameIsCoop() ) {
               continue;   // dont carry across bots in single player
           }
           isBot = qtrue;
       } else {
           isBot = qfalse;
       }

       // add the map_restart command
       SV_AddServerCommand( client, "map_restart\n" );

       // connect the client again, without the firstTime flag
       denied = VM_ExplicitArgPtr( gvm, VM_Call( gvm, GAME_CLIENT_CONNECT, i, qfalse, isBot ) );
       if ( denied ) {
           // this generally shouldn't happen, because the client
           // was connected before the level change
           SV_DropClient( client, denied );
           if ( ( !SV_GameIsSinglePlayer() ) || ( !isBot ) ) {
               Com_Printf( "SV_MapRestart_f(%d): dropped client %i - denied!\n", delay, i ); // bk010125
           }
           continue;
       }

       client->state = CS_ACTIVE;

       SV_ClientEnterWorld( client, &client->lastUsercmd );
   }

 

To check if the player was CS_ACTIVE before the new GAME_CLIENT_CONNECT and only in that case make the SV_ClientEnterWorld call. This is some thoughts for the case if there are engine programmers out there who can test and possibly apply this kind of change. I do think this might have something to do with the shuffle bug as well. The bug when connecting client gets shuffled and for some reason some teammate uniforms can get mixed with the enemy uniforms for him.

Link to comment
Share on other sites

  • Management

The immediate help in your case would be to make g_warmup longer so the players already playing would have time to connect before the warmup ends. Though I must say I'm a little surprised the sil_guid is not in the engine stored userinfo after map change. I would actualy still like to see more log entrys for the map changes where the existing players don't fully connect before the warmup ends.

 

EDIT:

I remember when doing the cg_ident one of the problems was that the server remembered the old cg_ident from the player even without the client being reconnected. Are you sure I have not misunderstood what you were saying about the bug? This does happen to players who have already played on the previous map?

 

EDIT2:

Sorry, I indeed misunderstood this.

it happends like to everyone, if you are connecting during the warmup time and when warmup ends and ur still connecting u get kicked for invalid silent guid, and have to reconnect again, warmup on my server is like 10 seconds i believe..never seen this happening in 0.5.1, but had the same warmup time and alll..

 

Yes. This bug is known and it of course needs to be resolved somehow. However, it does not concerns players already playing on the server but only those unfortunate ones that happen to connect just when the warmup is ending and they don't have enough time to send their userinfo before the ClientBegin is forced on them.

 

After quick testing the earlier proposition I made about the engine side fix, it is not that simple. It seems to generate a new type of bug where player never enters the world in the same conditions of connecting just at the end of the warmup. Nevertheless, there is a bug in this matter.

Link to comment
Share on other sites

  • 2 weeks later...

The immediate help in your case would be to make g_warmup longer so the players already playing would have time to connect before the warmup ends. Though I must say I'm a little surprised the sil_guid is not in the engine stored userinfo after map change. I would actualy still like to see more log entrys for the map changes where the existing players don't fully connect before the warmup ends.

 

EDIT:

I remember when doing the cg_ident one of the problems was that the server remembered the old cg_ident from the player even without the client being reconnected. Are you sure I have not misunderstood what you were saying about the bug? This does happen to players who have already played on the previous map?

 

EDIT2:

Sorry, I indeed misunderstood this.

 

 

Yes. This bug is known and it of course needs to be resolved somehow. However, it does not concerns players already playing on the server but only those unfortunate ones that happen to connect just when the warmup is ending and they don't have enough time to send their userinfo before the ClientBegin is forced on them.

 

After quick testing the earlier proposition I made about the engine side fix, it is not that simple. It seems to generate a new type of bug where player never enters the world in the same conditions of connecting just at the end of the warmup. Nevertheless, there is a bug in this matter.

 

ok, so is this gonna b fixed in 0.5.3? Cuz like on every map I got sum people kicked for invalid silent guid, sum of them reconnect but sum doesnt, its still makin me lose sum publicity...I think this requires sum urgent action. Thank you for reading!

Link to comment
Share on other sites

To check if the player was CS_ACTIVE before the new GAME_CLIENT_CONNECT and only in that case make the SV_ClientEnterWorld call. This is some thoughts for the case if there are engine programmers out there who can test and possibly apply this kind of change.

This will be fixed in new version of ET 3.00. ( 0.6.5 version ).

Link to comment
Share on other sites

  • Management

The same issue happens originally if players connect right at the end of the intermission. I would prefer this was fixed in the engine side rather then making messy combinations in the mod but sure it can be looked at. Do note that if player gets this kick during the map and not because of the intermission, it happens because he is spoofing his guid.

 

EDIT:

Replying while sol was writing,

That is great sol!

Link to comment
Share on other sites

The same issue happens originally if players connect right at the end of the intermission. I would prefer this was fixed in the engine side rather then making messy combinations in the mod but sure it can be looked at. Do note that if player gets this kick during the map and not because of the intermission, it happens because he is spoofing his guid.

 

EDIT:

Replying while sol was writing,

That is great sol!

 

true that! :)

Link to comment
Share on other sites

  • 2 weeks later...

This was to be fixed in this version but we were forced to release version without this because it fix one of the critical bug.

so now we can expect only someone of silent modders to fix it :/

As Gaoesa said this is the problem of the engine and 'mod' can't fix it

Edited by Sol
Link to comment
Share on other sites

This was to be fixed in this version but we were forced to release version without this because it fix one of the critical bug.

 

As Gaoesa said this is the problem of the engine and 'mod' can't fix it

 

so Sol, any chance then that u nd Paul fix it?

Link to comment
Share on other sites

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...