Plugin-uriSalvare XP [ZP]

Moderatori: Moderators, Founder

Mesaj

Avatar utilizator
CEO
Posts
3802
Descriere: Salvare XP -> pentru acest XP mai exact Zombie Experience

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)
	}
}
creati voi un fisier cu numele asta levelxp.cfg in configs

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"
totusi daca nici asa nu se salveaza xp modificati si aici sql.cfg

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"
Nume: Salvare XP [ZP]
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
4. Alti pasi necesari....

Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): -
Imagini: -
========================
CONTACT : diliulro@yahoo.com
========================
Scrie răspuns