Raised This Month: $ Target: $400
 0% 

Solved Weird issue when player joins


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
GasmoN
Member
Join Date: Jul 2014
Old 10-08-2021 , 10:52   Weird issue when player joins
Reply With Quote #1

Okay, when player joins my server, the function Load_MySql(id); load his data.
When that happen, players who are in the game already can't use /rank command anymore to see their rank.

PHP Code:
public Load_MySql(id)
{
    new 
szSteamId[32];
    new 
szTemp[512];
    
get_user_authid(idszSteamIdcharsmax(szSteamId));
    
    new 
Data[1];
    
Data[0] = id;
    
    
format(szTempcharsmax(szTemp), "SELECT * FROM `amx_ranks` WHERE (`amx_ranks`.`steam_id` = '%s')"szSteamId);
    
SQL_ThreadQuery(g_SqlTuple"register_client"szTempData1);
}

public 
register_client(FailStateHandle:QueryError[], ErrcodeData[], DataSize)
{
    if(
FailState == TQUERY_CONNECT_FAILED)
    {
        
log_amx("Load - Could not connect to SQL database.  [%d] %s"ErrcodeError);
    }
    else if(
FailState == TQUERY_QUERY_FAILED)
    {
        
log_amx("Load Query failed. [%d] %s"ErrcodeError);
    }

    new 
id;
    
id Data[0];
    
    if(
SQL_NumResults(Query) < 1
    {
        new 
szSteamId[32];
        new 
szName[33];
        
get_user_name(idszNamecharsmax(szName));
        
get_user_authid(idszSteamIdcharsmax(szSteamId));
        
        if (
equal(szSteamId,"ID_PENDING"))
            return 
PLUGIN_HANDLED;
            
        new 
szTemp[512];
        
format(szTemp,charsmax(szTemp),"INSERT INTO `amx_ranks` (`steam_id`, `name`) VALUES ('%s','%s');"szSteamIdszName);
        
SQL_ThreadQuery(g_SqlTuple"activate_client"szTempData);
    } 
    
    return 
PLUGIN_HANDLED;
}

public 
activate_client(FailStateHandle:QueryError[], ErrcodeData[], DataSize)
{
    new 
id Data[0];
    
Save_MySql(id)

    return 
PLUGIN_HANDLED;
}

public 
Save_MySql(id)
{
    if(!
is_user_connected(id))
    return;

    new 
szSteamId[32];
    new 
szTemp[512];
    
get_user_authid(idszSteamIdcharsmax(szSteamId));
    
format(szTempcharsmax(szTemp), "UPDATE `amx_ranks` SET `kills` = kills + %i, `deaths` = deaths + %i, `headshots` = headshots + %i, `score` = kills - deaths WHERE `amx_ranks`.`steam_id` = '%s';"
        
g_PlayerData[id][pKills],
        
g_PlayerData[id][pDeaths],
        
g_PlayerData[id][pHeadshots],
        
szSteamId
        
);

    
SQL_ThreadQuery(g_SqlTuple"IgnoreHandle"szTemp);
}

public 
IgnoreHandle(FailStateHandle:QueryError[], ErrcodeData[], DataSize)
{
    
SQL_FreeHandle(Query);
    return 
PLUGIN_HANDLED;
}

public 
cmd_rank(id)
{
    new 
szName[33];
    new 
szQuery[200];
    new 
data[1];
    
data[0] = id;
    
get_user_name(idszName32);
    
formatex(szQuerycharsmax(szQuery), "SELECT name, kills, deaths, FIND_IN_SET( score, ( SELECT GROUP_CONCAT( score ORDER BY kills DESC, deaths DESC ) FROM amx_ranks ) ) AS rank FROM amx_ranks WHERE name =  '%s';"szName);
    
SQL_ThreadQuery(g_SqlTuple"mysql_rank"szQuerydata);
}

public 
mysql_rank(FailStateHandle:QueryError[], ErrcodeData[], DataSize)
{
    if(
FailState)
    {
        
log_amx("SQL Error: %s (%d)"ErrorErrcode);
        return 
PLUGIN_HANDLED;
    }

    if(
SQL_NumResults(Query) >= 1)
    {
        new 
iRank SQL_FieldNameToNum(Query"rank");
        new 
iKills SQL_FieldNameToNum(Query"kills");
        new 
iDeaths SQL_FieldNameToNum(Query"deaths");

        
ColorChat(Data[0], BLUE"$g%s$t Your rank: $g%d$n |$t Broj kills: $g%d$n |$t Deaths: $g%d "CHAT_PREFIXSQL_ReadResult(QueryiRank), SQL_ReadResult(QueryiKills), SQL_ReadResult(QueryiDeaths));
    }
    else
    {
        
ColorChat(Data[0], GREY"$g%s$t No players in database."CHAT_PREFIX);
        return 
PLUGIN_HANDLED;
    }

    return 
PLUGIN_HANDLED;
    


Last edited by GasmoN; 10-08-2021 at 13:54. Reason: Fixed
GasmoN is offline
 


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


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


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