Code:
#include <sqlx>
public plugin_end()
{
if(!get_pcvar_num(CvarAutoSave))
return
new iPlayers[32], iNum
get_players(iPlayers, iNum)
new iPlayer
for(new i = 0; i < iNum; i++)
{
iPlayer = iPlayers[i]
Save_MySQL(iPlayer)
}
if (g_SqlTuple) SQL_FreeHandle(g_SqlTuple)
//SQL_FreeHandle(g_SqlTuple)
}
public MySQL_Init()
{
g_SqlTuple = SQL_MakeDbTuple(SQL_HOST, SQL_USER, SQL_PASS, SQL_DB)
new ErrorCode, Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, g_Error, charsmax(g_Error))
if(SqlConnection == Empty_Handle)
set_fail_state(g_Error)
new Handle:Queries
Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS bank (steamplayer varchar(32),ammopacks INT(32),last_played TIMESTAMP(10) NOT NULL)")
if(!SQL_Execute(Queries))
{
SQL_QueryError(Queries, g_Error, charsmax(g_Error))
set_fail_state(g_Error)
}
SQL_FreeHandle(Queries)
SQL_FreeHandle(SqlConnection)
}
public MySQL_CoreFunction(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error)
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("Load Query failed. [%d] %s", Errcode, Error)
}
new player
player = Data[0]
if(SQL_NumResults(Query) < 1)
{
if(equal(g_iSteamID[player], "player_PENDING"))
return PLUGIN_HANDLED
new szTemp[512]
format(szTemp, 511, "INSERT INTO `bank` ( `steamplayer` , `ammopacks` , `last_played`)VALUES ('%s','0',SYSDATE());", g_iSteamID[player])
SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp)
}
else
{
g_iBank[player] = SQL_ReadResult(Query, 1)
}
return PLUGIN_HANDLED
}
public IgnoreHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
{
SQL_FreeHandle(Query)
return PLUGIN_HANDLED
}
public Load_MySQL(player)
{
new szTemp[512]
new Data[1]
Data[0] = player
format(szTemp, 511, "SELECT * FROM `bank` WHERE (`bank`.`steamplayer` = '%s')", g_iSteamID[player])
SQL_ThreadQuery(g_SqlTuple, "MySQL_CoreFunction", szTemp, Data, 1) /// <- Getting errors
}
public Save_MySQL(player)
{
new szTemp1[512], szTemp2[512]
if(!IsManual[player])
{
g_iAmmoPacks[player] = zp_ammopacks_get(player)
g_iBank[player] = (g_iBank[player] += g_iAmmoPacks[player])
}
else
{
IsManual[player] = false
}
format(szTemp1, 511, "UPDATE `bank` SET `ammopacks` = '%i' WHERE `bank`.`steamplayer` = '%s';", g_iBank[player], g_iSteamID[player])
format(szTemp2, 511, "UPDATE `bank` SET `last_played` = SYSDATE() WHERE `bank`.`steamplayer` = '%s';", g_iSteamID[player])
SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp1) // <- Getting errors
SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp2)
}
Run time error 10: native error (native "SQL_ThreadQuery")
[0] zp50_bank_sqlx.inc::MySQL_CoreFunction (line 67)
Run time error 10: native error (native "SQL_ThreadQuery")
[0] zp50_bank_sqlx.inc::Save_MySQL (line 113)
[1] zp50_ammo_packs_bank.sma::OnClientChat (line 194)
Can someone fix this ?