- Код: Выделить всё
#include <amxmodx>
#include <sqlx>
native zp_set_user_lvl(id, set)
native zp_get_user_lvl(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` FROM 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_bzshka` (`name`, `steamid`, `ip`, `L` ) VALUES ('%s', '%s', '%s', '%d')", NAME, ID, IP, 1)
if (!SQL_Execute(hQuery))
{
server_print("Error due registering user!");
}
SQL_FreeHandle(hQuery)
return;
}
natives_call(id, SQL_ReadResult(hQuery, 0))
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 `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)")
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_bzshka` SET `L`=%i WHERE `steamid` = '%s'", zp_get_user_lvl(id), NAME)
if (!SQL_Execute(hQuery))
{
new Error[192];
SQL_QueryError(hQuery, Error, charsmax(Error));
}
SQL_FreeHandle(hQuery);
}
stock natives_call(id, L=1)
{
zp_set_user_lvl(id, L)
}
Помогите плиз, пытался много чего делать как в исходе так и в БД, ничего(