#include #include #include #include new const sql_host[] = "" // Хост new const sql_user[] = "" // Пользователь new const sql_password[] = "" // Пароль new const sql_base[] = "" // Название базы new const sql_table[] = "" // Название таблицы new Handle:SQL_Tuple new Handle:SQL_Connection new g_EmptyUser[33] new g_Query[512] public plugin_init() register_plugin("[ZP] Save Ammo SQL", "1.0", "Erasus") public plugin_cfg() { SQL_Tuple = SQL_MakeDbTuple(sql_host, sql_user, sql_password, sql_base) new i_Error, sz_Error[256] SQL_Connection = SQL_Connect(SQL_Tuple, i_Error, sz_Error, charsmax(sz_Error)) if(SQL_Connection != Empty_Handle) log_amx("[SQL] Sucessfully connected.") else{ log_amx("[SQL Error] %s ", sz_Error) pause("a") } } public client_putinserver(id) { new sz_Steam[32], data[1] data[0] = id get_user_authid(id, sz_Steam, charsmax(sz_Steam)) format(g_Query, charsmax(g_Query), "SELECT * FROM `%s` WHERE `steamid` LIKE '%s'", sql_table, sz_Steam) SQL_ThreadQuery(SQL_Tuple, "CheckAmount", g_Query, data, 1) } public client_disconnect(id) { new i_AmmoPacks = zp_get_user_ammo_packs(id) new sz_Name[33], sz_Steam[32], szTemp[1024] get_user_authid(id, sz_Steam, charsmax(sz_Steam)) get_user_name(id, sz_Name, charsmax(sz_Name)) if(g_EmptyUser[id]) formatex(szTemp, charsmax(szTemp), "INSERT INTO `%s` (`SteamID`, `Name`, `AmmoPacks`) VALUES ('%s', '%s', '%d')", sql_table, sz_Steam, sz_Name, i_AmmoPacks) else formatex(szTemp, charsmax(szTemp), "UPDATE `%s` SET `AmmoPacks` = '%d',`Name` = '%s' WHERE `SteamID` = '%s'", sql_table, i_AmmoPacks, sz_Name, sz_Steam) SQL_ThreadQuery(SQL_Tuple, "IgnoreHandle", szTemp) } public CheckAmount(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 id = Data[0] if(SQL_NumResults(Query) < 1) g_EmptyUser[id] = 1 else{ g_EmptyUser[id] = 0 new i_AmmoPacks = SQL_ReadResult(Query, 2) zp_set_user_ammo_packs(id, i_AmmoPacks) } return PLUGIN_HANDLED } public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { SQL_FreeHandle(Query) return PLUGIN_HANDLED } public plugin_end() SQL_FreeHandle(SQL_Connection)