
Стаж: 13 лет
Сообщений: 335
Благодарностей: 13
Полезность: < 0
|
помогите исправить ошибку пожалуйста . был вот так : Код:
public QueryHandler(FailState, Handle:Query, Error[], ErrCode, data[], size, Float:querytime) {
if(!CheckQuery(FailState, ErrCode, Error)) { SQL_FreeHandle(Query); return PLUGIN_HANDLED; } static id; id = data[0]; if(SQL_NumResults(Query) < 1) { new Query[270] format( Query, 255, "INSERT INTO `%s` ( `%s` , `%s`, `%s`) VALUES ('%s', '5', '0');", Table, AuthRow, MoneyRow, ClassRow, g_szSteam[id] ); SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", Query )
set_class(id, 0) set_ammo(id, 5) } else { set_ammo(id, SQL_ReadResult(Query, 0)) set_class(id, SQL_ReadResult(Query, 1)) } SQL_FreeHandle(Query); return PLUGIN_CONTINUE; } переделал вот так: Код:
public QueryHandler(FailState, Handle:Query, Error[], ErrCode, data[], size, Float:querytime) { if(!CheckQuery(FailState, ErrCode, Error)) { SQL_FreeHandle(Query); return PLUGIN_HANDLED; } static id; id = data[0]; new NAME[32], IP[32]; get_user_ip(id, IP, charsmax(IP)); get_user_name(id, NAME, charsmax(NAME)); if(SQL_NumResults(Query) < 1) { new ip[16]; get_user_ip(id, ip, charsmax(ip), 1); new Query[270] format( Query, 255, "INSERT INTO `%s` ( `%s`, `%s` , `%s`, `%s`, `%s`, `%s`) VALUES ('%s', '%s', '%s', '5', '0', '0');", Table, Name, SteamID, Ip, Level, Exp, Point, g_szSteam[id] ); SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", Query ) set_lvl(id, 5) set_exp(id, 0) set_points(id, 0) } else { set_lvl(id, SQL_ReadResult(Query, 0)) set_exp(id, SQL_ReadResult(Query, 1)) set_points(id, SQL_ReadResult(Query, 2)) } SQL_FreeHandle(Query); return PLUGIN_CONTINUE; } ошибка в логах: String formatted incorrectly - parameter 12 (total 11) [AMXX] Displaying debug trace (plugin "SaveMYSQL.amxx") [AMXX] Run time error 25: parameter error [AMXX] [0] SaveMYSQL.sma::QueryHandler (line 104)Код:
#include < amxmodx > #include < mysql > #include <sqlx2>
native set_user_level(id, set) native set_user_exp(id, set) native set_user_points(id, set)
native get_user_level(id) native get_user_exp(id) native get_user_points(id)
#define get_lvl(%1) get_user_level(%1) #define set_lvl(%1,%2) set_user_level(%1,%2)
#define get_points(%1) get_user_points(%1) #define set_points(%1,%2) set_user_points(%1,%2)
#define get_exp(%1) get_user_exp(%1) #define set_exp(%1,%2) set_user_exp(%1,%2)
#define PLUGIN_NAME "Save Ammo & Class zombies" #define PLUGIN_VERSION "0.1" #define PLUGIN_AUTHOR "Opo4uMapy"
#define LIMIT_AMMO 30000
new const Host[]= "ip", User[]= "login", Pass[]= "password", Db[]= "login";
new const Table[] = "JCTF_SAVE", Name[] = "Name", SteamID[] = "SteamID", Ip[] = "IP", Level[]= "Level", Exp[]= "Exp", Point[]= "Points"
new Handle:SQL_Tuple;
new g_szSteam[33][35]
public plugin_init( ) register_plugin ( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR );
public client_putinserver( id ) set_task(5.0, "LoadData", id+73718)
public plugin_cfg() set_task(1.0, "Load_Debug")
public Load_Debug() { new g_Error[512] SQL_Tuple = SQL_MakeDbTuple(Host, User, Pass, Db); new ErrorCode,Handle:SqlConnection = SQL_Connect(SQL_Tuple,ErrorCode,g_Error,charsmax(g_Error)) if(SqlConnection == Empty_Handle) set_fail_state(g_Error) if(!SQL_TableExists(SqlConnection, Table)) { new Handle:Queries; new Query[256] format( Query, 255, "CREATE TABLE `%s`.`%s` (`%s` INT NOT NULL, `%s` VARCHAR(40) CHARACTER SET cp1250 COLLATE cp1250_general_ci NOT NULL, `%s` INT NOT NULL, `%s` INT NOT NULL, `%s` INT NOT NULL, `%s` INT NOT NULL, PRIMARY KEY (`%s`))", Db, Table, Name, SteamID, Ip, Level, Exp, Point, SteamID); Queries = SQL_PrepareQuery( SqlConnection, Query ) if(!SQL_Execute(Queries)) { SQL_QueryError(Queries,g_Error,charsmax(g_Error)) set_fail_state(g_Error); } SQL_FreeHandle(Queries) } SQL_FreeHandle(SqlConnection) }
public QueryHandler(FailState, Handle:Query, Error[], ErrCode, data[], size, Float:querytime) { if(!CheckQuery(FailState, ErrCode, Error)) { SQL_FreeHandle(Query); return PLUGIN_HANDLED; } static id; id = data[0]; new NAME[32], IP[32]; get_user_ip(id, IP, charsmax(IP)); get_user_name(id, NAME, charsmax(NAME)); if(SQL_NumResults(Query) < 1) { new ip[16]; get_user_ip(id, ip, charsmax(ip), 1); new Query[270] format( Query, 255, "INSERT INTO `%s` ( `%s`, `%s` , `%s`, `%s`, `%s`, `%s`) VALUES ('%s', '%s', '%s', '5', '0', '0');", Table, Name, SteamID, Ip, Level, Exp, Point, g_szSteam[id] ); format( Query, 255, "INSERT INTO `%s` ( `%s` , `%s`, `%s`) VALUES ('%s', '5', '0');", Table, AuthRow, MoneyRow, ClassRow, g_szSteam[id] ); SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", Query ) set_lvl(id, 5) set_exp(id, 0) set_points(id, 0) } else { set_lvl(id, SQL_ReadResult(Query, 0)) set_exp(id, SQL_ReadResult(Query, 1)) set_points(id, SQL_ReadResult(Query, 2)) } SQL_FreeHandle(Query); return PLUGIN_CONTINUE; }
public LoadData(task) { new id=task-73718 if(!is_user_connected(id)) return; g_szSteam[id][0] = '^0' get_user_authid(id, g_szSteam[id] ,charsmax(g_szSteam))
new Query[256] static data[1]; data[0]=id format( Query, 255, "SELECT `%s`, `%s`, `%s` FROM `%s` WHERE `%s` = '%s'", Level, Exp, Point, Table, SteamID, g_szSteam[id] ); SQL_ThreadQueryFormat(SQL_Tuple,"QueryHandler", Query, data, 1 ) }
public Save_Data(id) { SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", "UPDATE `%s` SET `%s` = '%i', `%s` = '%i', `%s` = '%i' WHERE `%s`.`%s` = '%s'", Table, Level, get_lvl(id), Exp, get_exp(id), Point, get_points(id), Table, SteamID, g_szSteam[id] ); }
public client_disconnect(id) { if(!equal(g_szSteam[id], "STEAM_ID_LAN") && !equal(g_szSteam[id], "BOT") && !equal(g_szSteam[id], "VALVE_ID_LAN")) Save_Data(id) }
public IgnoreHandle(FailState,Handle:Query,Error[],ErrCode,Data[],DataSize) { CheckQuery(FailState, ErrCode, Error) SQL_FreeHandle(Query) return PLUGIN_HANDLED }
public plugin_end() { if(SQL_Tuple) SQL_FreeHandle(SQL_Tuple); }
Отредактировал: iShot, - 22.7.2016, 14:53
Причина: убрал данные от БД.
|