AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   svc_updateuserinfo parameters (https://forums.alliedmods.net/showthread.php?t=221335)

Destro- 07-20-2013 17:40

svc_updateuserinfo parameters
 
As do this in amxx?
PHP Code:

void SV_FullClientUpdatesv_client_t *clsizebuf_t *msg )
{
    
int    i;
    
char    info[MAX_INFO_STRING];
    
    
cl svs.clients;

    
BF_WriteBytemsgsvc_updateuserinfo );
    
BF_WriteUBitLongmsgiMAX_CLIENT_BITS );

    if( 
cl->name[0] )
    {
        
BF_WriteOneBitmsg);

        
Q_strncpyinfocl->userinfosizeofinfo ));

        
// remove server passwords, etc.
        
Info_RemovePrefixedKeysinfo'_' );
        
BF_WriteStringmsginfo );
    }
    else 
BF_WriteOneBitmsg);


everything I try fails (svc_bad)



Sorry for my English use a translator.

ConnorMcLeod 07-20-2013 20:02

Re: svc_updateuserinfo parameters
 
I think it is :

PHP Code:

Util_UPDATEUSERINFO(idplayerIndexplayerUserIdplayerUserInfo[])
{
    
message_begin(id MSG_ONE MSG_ALLSVC_UPDATEUSERINFO_id);
    
write_byte(playerIndex); // index
    
write_long(playerUserId playerUserId get_user_userid(playerIndex)); // userid
    
write_string(playerUserInfo); // infostring
    
message_end();


But last time i tried it was kicking client.

Destro- 07-20-2013 20:49

Re: svc_updateuserinfo parameters
 
Quote:

Originally Posted by ConnorMcLeod (Post 1995319)
But last time i tried it was kicking client.

yes

http://wiki.amxmodx.org/Half-Life_1_...UPDATEUSERINFO
the "userid" parameter is not used


Client engine
Code:
void CL_UpdateUserinfo( sizebuf_t *msg ) {     int     slot;     qboolean        active;     player_info_t   *player;     slot = BF_ReadUBitLong( msg, MAX_CLIENT_BITS );     if( slot >= MAX_CLIENTS )         Host_Error( "CL_ParseServerMessage: svc_updateuserinfo > MAX_CLIENTS\n" );     player = &cl.players[slot];     active = BF_ReadOneBit( msg ) ? true : false;     if( active )     {         Q_strncpy( player->userinfo, BF_ReadString( msg ), sizeof( player->userinfo ));         Q_strncpy( player->name, Info_ValueForKey( player->userinfo, "name" ), sizeof( player->name ));         Q_strncpy( player->model, Info_ValueForKey( player->userinfo, "model" ), sizeof( player->model ));         if( slot == cl.playernum ) Q_memcpy( &menu.playerinfo, player, sizeof( player_info_t ));     }     else Q_memset( player, 0, sizeof( *player )); }

ConnorMcLeod 07-21-2013 02:05

Re: svc_updateuserinfo parameters
 
Had this in OSHLDS (SV_FullClientUpdate) :

Code:

  Q_strncpy(info, client->InfoKeyBuffer, sizeof(info)-1);
  info[sizeof(info)-1] = '\0';

  Info_RemovePrefixedKeys(info, '_');

  MSG_WriteByte(buf, 0x0D); // SVC_UPDATEUSERINFO
  MSG_WriteByte(buf, i); // index
  MSG_WriteLong(buf, client->padding4A8C_PlayerUID); // userid
  MSG_WriteString(buf, info);


And code i tried and failed :
Spoiler

Arkshine 07-21-2013 04:35

Re: svc_updateuserinfo parameters
 
It misses MSG_WriteBuf with MD5 of client->hashedcdkey.

MD5Init(&context);
MD5Update(&context, client->hashedcdkey, 64);
MD5Final(&digest, &context);
MSG_WriteBuf(buf, 16, &digest);

Not sure what we could use and if it's really used. Maybe we could just send : write_string( "" ) or four write_long(). Not sure.

Destro- 07-21-2013 14:43

Re: svc_updateuserinfo parameters
 
Quote:

Originally Posted by ConnorMcLeod (Post 1995467)
Had this in OSHLDS (SV_FullClientUpdate) :

I look in sing-engine


Quote:

Originally Posted by Arkshine (Post 1995516)
Not sure what we could use and if it's really used. Maybe we could just send : write_string( "" ) or four write_long(). Not sure.

I love you: D

works with 4 write_long().

PHP Code:

message_begin(MSG_ALLSVC_UPDATEUSERINFO)
write_byte(slot(Player index-1)?) 
write_long(userid?)
write_string(userinfo)
write_long(0)
write_long(0)
write_long(0)
write_long(0)
message_end() 



All times are GMT -4. The time now is 06:25.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.