Code:
public client_putinserver(id)
{
if(is_user_bot(id) || is_user_hltv(id))
return;
get_user_name(id, g_iPlayersInfo[id][Name], charsmax(g_iPlayersInfo[][Name]));
get_user_ip(id, g_iPlayersInfo[id][Address], charsmax(g_iPlayersInfo[][Address]), 1);
get_user_authid(id, g_iPlayersInfo[id][AuthID], charsmax(g_iPlayersInfo[][AuthID]));
new query[512];
formatex(query, charsmax(query), "SELECT * FROM %s WHERE name='%s', g_szONPlayer_Table, g_iPlayersInfo[id][Name]);
new data[1];
data[0] = id;
SQL_ThreadQuery(g_SqlTuple, "Load_Data", query, data, sizeof data);
}
public Load_Data(FailState, Handle:Query, szError[], ErrorCode, szData[], iSize)
{
if(FailState || ErrorCode)
log_amx("sql.log", szError);
new id = szData[0];
if(SQL_NumResults(Query) < 1)
{
new query[512];
formatex(query, charsmax(query), "INSERT INTO `%s` (`name`, `ip`, `steamid`, `frags`, `deaths`) VALUES ('%s', '%s', '%s', '0', '0');",
g_szONPlayerTable, g_iPlayersInfo[id][Name], g_iPlayersInfo[id][Address], g_iPlayersInfo[id][AuthID]);
SQL_ThreadQuery(g_SqlTuple, "Data_Ignore", query);
}
else
{
g_iPlayersInfo[id][Frags] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "frags"));
g_iPlayersInfo[id][Deaths] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "deaths"));
}
}
public Data_Ignore(FailState, Handle:Query, szError[], ErrorCode, szData[], iSize)
{
if(FailState || ErrorCode)
log_amx("sql.log", szError);
SQL_FreeHandle(Query);
}
public client_disconnect(id)
{
if(is_user_bot(id) || is_user_hltv(id))
return;
new query[512];
formatex(query, charsmax(query), "UPDATE `ip`, `steamid`, `frags`, `deaths` SET '%s', '%s', '%d', '%d' WHERE `name`='%s');",
g_iPlayersInfo[id][Address], g_iPlayersInfo[id][AuthID], g_iPlayersInfo[id][Frags], g_iPlayersInfo[id][Deaths], g_iPlayersInfo[id][Name]);
SQL_ThreadQuery(g_SqlTuple, "Data_Ignore", query);
}