Descarcare:
Cod: Selectaţi tot
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#include <zombieplague>
native zp_get_level(id);
native zp_set_level(id,amount);
#define DB_NONE 0
#define DB_CONNECTING 1
#define DB_READY 2
new Handle:Conexiune = Empty_Handle
new Handle:SqlConnection
new g_Error[512], g_db_status
new Host[64], User[64], Pass[64], Db[64]
new authid[33][32]
public plugin_init()
{
register_plugin("[ZP] Save XP", "1.2", "EDUTz, edited by Rainq")
new configsDi[64], configfile[128]
get_configsdir(configsDi, 63)
format(configfile, 127, "%s/levelxp.cfg", configsDi)
if(file_exists(configfile))
{
server_cmd("exec %s", configfile)
}
else log_amx("[AMXX] levelxp.cfg not found in the config folder.")
g_db_status = DB_NONE
set_task(0.1, "MySql_Init")
}
public client_putinserver(id)
{
get_user_authid(id, authid[id], 31);
Load_MySql(id)
}
public MySql_Init()
{
if(g_db_status == DB_CONNECTING)
return
g_db_status = DB_CONNECTING
new ErrorCode
get_cvar_string("amx_sql_host", Host, 63)
get_cvar_string("amx_sql_user", User, 63)
get_cvar_string("amx_sql_pass", Pass, 63)
get_cvar_string("amx_sql_db", Db, 63)
Conexiune = SQL_MakeDbTuple(Host,User,Pass,Db)
SqlConnection = SQL_Connect(Conexiune,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 zombie_level_bank (user varchar(32),ammo INT(11))")
if(!SQL_Execute(Queries))
{
SQL_QueryError(Queries,g_Error,charsmax(g_Error))
set_fail_state(g_Error)
g_db_status = DB_NONE
}
else g_db_status = DB_READY
SQL_FreeHandle(Queries)
SQL_FreeHandle(SqlConnection)
}
public plugin_end()
{
if(g_db_status == DB_READY)
SQL_FreeHandle(Conexiune)
}
public client_disconnected(id)
{
if(Conexiune != Empty_Handle)
Save_MySql(id);
remove_task(id)
}
public Load_MySql(id)
{
if(g_db_status != DB_READY)
return
new Data[1], szTemp[512]
Data[0] = id
#if defined USINGAUTHID
format(szTemp,charsmax(szTemp),"SELECT * FROM zombie_level_bank WHERE zombie_level_bank.user = ^"%s^";", authid[id])
#else
new szName[32]
get_user_name(id, szName, charsmax(szName))
format(szTemp,charsmax(szTemp),"SELECT * FROM zombie_level_bank WHERE zombie_level_bank.user = ^"%s^";", szName)
#endif
SQL_ThreadQuery(Conexiune,"register_client",szTemp,Data,1)
}
public register_client(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, szTemp[512]
id = Data[0]
if(SQL_NumResults(Query) < 1)
{
#if defined USINGAUTHID
format(szTemp,charsmax(szTemp),"INSERT INTO zombie_level_bank ( user , ammo )VALUES (^"%s^", 1);", authid[id])
#else
new szName[32]
get_user_name(id, szName, charsmax(szName))
format(szTemp,charsmax(szTemp),"INSERT INTO zombie_level_bank ( user , ammo )VALUES (^"%s^", 1);", szName)
#endif
SQL_ThreadQuery(Conexiune,"IgnoreHandle",szTemp)
}
else
{
zp_set_level(id, SQL_ReadResult(Query, 1))
}
return PLUGIN_HANDLED
}
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
SQL_FreeHandle(Query)
return PLUGIN_HANDLED
}
public Save_MySql(id)
{
if(!is_user_connected(id))
return
if(g_db_status != DB_READY)
return
new packs = zp_get_level(id)
new szTemp[512]
if ( packs > 1 )
{
#if defined USINGAUTHID
format(szTemp,charsmax(szTemp),"UPDATE zombie_level_bank SET ammo = %i WHERE zombie_level_bank.user = ^"%s^";",packs, authid[id])
#else
new szNume[32]
get_user_name(id, szNume, charsmax(szNume))
format(szTemp,charsmax(szTemp),"UPDATE zombie_level_bank SET ammo = %i WHERE zombie_level_bank.user = ^"%s^";",packs, szNume)
#endif
SQL_ThreadQuery(Conexiune,"IgnoreHandle",szTemp)
}
}
Cod: Selectaţi tot
echo Executing ZP XP config
// EN: database settings
amx_sql_host "daca nu stiti unde sa modificati ,ticket la host"
amx_sql_user "daca nu stiti unde sa modificati ,ticket la host"
amx_sql_pass "daca nu stiti unde sa modificati ,ticket la host"
amx_sql_db "daca nu stiti unde sa modificati ,ticket la host"
// mysql or sqlite
zp_bank_type "mysql"
zp_bank_table "ZOMBIEXP"
zp_bank_pw_str "_bpw"
Cod: Selectaţi tot
amx_sql_host "daca nu stiti unde sa modificati ,ticket la host"
amx_sql_user "daca nu stiti unde sa modificati ,ticket la host"
amx_sql_pass "daca nu stiti unde sa modificati ,ticket la host"
amx_sql_db "daca nu stiti unde sa modificati ,ticket la host"
amx_sql_table "admins"
amx_sql_type "mysql"
amx_sql_timeout "60"
Versiune: 1.2
Link oficial: cspower / thexforce
Instalare:
1. Fisierul zp_bank_save_levelXP.sma il puneti in addons/amxmodx/scripting
2. Fisierul zp_bank_save_levelXP.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
Cod: Selectaţi tot
zp_bank_save_levelXP.amxx
Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): -
Imagini: -