- Код: Выделить всё
unknown unknown unknown mysql_stats_lvl bad load
Подскажите что не так.
Исходник:
- Код: Выделить всё
#include <amxmodx>
#include <sqlx>
native zp_set_user_lvl(id, set)
native zp_set_user_exp(id, set)
native zp_get_user_lvl(id)
native zp_get_user_exp(id)
#define DB_HOST "" //хост
#define DB_USER "" //пользователь
#define DB_PASSWORD "" //пароль
#define DB_NAME "" //имя базы
new Handle:g_hDBHandle, Handle:g_hDBInfo
public plugin_init() DBConnect()
public client_putinserver(id) load_sql(id)
public client_disconnect(id) UpdateDB(id)
public load_sql(id)
{
new ID[32], NAME[32], IP[32]
get_user_authid(id, ID, charsmax(ID));
get_user_ip(id, IP, charsmax(IP));
get_user_name(id, NAME, charsmax(NAME));
replace(NAME, 31, "'", "")
new Handle:hQuery = SQL_PrepareQuery(g_hDBHandle, "SELECT `L`, `E` FROM sql_save_lvl WHERE steamid = '%s'", ID);
if (!SQL_Execute(hQuery))
{
new Error[192];
SQL_QueryError(hQuery, Error, charsmax(Error))
set_fail_state(Error)
SQL_FreeHandle(hQuery)
return;
}
if (!SQL_NumResults(hQuery))
{
natives_call(id)
SQL_FreeHandle(hQuery);
new ip[16];
get_user_ip(id, ip, charsmax(ip), 1);
hQuery = SQL_PrepareQuery(g_hDBHandle, "INSERT INTO `sql_save_lvl` (`name`, `steamid`, `ip`, `L`, `E` ) VALUES ('%s', '%s', '%s', '%d', '%d')", NAME, ID, IP, 1, 1)
if (!SQL_Execute(hQuery))
{
server_print("Error due registering user!");
}
SQL_FreeHandle(hQuery)
return;
}
natives_call(id, SQL_ReadResult(hQuery, 0), SQL_ReadResult(hQuery, 1))
SQL_FreeHandle(hQuery);
}
DBConnect()
{
new Error[128], errno;
g_hDBInfo = SQL_MakeDbTuple(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
g_hDBHandle = SQL_Connect(g_hDBInfo, errno, Error, charsmax(Error));
SQL_FreeHandle(g_hDBInfo)
if (g_hDBHandle == Empty_Handle){
set_fail_state(Error)
return
}
new Handle:ResultT
ResultT=SQL_PrepareQuery(g_hDBHandle, "CREATE TABLE IF NOT EXISTS `sql_save_lvl` (`name` VARCHAR(35) NOT NULL default '', `steamid` VARCHAR(25) NOT NULL default '', `ip` VARCHAR(20) NOT NULL default '', `L` INT(6) NOT NULL, `E` INT(6) NOT NULL)")
if(!SQL_Execute(ResultT)){
SQL_QueryError(ResultT,Error,127)
SQL_FreeHandle(ResultT)
set_fail_state(Error)
return
}
SQL_FreeHandle(ResultT)
}
public plugin_end()
{
for (new id = 1; id <= 32; id++)
{
if(is_user_connected(id) && !is_user_bot(id))
{
UpdateDB(id)
}
}
SQL_FreeHandle(g_hDBHandle)
}
stock UpdateDB(id)
{
new NAME[32]
get_user_authid(id, NAME, charsmax(NAME));
replace(NAME, 31, "'", "")
new Handle:hQuery = SQL_PrepareQuery(g_hDBHandle, "UPDATE `sql_save_lvl` SET `L`=%i, `E`=%i WHERE `steamid` = '%s'", zp_get_user_lvl(id), zp_get_user_exp(id), NAME)
if (!SQL_Execute(hQuery))
{
new Error[192];
SQL_QueryError(hQuery, Error, charsmax(Error));
}
SQL_FreeHandle(hQuery);
}
stock natives_call(id, L=1, E=0)
{
zp_set_user_lvl(id, L)
zp_set_user_exp(id, E)
}
(Данные от БД вписывал, если что).