public OnClientAuthorized(client, const String:auth[])
{
decl String:sAuth[32];
GetClientAuthString(client, sAuth, sizeof(sAuth) - 1);
decl String:sQuery[256];
Format(sQuery, sizeof(sQuery) - 1, "SELECT * FROM dp_users WHERE Steam = '%s'", sAuth);
SQL_TQuery(db, SQL_SelectPlayerCallback, sQuery, client);
}
public OnClientDisconnect(client)
{
if (db == INVALID_HANDLE)
{
new String:Error[256];
LogError("Fail connect: %s", Error);
}
else if(!IsFakeClient(client))
{
decl String:sAuth[64], String:pName[150], String:query[2048];
GetClientName(client, sAuth, sizeof(sAuth) - 1);
SQL_EscapeString(db, sAuth, pName, sizeof(pName) - 1);
GetClientAuthString(client, sAuth, sizeof(sAuth) - 1);
FormatEx(query, sizeof(query),
"INSERT INTO dp_users (Steam, Nick, Kills, Deaths, Level, EXP, Credits, BanValue) VALUES ('%s', '%N', %d, %d, %d, %d, %d, %d) ON DUPLICATE KEY UPDATE Steam = '%s', Nick = '%N', Kills = %d, Deaths = %d, Level = %d, EXP = %d, Credits = %d, BanValue = %d",
sAuth,
client,
Player[pKills][client],
Player[pDeaths][client],
Player[pLevel][client],
Player[pEXP][client],
Player[pCredit][client],
Player[pBanValue][client],
sAuth,
client,
Player[pKills][client],
Player[pDeaths][client],
Player[pLevel][client],
Player[pEXP][client],
Player[pCredit][client],
Player[pBanValue][client]);
SQL_TQuery(db, SQL_SelectPlayerCallback, query);
}
}
public SQL_SelectPlayerCallback(Handle:owner, Handle:hndl, const String:error[], any:iClient)
{
if(hndl == INVALID_HANDLE)
{
LogError("Ошибка подключения к базе данных (%s)", error);
}
else
{
if(SQL_HasResultSet(hndl) && SQL_FetchRow(hndl))
{
Player[pKills][iClient] = SQL_FetchInt(hndl, 2);
Player[pDeaths][iClient] = SQL_FetchInt(hndl, 3);
Player[pLevel][iClient] = SQL_FetchInt(hndl, 4);
Player[pEXP][iClient] = SQL_FetchInt(hndl, 5);
Player[pCredit][iClient] = SQL_FetchInt(hndl, 6);
Player[pBanValue][iClient] = SQL_FetchInt(hndl, 7);
}
else
{
Player[pKills][iClient] = 0;
Player[pDeaths][iClient] = 0;
Player[pLevel][iClient] = 0;
Player[pEXP][iClient] = 0;
Player[pCredit][iClient] = 0;
Player[pBanValue][iClient] = 0;
}
}
}