1. sayfa (Toplam 2 sayfa)

ZP Bank Kural İhlali Yardım

Gönderilme zamanı: Pzt Haz 12, 2017 10:25 am
gönderen ByBuLuT ☪
Bu eklentide kural ihlali nerde geciyor yardımcı olurmusunuz

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <sqlx>
#include <zombieplague>
#include <colorchat>

#pragma semicolon 1

#if !defined MAX_PLAYERS
	#define MAX_PLAYERS 32
#endif

new PLUGIN_NAME[] = "[ZP]Addons: Bank SQL";
new PLUGIN_VERSION[] = "0.9.2";
new PLUGIN_AUTHOR[] = "Epmak";
new PLUGIN_PREFIX[] = "[ZP][Bank]";

enum vars_struct { 
	mode=0,
	annonce,
	
	save_limit,
	save_days,
	save_type,
	
	block_cname,
	startedammo,
	allow_passwd,
	allow_donate,
	
	bool:round_end,
	
	_pw_str[32],
	table[32],
	config_dir[128]
};

enum bank_struct {
	bool:ingame,
	bool:async,
	bool:loggin,
	auth[36],
	passwd[32],
	amount
}

new g_vars[vars_struct];
new g_Bank[MAX_PLAYERS+1][bank_struct];
new Handle:g_Sql = Empty_Handle,Handle:g_SqlTuple = Empty_Handle;

public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
	register_cvar("zp_bank_sql", PLUGIN_VERSION, FCVAR_SERVER);
	
	register_dictionary("zp_bank.txt");
	register_dictionary("common.txt");
	
	register_clcmd("say", "handle_say");
	register_clcmd("say_team", "handle_say");
	
	register_concmd("zp_bank_show", "cmdBankShow", ADMIN_ADMIN);
	register_concmd("zp_bank_set", "cmdBankSet", ADMIN_RCON, "<name or #userid> <+ or ->amount");
	
	g_vars[startedammo] = get_cvar_pointer("zp_starting_ammo_packs");
	
	register_srvcmd("zp_bank_connect", "db_connect");
	
	register_forward(FM_ClientUserInfoChanged, "fwClientUserInfoChanged");
	
	server_cmd("zp_bank_connect");
}

public plugin_precache()
{
	get_configsdir(g_vars[config_dir], 127);
	
	g_vars[mode] = register_cvar("zp_bank", "1");
	g_vars[annonce] = register_cvar("zp_bank_annonce", "360.0");
	g_vars[save_limit] = register_cvar("zp_bank_save_limit", "150");
	g_vars[save_days] = register_cvar("zp_bank_save_days", "24");
	g_vars[save_type] = register_cvar("zp_bank_save_type", "2");
	g_vars[block_cname] = register_cvar("zp_bank_block_name_change", "1");
	g_vars[allow_passwd] = register_cvar("zp_bank_allow_passwd", "1");
	g_vars[allow_donate] = register_cvar("zp_bank_allow_donate", "0");
	
	register_cvar("zp_bank_host", "127.0.0.1");
	register_cvar("zp_bank_user", "root");
	register_cvar("zp_bank_pass", "");
	register_cvar("zp_bank_db", "amxx");
	register_cvar("zp_bank_type", "mysql");
	register_cvar("zp_bank_table", "zp_bank");
	register_cvar("zp_bank_pw_str", "_bpw");
	
	server_cmd("exec %s/zp_bank.cfg", g_vars[config_dir]);
	server_exec();
}

public plugin_cfg()
{
	g_vars[mode] = get_pcvar_num(g_vars[mode]);
	g_vars[save_limit] = get_pcvar_num(g_vars[save_limit]);
	g_vars[save_days] = get_pcvar_num(g_vars[save_days]);
	g_vars[save_type] = get_pcvar_num(g_vars[save_type]);
	g_vars[block_cname] = get_pcvar_num(g_vars[block_cname]);
	g_vars[allow_passwd] = get_pcvar_num(g_vars[allow_passwd]);
	g_vars[allow_donate] = get_pcvar_num(g_vars[allow_donate]);
	
	if(g_vars[save_limit] < 0) g_vars[save_limit] = 0;
	
	if(get_pcvar_num(g_vars[annonce]))
		set_task(get_pcvar_float(g_vars[annonce]), "print_annonce",_,_,_,"b");
	
	get_cvar_string("zp_bank_pw_str", g_vars[_pw_str], 31);
} 

public plugin_end()
{
	if(g_Sql != Empty_Handle) SQL_FreeHandle(g_Sql);
	if(g_SqlTuple != Empty_Handle) SQL_FreeHandle(g_SqlTuple);
}

public zp_round_started(gamemode, id)
{
	g_vars[round_end] = false;
}

public zp_round_ended(winteam)
{
	if (!g_vars[mode] || g_Sql == Empty_Handle)
		return ;
	
	static i;
	for(i=1;i<=MAX_PLAYERS;i++)
	{
		if(!g_Bank[i][ingame] || !g_Bank[i][loggin] || !g_Bank[i][async])
			continue;
		
		SaveClientBank(i);
	}
	
	g_vars[round_end] = true;
}

public client_connect(id)
{
	if (!g_vars[mode])
		return ;
	
	GetAuthId(id, g_Bank[id][auth],35);
	
	g_Bank[id][amount] = 0;
	g_Bank[id][async] = false;
	g_Bank[id][loggin] = false;
	
	if(g_vars[mode] == 2)
		zp_set_user_ammo_packs(id, get_pcvar_num(g_vars[startedammo]));
	
	LoadClientBank(id);
}

public client_putinserver(id)
{
	g_Bank[id][ingame] = true;
	
	if(g_Bank[id][async] == true && g_Bank[id][loggin] == true)
		SetAmmoBank(id, g_Bank[id][amount]);
}

public client_disconnected(id)
{
	if (!g_vars[mode] || g_Sql == Empty_Handle)
		return ;
	
	if(g_vars[round_end] == false && g_Bank[id][async] == true && g_Bank[id][loggin] == true)
		SaveClientBank(id);
	
	g_Bank[id][ingame] = false;
	g_Bank[id][auth][0] = '^0';
	g_Bank[id][passwd][0] = '^0';
}

public cmdBankShow(id, level, cid)
{
	if (!cmd_access(id, level, cid, 1))
		return PLUGIN_HANDLED;
	
	static pl_name[32], pl_amount[11], i;
	console_print(id, "%33s amount","name");
	for(i=1;i<=MAX_PLAYERS;i++)
	{
		if(!g_Bank[i][ingame]) continue;
		
		get_user_name(i,pl_name,31);
		
		if(!g_Bank[i][async])
			pl_amount = "not loaded";
		else if(!g_Bank[i][loggin])
			pl_amount = "not loggin";
		else
			num_to_str(GetAmmoBank(i),pl_amount,10);
		
		console_print(id, "%33s %s", pl_name, pl_amount);
	}
	
	return PLUGIN_HANDLED;
}

public cmdBankSet(id, level, cid)
{
	if (!cmd_access(id, level, cid, 3))
		return PLUGIN_HANDLED;
	
	static s_player[32], player, s_amount[12], i_amount;
	read_argv(1, s_player, 31);
	player = cmd_target(id, s_player, CMDTARGET_ALLOW_SELF);
	
	if (!player)
		return PLUGIN_HANDLED;
	
	get_user_name(player,s_player,31);
	if(!g_Bank[player][async])
	{
		console_print(id,"The player '%s' has not loaded bank", s_player);
		return PLUGIN_HANDLED;
	}
	else if(!g_Bank[player][loggin])
	{
		console_print(id,"The player '%s' has not loggin bank", s_player);
		return PLUGIN_HANDLED;
	}
	
	read_argv(2, s_amount, 11);
	remove_quotes(s_amount);
	i_amount = str_to_num(s_amount);
	
	switch(s_amount[0])
	{
		case '+':
			SetAmmoBank(player, GetAmmoBank(player)+i_amount);
		case '-':
			SetAmmoBank(player, GetAmmoBank(player)-(0-i_amount));
		default:
			SetAmmoBank(player,i_amount);
	}
	
	return PLUGIN_HANDLED;
}

public print_annonce()
{
	if (!g_vars[mode] || g_Sql == Empty_Handle)
		return ;
	
	ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE1");
	if(g_vars[mode] == 1)
	{
		ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE2");
		ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE3");
	}
	else
	{
		ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE4");
	}
}

public db_loadcurrent()
{
	for(new i=1;i<=MAX_PLAYERS;i++)
	{
		if(g_Bank[i][async] || !g_Bank[i][ingame]) continue;
		
		LoadClientBank(i);
	}
}

public db_connect(count)
{
	if(!g_vars[mode])
		return ;
	
	new host[64], user[32], pass[32], db[128];
	new get_type[13], set_type[12];
	new error[128], errno;
	
	get_cvar_string("zp_bank_host", host, 63);
	get_cvar_string("zp_bank_user", user, 31);
	get_cvar_string("zp_bank_pass", pass, 31);
	get_cvar_string("zp_bank_type", set_type, 11);
	get_cvar_string("zp_bank_db", db, 127);
	get_cvar_string("zp_bank_table", g_vars[table], 31);
	
	if(is_module_loaded(set_type) == -1)
	{
		server_print("^r^n%s error: module '%s' not loaded.^r^n%s Add line %s to %s/modules.ini and restart server^r^n", PLUGIN_PREFIX, set_type, PLUGIN_PREFIX, set_type, g_vars[config_dir]);
		return ;
	}
	
	SQL_GetAffinity(get_type, 12);
	
	if (!equali(get_type, set_type))
		if (!SQL_SetAffinity(set_type))
			log_amx("Failed to set affinity from %s to %s.", get_type, set_type);
	
	g_SqlTuple = SQL_MakeDbTuple(host, user, pass, db);
	
	g_Sql = SQL_Connect(g_SqlTuple, errno, error, 127);
	
	if (g_Sql == Empty_Handle)
	{
		server_print("%s SQL Error #%d - %s", PLUGIN_PREFIX, errno, error);
		
		count += 1;
		set_task(10.0, "db_connect", count);
		
		return ;
	}
	
	SQL_QueryAndIgnore(g_Sql, "SET NAMES utf8");
	
	if (equali(set_type, "sqlite") && !sqlite_TableExists(g_Sql, g_vars[table])) SQL_QueryAndIgnore(g_Sql, "CREATE TABLE %s (auth VARCHAR(36) PRIMARY KEY, password VARCHAR(32) NOT NULL DEFAULT '', amount INTEGER DEFAULT 0, timestamp INTEGER NOT NULL DEFAULT 0)",g_vars[table]);
	else if (equali(set_type, "mysql")) SQL_QueryAndIgnore(g_Sql,"CREATE TABLE IF NOT EXISTS `%s` (`auth` VARCHAR(36) NOT NULL, `password` VARCHAR(32) NOT NULL DEFAULT '', `amount` INT(10) NOT NULL DEFAULT 0, `timestamp` INT(10) NOT NULL DEFAULT 0, PRIMARY KEY (`auth`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;", g_vars[table]);
	
	CleanDataBase();
	if(count > 1)
		db_loadcurrent();
	
	server_print("%s con to: ",PLUGIN_PREFIX);
}

public CleanDataBase()
{
	SQL_QueryAndIgnore(g_Sql, "DELETE FROM %s WHERE amount='0' AND password = '';", g_vars[table]);
	
	if (!g_vars[save_days]) return ;
	
	new curTime = get_systime();
	curTime -= ((g_vars[save_days] * 24) * 3600);
	
	SQL_QueryAndIgnore(g_Sql,"DELETE FROM %s WHERE timestamp < '%d';", g_vars[table], curTime);
}

public fwClientUserInfoChanged(id, buffer)
{
	if (!g_vars[mode] || !is_user_connected(id))
		return FMRES_IGNORED;
	
	new name[32], val[32], name_1[] = "name";
	get_user_name(id, name, 31);
	engfunc(EngFunc_InfoKeyValue, buffer, name_1, val, 31);
	if (equal(val, name))
		return FMRES_IGNORED;
	
	if(g_vars[block_cname])
	{
		engfunc(EngFunc_SetClientKeyValue, id, buffer, name_1, name);
		client_cmd(id, "name ^"%s^"; setinfo name ^"%s^"", name, name);
		console_print(id, "%L", id ,"NO_NAME_CHANGE");
	}
	else
	{
		GetAuthId(id,g_Bank[id][auth],35);
		return FMRES_IGNORED;
	}
 
	return FMRES_SUPERCEDE;
}

public handle_say(id)
{
	if(!g_vars[mode])
	{
		ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_DISABLED");
		
		return PLUGIN_CONTINUE;
	}
	else if(g_Sql == Empty_Handle)
	{
		ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ERR");
		
		return PLUGIN_CONTINUE;
	}
	else if (!g_Bank[id][async])
		return PLUGIN_CONTINUE;
	
	new text[60], command[16], command2[32], password[32], set_packs;
	read_args(text, 59);
	remove_quotes(text);
	
	command[0] = '^0';
	command2[0] = '^0';
	password[0] = '^0';
	parse(text, command, 15, command2, 31, password, 31);
	
	if (equali(command, "/", 1))
		format(command, 15, command[1]);
	
	if (g_vars[allow_donate] && equali(command, "donate", 6))
	{
		donate(id, command2, str_to_num(password));
	}
	else if (equali(command, "mybank", 6) || equali(command, "bank", 4))
	{
		if(g_vars[save_type] == 2 && g_vars[allow_passwd])
		{
			if(equali(command2, "login", 5))
			{
				if(g_Bank[id][loggin]) {
					ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_ALREADY");
					return PLUGIN_HANDLED;
				}
				
				if(g_Bank[id][passwd][0] && equal(password, g_Bank[id][passwd]))
				{
					g_Bank[id][loggin] = true;
					SetAmmoBank(id, g_Bank[id][amount]);
					client_cmd(id, "setinfo %s ^"%s^"", g_vars[_pw_str], password);
					ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_SUCCESS");
				}
				else
				{
					ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_BAD");
				}
				
				return PLUGIN_HANDLED;
			}
			else if(!g_Bank[id][loggin])
			{
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN");
				return PLUGIN_HANDLED;
			}
			else if(equali(command2, "password", 8))
			{
				if(password[0])
				{
					g_Bank[id][passwd] = password;
					client_cmd(id, "setinfo %s ^"%s^"", g_vars[_pw_str], password);
					ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_PASSWORD_SET", g_Bank[id][passwd]);
				}
				else
				{
					ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_PASSWORD", g_Bank[id][passwd]);
				}
				return PLUGIN_HANDLED;
			}
			else if(!g_Bank[id][passwd][0])
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_PASSWORD_SETHELP");
		}
		
		if(g_vars[mode] == 2)
		{
			ColorChat(id, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE4");
			return PLUGIN_CONTINUE;
		}
		
		ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK", g_Bank[id][amount]);	
		ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE2");
		ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE3");
	}
	else if (g_vars[mode] == 2)
		return PLUGIN_CONTINUE;
	else if (equali(command, "deposit", 7) || equali(command, "send", 4) || equali(command, "store", 5))
	{
		new user_ammo_packs = zp_get_user_ammo_packs(id);
		
		if (equali(command2, "all")) set_packs = user_ammo_packs;
		else set_packs = str_to_num(command2);
		
		new limit_exceeded=false;
		
		if (g_vars[save_limit] && set_packs > 0 && g_Bank[id][amount] + set_packs > g_vars[save_limit])
		{
			new overflow = g_Bank[id][amount] + set_packs - g_vars[save_limit];
			set_packs -= overflow;
			
			ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "DEPOSIT_MAX", g_vars[save_limit]);
			
			limit_exceeded = true;
		}
		
		if (set_packs > 0)
		{
			if (user_ammo_packs >= set_packs)
			{
				g_Bank[id][amount] += set_packs;
				zp_set_user_ammo_packs(id, user_ammo_packs - set_packs);
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "DEPOSIT", set_packs, g_Bank[id][amount]);
			}
			else
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "DEPOSIT_ERR", set_packs, user_ammo_packs);
			
			return PLUGIN_HANDLED;
		}
		else if(!limit_exceeded)
			ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE2");
	}
	else if (equali(command, "withdraw", 8) || equali(command, "take", 4) || equali(command, "retrieve", 8) || equali(command, "wd", 2))
	{
		new user_ammo_packs = zp_get_user_ammo_packs(id);
		
		if (equali(command2, "all")) set_packs = g_Bank[id][amount];
		else set_packs = str_to_num(command2);
		
		if (set_packs > 0)
		{
			if (g_Bank[id][amount] >= set_packs)
			{
				zp_set_user_ammo_packs(id, user_ammo_packs + set_packs);
				g_Bank[id][amount] -= set_packs;
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "WITHDRAW", set_packs, g_Bank[id][amount]);
			}
			else
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "WITHDRAW_ERR", set_packs, g_Bank[id][amount]);
			
			return PLUGIN_HANDLED;
		}
		else
			ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE3");
	}
	
	return PLUGIN_CONTINUE;
}

public donate(donater, const reciever_name[], ammo)
{
	if(!reciever_name[0] || ammo <= 0 || zp_get_user_ammo_packs(donater) < ammo)
	{
		ColorChat(donater, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_DONATE_USAGE");
		return ;
	}
	
	new reciever = cmd_target(donater, reciever_name, CMDTARGET_ALLOW_SELF);
	if (!reciever || reciever == donater)
	{
		ColorChat(donater, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "CL_NOT_FOUND");	
		return ;
	}
	
	zp_set_user_ammo_packs(donater, zp_get_user_ammo_packs(donater)-ammo);
	zp_set_user_ammo_packs(reciever, zp_get_user_ammo_packs(reciever)+ammo);
}

public LoadClientBank(id)
{
	if (g_SqlTuple == Empty_Handle || g_Sql == Empty_Handle || g_Bank[id][async] == true)
		return ;
	
	new szQuery[120];
	format(szQuery, 119,"SELECT amount,password FROM %s WHERE auth='%s';", g_vars[table], g_Bank[id][auth]);
	
	new szData[2];
	szData[0] = id;
	szData[1] = get_user_userid(id);
	
	SQL_ThreadQuery(g_SqlTuple, "LoadClient_QueryHandler", szQuery, szData, 2);
}

public LoadClient_QueryHandler(iFailState, Handle:hQuery, szError[], iErrnum, szData[], iSize, Float:fQueueTime)
{
	if(iFailState != TQUERY_SUCCESS)
	{
		log_amx("%s SQL Error #%d - %s", PLUGIN_PREFIX, iErrnum, szError);
		return ;
	}
	
	new id = szData[0];
	
	if (szData[1] != get_user_userid(id))
		return ;
	
	new packs=0,info_pw[32];
	
	if(g_vars[mode] == 2)
		packs = get_pcvar_num(g_vars[startedammo]);
	
	if(SQL_NumResults(hQuery))
	{
		packs = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "amount"));
		SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "password"), g_Bank[id][passwd], 31);
	}
	
	g_Bank[id][amount] = CheckLimit(packs);
	if(g_vars[allow_passwd] && g_Bank[id][passwd][0])
	{
		get_user_info(id,g_vars[_pw_str],info_pw,31);
		if(equal(info_pw, g_Bank[id][passwd]))
		{
			g_Bank[id][loggin] = true;
		}
	}
	else
		g_Bank[id][loggin] = true;
	
	if(g_Bank[id][ingame] == true && g_Bank[id][loggin] == true)
	{
		SetAmmoBank(id, g_Bank[id][amount]);
	}
	g_Bank[id][async] = true;
}

public SaveClientBank(id)
{
	if (g_Sql == Empty_Handle)
		return ;
	
	new packs = GetAmmoBank(id);
	packs = CheckLimit(packs);
	
	SQL_QuoteString(g_Sql, g_Bank[id][passwd], 31, g_Bank[id][passwd]);
	SQL_QueryAndIgnore(g_Sql, "REPLACE INTO %s (auth,password,amount,timestamp) VALUES('%s', '%s', %d, %d);", g_vars[table], g_Bank[id][auth], g_Bank[id][passwd], packs, get_systime());
}

stock GetAuthId(id, Buffer[]="", BufferSize=0)
{
	switch(g_vars[save_type])
	{
		case 1: get_user_authid(id,Buffer,BufferSize);
		case 2:
		{
			new name[32];
			get_user_name(id,name,31);
			SQL_QuoteString(g_Sql, Buffer, BufferSize, name);
		}
		case 3: get_user_ip(id,Buffer,BufferSize,true);
	}
}

public CheckLimit(packs)
{
	if(g_vars[save_limit] && packs > g_vars[save_limit])
	{
		packs = g_vars[save_limit];
	}
	return packs;
}

public SetAmmoBank(id, packs)
{
	if(g_vars[mode] == 2)
		zp_set_user_ammo_packs(id,packs);
	else
		g_Bank[id][amount] = packs;
}

public GetAmmoBank(id)
{
	if(g_vars[mode] == 2)
		return zp_get_user_ammo_packs(id);
	
	return g_Bank[id][amount];
}

@redarmygaming @Yek'-ta @Tasarimci v2 @Fatih ~ EjderYa

ZP Bank Kural İhlali Yardım

Gönderilme zamanı: Pzt Haz 12, 2017 11:19 am
gönderen holigan
db_connect
olayı filan var connect kısmından kaynaklanabilir sen niye bana sormuyosun :)

ZP Bank Kural İhlali Yardım

Gönderilme zamanı: Pzt Haz 12, 2017 11:20 am
gönderen Xander
holigan yazdı:db_connect
olayı filan var connect kısmından kaynaklanabilir sen niye bana sormuyosun :)
+1 bakarken plugine bende ondan şuphelendim

ZP Bank Kural İhlali Yardım

Gönderilme zamanı: Pzt Haz 12, 2017 11:22 am
gönderen MRX3565
_pw de bulunmakta, bunlar csd de kullanılmıyor diye biliyorum.

ZP Bank Kural İhlali Yardım

Gönderilme zamanı: Pzt Haz 12, 2017 11:23 am
gönderen Xander
MRX3565 yazdı:_pw de bulunmakta, bunlar csd de kullanılmıyor diye biliyorum.
Bildiğim kadarıyla banka pluginlerine _pw yerine _password olarak kullanılıyor.

ZP Bank Kural İhlali Yardım

Gönderilme zamanı: Pzt Haz 12, 2017 11:47 am
gönderen Xander
bybulut55 yazdı:Bu eklentide kural ihlali nerde geciyor yardımcı olurmusunuz

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <sqlx>
#include <zombieplague>
#include <colorchat>

#pragma semicolon 1

#if !defined MAX_PLAYERS
	#define MAX_PLAYERS 32
#endif

new PLUGIN_NAME[] = "[ZP]Addons: Bank SQL";
new PLUGIN_VERSION[] = "0.9.2";
new PLUGIN_AUTHOR[] = "Epmak";
new PLUGIN_PREFIX[] = "[ZP][Bank]";

enum vars_struct { 
	mode=0,
	annonce,
	
	save_limit,
	save_days,
	save_type,
	
	block_cname,
	startedammo,
	allow_passwd,
	allow_donate,
	
	bool:round_end,
	
	_pw_str[32],
	table[32],
	config_dir[128]
};

enum bank_struct {
	bool:ingame,
	bool:async,
	bool:loggin,
	auth[36],
	passwd[32],
	amount
}

new g_vars[vars_struct];
new g_Bank[MAX_PLAYERS+1][bank_struct];
new Handle:g_Sql = Empty_Handle,Handle:g_SqlTuple = Empty_Handle;

public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
	register_cvar("zp_bank_sql", PLUGIN_VERSION, FCVAR_SERVER);
	
	register_dictionary("zp_bank.txt");
	register_dictionary("common.txt");
	
	register_clcmd("say", "handle_say");
	register_clcmd("say_team", "handle_say");
	
	register_concmd("zp_bank_show", "cmdBankShow", ADMIN_ADMIN);
	register_concmd("zp_bank_set", "cmdBankSet", ADMIN_RCON, "<name or #userid> <+ or ->amount");
	
	g_vars[startedammo] = get_cvar_pointer("zp_starting_ammo_packs");
	
	register_srvcmd("zp_bank_connect", "db_connect");
	
	register_forward(FM_ClientUserInfoChanged, "fwClientUserInfoChanged");
	
	server_cmd("zp_bank_connect");
}

public plugin_precache()
{
	get_configsdir(g_vars[config_dir], 127);
	
	g_vars[mode] = register_cvar("zp_bank", "1");
	g_vars[annonce] = register_cvar("zp_bank_annonce", "360.0");
	g_vars[save_limit] = register_cvar("zp_bank_save_limit", "150");
	g_vars[save_days] = register_cvar("zp_bank_save_days", "24");
	g_vars[save_type] = register_cvar("zp_bank_save_type", "2");
	g_vars[block_cname] = register_cvar("zp_bank_block_name_change", "1");
	g_vars[allow_passwd] = register_cvar("zp_bank_allow_passwd", "1");
	g_vars[allow_donate] = register_cvar("zp_bank_allow_donate", "0");
	
	register_cvar("zp_bank_host", "127.0.0.1");
	register_cvar("zp_bank_user", "root");
	register_cvar("zp_bank_pass", "");
	register_cvar("zp_bank_db", "amxx");
	register_cvar("zp_bank_type", "mysql");
	register_cvar("zp_bank_table", "zp_bank");
	register_cvar("zp_bank_pw_str", "_bpw");
	
	server_cmd("exec %s/zp_bank.cfg", g_vars[config_dir]);
	server_exec();
}

public plugin_cfg()
{
	g_vars[mode] = get_pcvar_num(g_vars[mode]);
	g_vars[save_limit] = get_pcvar_num(g_vars[save_limit]);
	g_vars[save_days] = get_pcvar_num(g_vars[save_days]);
	g_vars[save_type] = get_pcvar_num(g_vars[save_type]);
	g_vars[block_cname] = get_pcvar_num(g_vars[block_cname]);
	g_vars[allow_passwd] = get_pcvar_num(g_vars[allow_passwd]);
	g_vars[allow_donate] = get_pcvar_num(g_vars[allow_donate]);
	
	if(g_vars[save_limit] < 0) g_vars[save_limit] = 0;
	
	if(get_pcvar_num(g_vars[annonce]))
		set_task(get_pcvar_float(g_vars[annonce]), "print_annonce",_,_,_,"b");
	
	get_cvar_string("zp_bank_pw_str", g_vars[_pw_str], 31);
} 

public plugin_end()
{
	if(g_Sql != Empty_Handle) SQL_FreeHandle(g_Sql);
	if(g_SqlTuple != Empty_Handle) SQL_FreeHandle(g_SqlTuple);
}

public zp_round_started(gamemode, id)
{
	g_vars[round_end] = false;
}

public zp_round_ended(winteam)
{
	if (!g_vars[mode] || g_Sql == Empty_Handle)
		return ;
	
	static i;
	for(i=1;i<=MAX_PLAYERS;i++)
	{
		if(!g_Bank[i][ingame] || !g_Bank[i][loggin] || !g_Bank[i][async])
			continue;
		
		SaveClientBank(i);
	}
	
	g_vars[round_end] = true;
}

public client_connect(id)
{
	if (!g_vars[mode])
		return ;
	
	GetAuthId(id, g_Bank[id][auth],35);
	
	g_Bank[id][amount] = 0;
	g_Bank[id][async] = false;
	g_Bank[id][loggin] = false;
	
	if(g_vars[mode] == 2)
		zp_set_user_ammo_packs(id, get_pcvar_num(g_vars[startedammo]));
	
	LoadClientBank(id);
}

public client_putinserver(id)
{
	g_Bank[id][ingame] = true;
	
	if(g_Bank[id][async] == true && g_Bank[id][loggin] == true)
		SetAmmoBank(id, g_Bank[id][amount]);
}

public client_disconnected(id)
{
	if (!g_vars[mode] || g_Sql == Empty_Handle)
		return ;
	
	if(g_vars[round_end] == false && g_Bank[id][async] == true && g_Bank[id][loggin] == true)
		SaveClientBank(id);
	
	g_Bank[id][ingame] = false;
	g_Bank[id][auth][0] = '^0';
	g_Bank[id][passwd][0] = '^0';
}

public cmdBankShow(id, level, cid)
{
	if (!cmd_access(id, level, cid, 1))
		return PLUGIN_HANDLED;
	
	static pl_name[32], pl_amount[11], i;
	console_print(id, "%33s amount","name");
	for(i=1;i<=MAX_PLAYERS;i++)
	{
		if(!g_Bank[i][ingame]) continue;
		
		get_user_name(i,pl_name,31);
		
		if(!g_Bank[i][async])
			pl_amount = "not loaded";
		else if(!g_Bank[i][loggin])
			pl_amount = "not loggin";
		else
			num_to_str(GetAmmoBank(i),pl_amount,10);
		
		console_print(id, "%33s %s", pl_name, pl_amount);
	}
	
	return PLUGIN_HANDLED;
}

public cmdBankSet(id, level, cid)
{
	if (!cmd_access(id, level, cid, 3))
		return PLUGIN_HANDLED;
	
	static s_player[32], player, s_amount[12], i_amount;
	read_argv(1, s_player, 31);
	player = cmd_target(id, s_player, CMDTARGET_ALLOW_SELF);
	
	if (!player)
		return PLUGIN_HANDLED;
	
	get_user_name(player,s_player,31);
	if(!g_Bank[player][async])
	{
		console_print(id,"The player '%s' has not loaded bank", s_player);
		return PLUGIN_HANDLED;
	}
	else if(!g_Bank[player][loggin])
	{
		console_print(id,"The player '%s' has not loggin bank", s_player);
		return PLUGIN_HANDLED;
	}
	
	read_argv(2, s_amount, 11);
	remove_quotes(s_amount);
	i_amount = str_to_num(s_amount);
	
	switch(s_amount[0])
	{
		case '+':
			SetAmmoBank(player, GetAmmoBank(player)+i_amount);
		case '-':
			SetAmmoBank(player, GetAmmoBank(player)-(0-i_amount));
		default:
			SetAmmoBank(player,i_amount);
	}
	
	return PLUGIN_HANDLED;
}

public print_annonce()
{
	if (!g_vars[mode] || g_Sql == Empty_Handle)
		return ;
	
	ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE1");
	if(g_vars[mode] == 1)
	{
		ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE2");
		ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE3");
	}
	else
	{
		ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE4");
	}
}

public db_loadcurrent()
{
	for(new i=1;i<=MAX_PLAYERS;i++)
	{
		if(g_Bank[i][async] || !g_Bank[i][ingame]) continue;
		
		LoadClientBank(i);
	}
}

public db_connect(count)
{
	if(!g_vars[mode])
		return ;
	
	new host[64], user[32], pass[32], db[128];
	new get_type[13], set_type[12];
	new error[128], errno;
	
	get_cvar_string("zp_bank_host", host, 63);
	get_cvar_string("zp_bank_user", user, 31);
	get_cvar_string("zp_bank_pass", pass, 31);
	get_cvar_string("zp_bank_type", set_type, 11);
	get_cvar_string("zp_bank_db", db, 127);
	get_cvar_string("zp_bank_table", g_vars[table], 31);
	
	if(is_module_loaded(set_type) == -1)
	{
		server_print("^r^n%s error: module '%s' not loaded.^r^n%s Add line %s to %s/modules.ini and restart server^r^n", PLUGIN_PREFIX, set_type, PLUGIN_PREFIX, set_type, g_vars[config_dir]);
		return ;
	}
	
	SQL_GetAffinity(get_type, 12);
	
	if (!equali(get_type, set_type))
		if (!SQL_SetAffinity(set_type))
			log_amx("Failed to set affinity from %s to %s.", get_type, set_type);
	
	g_SqlTuple = SQL_MakeDbTuple(host, user, pass, db);
	
	g_Sql = SQL_Connect(g_SqlTuple, errno, error, 127);
	
	if (g_Sql == Empty_Handle)
	{
		server_print("%s SQL Error #%d - %s", PLUGIN_PREFIX, errno, error);
		
		count += 1;
		set_task(10.0, "db_connect", count);
		
		return ;
	}
	
	SQL_QueryAndIgnore(g_Sql, "SET NAMES utf8");
	
	if (equali(set_type, "sqlite") && !sqlite_TableExists(g_Sql, g_vars[table])) SQL_QueryAndIgnore(g_Sql, "CREATE TABLE %s (auth VARCHAR(36) PRIMARY KEY, password VARCHAR(32) NOT NULL DEFAULT '', amount INTEGER DEFAULT 0, timestamp INTEGER NOT NULL DEFAULT 0)",g_vars[table]);
	else if (equali(set_type, "mysql")) SQL_QueryAndIgnore(g_Sql,"CREATE TABLE IF NOT EXISTS `%s` (`auth` VARCHAR(36) NOT NULL, `password` VARCHAR(32) NOT NULL DEFAULT '', `amount` INT(10) NOT NULL DEFAULT 0, `timestamp` INT(10) NOT NULL DEFAULT 0, PRIMARY KEY (`auth`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;", g_vars[table]);
	
	CleanDataBase();
	if(count > 1)
		db_loadcurrent();
	
	server_print("%s con to: ",PLUGIN_PREFIX);
}

public CleanDataBase()
{
	SQL_QueryAndIgnore(g_Sql, "DELETE FROM %s WHERE amount='0' AND password = '';", g_vars[table]);
	
	if (!g_vars[save_days]) return ;
	
	new curTime = get_systime();
	curTime -= ((g_vars[save_days] * 24) * 3600);
	
	SQL_QueryAndIgnore(g_Sql,"DELETE FROM %s WHERE timestamp < '%d';", g_vars[table], curTime);
}

public fwClientUserInfoChanged(id, buffer)
{
	if (!g_vars[mode] || !is_user_connected(id))
		return FMRES_IGNORED;
	
	new name[32], val[32], name_1[] = "name";
	get_user_name(id, name, 31);
	engfunc(EngFunc_InfoKeyValue, buffer, name_1, val, 31);
	if (equal(val, name))
		return FMRES_IGNORED;
	
	if(g_vars[block_cname])
	{
		engfunc(EngFunc_SetClientKeyValue, id, buffer, name_1, name);
		client_cmd(id, "name ^"%s^"; setinfo name ^"%s^"", name, name);
		console_print(id, "%L", id ,"NO_NAME_CHANGE");
	}
	else
	{
		GetAuthId(id,g_Bank[id][auth],35);
		return FMRES_IGNORED;
	}
 
	return FMRES_SUPERCEDE;
}

public handle_say(id)
{
	if(!g_vars[mode])
	{
		ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_DISABLED");
		
		return PLUGIN_CONTINUE;
	}
	else if(g_Sql == Empty_Handle)
	{
		ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ERR");
		
		return PLUGIN_CONTINUE;
	}
	else if (!g_Bank[id][async])
		return PLUGIN_CONTINUE;
	
	new text[60], command[16], command2[32], password[32], set_packs;
	read_args(text, 59);
	remove_quotes(text);
	
	command[0] = '^0';
	command2[0] = '^0';
	password[0] = '^0';
	parse(text, command, 15, command2, 31, password, 31);
	
	if (equali(command, "/", 1))
		format(command, 15, command[1]);
	
	if (g_vars[allow_donate] && equali(command, "donate", 6))
	{
		donate(id, command2, str_to_num(password));
	}
	else if (equali(command, "mybank", 6) || equali(command, "bank", 4))
	{
		if(g_vars[save_type] == 2 && g_vars[allow_passwd])
		{
			if(equali(command2, "login", 5))
			{
				if(g_Bank[id][loggin]) {
					ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_ALREADY");
					return PLUGIN_HANDLED;
				}
				
				if(g_Bank[id][passwd][0] && equal(password, g_Bank[id][passwd]))
				{
					g_Bank[id][loggin] = true;
					SetAmmoBank(id, g_Bank[id][amount]);
					client_cmd(id, "setinfo %s ^"%s^"", g_vars[_pw_str], password);
					ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_SUCCESS");
				}
				else
				{
					ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_BAD");
				}
				
				return PLUGIN_HANDLED;
			}
			else if(!g_Bank[id][loggin])
			{
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN");
				return PLUGIN_HANDLED;
			}
			else if(equali(command2, "password", 8))
			{
				if(password[0])
				{
					g_Bank[id][passwd] = password;
					client_cmd(id, "setinfo %s ^"%s^"", g_vars[_pw_str], password);
					ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_PASSWORD_SET", g_Bank[id][passwd]);
				}
				else
				{
					ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_PASSWORD", g_Bank[id][passwd]);
				}
				return PLUGIN_HANDLED;
			}
			else if(!g_Bank[id][passwd][0])
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_PASSWORD_SETHELP");
		}
		
		if(g_vars[mode] == 2)
		{
			ColorChat(id, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE4");
			return PLUGIN_CONTINUE;
		}
		
		ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK", g_Bank[id][amount]);	
		ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE2");
		ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE3");
	}
	else if (g_vars[mode] == 2)
		return PLUGIN_CONTINUE;
	else if (equali(command, "deposit", 7) || equali(command, "send", 4) || equali(command, "store", 5))
	{
		new user_ammo_packs = zp_get_user_ammo_packs(id);
		
		if (equali(command2, "all")) set_packs = user_ammo_packs;
		else set_packs = str_to_num(command2);
		
		new limit_exceeded=false;
		
		if (g_vars[save_limit] && set_packs > 0 && g_Bank[id][amount] + set_packs > g_vars[save_limit])
		{
			new overflow = g_Bank[id][amount] + set_packs - g_vars[save_limit];
			set_packs -= overflow;
			
			ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "DEPOSIT_MAX", g_vars[save_limit]);
			
			limit_exceeded = true;
		}
		
		if (set_packs > 0)
		{
			if (user_ammo_packs >= set_packs)
			{
				g_Bank[id][amount] += set_packs;
				zp_set_user_ammo_packs(id, user_ammo_packs - set_packs);
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "DEPOSIT", set_packs, g_Bank[id][amount]);
			}
			else
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "DEPOSIT_ERR", set_packs, user_ammo_packs);
			
			return PLUGIN_HANDLED;
		}
		else if(!limit_exceeded)
			ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE2");
	}
	else if (equali(command, "withdraw", 8) || equali(command, "take", 4) || equali(command, "retrieve", 8) || equali(command, "wd", 2))
	{
		new user_ammo_packs = zp_get_user_ammo_packs(id);
		
		if (equali(command2, "all")) set_packs = g_Bank[id][amount];
		else set_packs = str_to_num(command2);
		
		if (set_packs > 0)
		{
			if (g_Bank[id][amount] >= set_packs)
			{
				zp_set_user_ammo_packs(id, user_ammo_packs + set_packs);
				g_Bank[id][amount] -= set_packs;
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "WITHDRAW", set_packs, g_Bank[id][amount]);
			}
			else
				ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "WITHDRAW_ERR", set_packs, g_Bank[id][amount]);
			
			return PLUGIN_HANDLED;
		}
		else
			ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE3");
	}
	
	return PLUGIN_CONTINUE;
}

public donate(donater, const reciever_name[], ammo)
{
	if(!reciever_name[0] || ammo <= 0 || zp_get_user_ammo_packs(donater) < ammo)
	{
		ColorChat(donater, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_DONATE_USAGE");
		return ;
	}
	
	new reciever = cmd_target(donater, reciever_name, CMDTARGET_ALLOW_SELF);
	if (!reciever || reciever == donater)
	{
		ColorChat(donater, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "CL_NOT_FOUND");	
		return ;
	}
	
	zp_set_user_ammo_packs(donater, zp_get_user_ammo_packs(donater)-ammo);
	zp_set_user_ammo_packs(reciever, zp_get_user_ammo_packs(reciever)+ammo);
}

public LoadClientBank(id)
{
	if (g_SqlTuple == Empty_Handle || g_Sql == Empty_Handle || g_Bank[id][async] == true)
		return ;
	
	new szQuery[120];
	format(szQuery, 119,"SELECT amount,password FROM %s WHERE auth='%s';", g_vars[table], g_Bank[id][auth]);
	
	new szData[2];
	szData[0] = id;
	szData[1] = get_user_userid(id);
	
	SQL_ThreadQuery(g_SqlTuple, "LoadClient_QueryHandler", szQuery, szData, 2);
}

public LoadClient_QueryHandler(iFailState, Handle:hQuery, szError[], iErrnum, szData[], iSize, Float:fQueueTime)
{
	if(iFailState != TQUERY_SUCCESS)
	{
		log_amx("%s SQL Error #%d - %s", PLUGIN_PREFIX, iErrnum, szError);
		return ;
	}
	
	new id = szData[0];
	
	if (szData[1] != get_user_userid(id))
		return ;
	
	new packs=0,info_pw[32];
	
	if(g_vars[mode] == 2)
		packs = get_pcvar_num(g_vars[startedammo]);
	
	if(SQL_NumResults(hQuery))
	{
		packs = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "amount"));
		SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "password"), g_Bank[id][passwd], 31);
	}
	
	g_Bank[id][amount] = CheckLimit(packs);
	if(g_vars[allow_passwd] && g_Bank[id][passwd][0])
	{
		get_user_info(id,g_vars[_pw_str],info_pw,31);
		if(equal(info_pw, g_Bank[id][passwd]))
		{
			g_Bank[id][loggin] = true;
		}
	}
	else
		g_Bank[id][loggin] = true;
	
	if(g_Bank[id][ingame] == true && g_Bank[id][loggin] == true)
	{
		SetAmmoBank(id, g_Bank[id][amount]);
	}
	g_Bank[id][async] = true;
}

public SaveClientBank(id)
{
	if (g_Sql == Empty_Handle)
		return ;
	
	new packs = GetAmmoBank(id);
	packs = CheckLimit(packs);
	
	SQL_QuoteString(g_Sql, g_Bank[id][passwd], 31, g_Bank[id][passwd]);
	SQL_QueryAndIgnore(g_Sql, "REPLACE INTO %s (auth,password,amount,timestamp) VALUES('%s', '%s', %d, %d);", g_vars[table], g_Bank[id][auth], g_Bank[id][passwd], packs, get_systime());
}

stock GetAuthId(id, Buffer[]="", BufferSize=0)
{
	switch(g_vars[save_type])
	{
		case 1: get_user_authid(id,Buffer,BufferSize);
		case 2:
		{
			new name[32];
			get_user_name(id,name,31);
			SQL_QuoteString(g_Sql, Buffer, BufferSize, name);
		}
		case 3: get_user_ip(id,Buffer,BufferSize,true);
	}
}

public CheckLimit(packs)
{
	if(g_vars[save_limit] && packs > g_vars[save_limit])
	{
		packs = g_vars[save_limit];
	}
	return packs;
}

public SetAmmoBank(id, packs)
{
	if(g_vars[mode] == 2)
		zp_set_user_ammo_packs(id,packs);
	else
		g_Bank[id][amount] = packs;
}

public GetAmmoBank(id)
{
	if(g_vars[mode] == 2)
		return zp_get_user_ammo_packs(id);
	
	return g_Bank[id][amount];
}

Kardeşim buyur hataları duzelttim kural ihlali vermeden panele yukleniyor...

ZP Bank Kural İhlali Yardım

Gönderilme zamanı: Pzt Haz 12, 2017 11:51 am
gönderen MRX3565
Tamamen aynısını ben yaptım noktasına kadar aynı, panele yüklediğimde hata verdi.

ZP Bank Kural İhlali Yardım

Gönderilme zamanı: Pzt Haz 12, 2017 11:57 am
gönderen Xander
MRX3565 yazdı:Tamamen aynısını ben yaptım noktasına kadar aynı, panele yüklediğimde hata verdi.
Colorchat.inc hatası vermiştir bendede verdi duzelttim oyle attım arkadaşa zaten

ZP Bank Kural İhlali Yardım

Gönderilme zamanı: Pzt Haz 12, 2017 12:02 pm
gönderen MRX3565
Xander yazdı:
MRX3565 yazdı:Tamamen aynısını ben yaptım noktasına kadar aynı, panele yüklediğimde hata verdi.
Colorchat.inc hatası vermiştir bendede verdi duzelttim oyle attım arkadaşa zaten
Yok bende başta ihlali düzelttim sonra colorchati silip gerekeni yazdım, seninkiylede karşılaştırdım aynısı ama neden hata verdi anlamadım.

ZP Bank Kural İhlali Yardım

Gönderilme zamanı: Pzt Haz 12, 2017 12:04 pm
gönderen Xander
MRX3565 yazdı:
Xander yazdı:
MRX3565 yazdı:Tamamen aynısını ben yaptım noktasına kadar aynı, panele yüklediğimde hata verdi.
Colorchat.inc hatası vermiştir bendede verdi duzelttim oyle attım arkadaşa zaten
Yok bende başta ihlali düzelttim sonra colorchati silip gerekeni yazdım, seninkiylede karşılaştırdım aynısı ama neden hata verdi anlamadım.
Bilemiyorum hatayı atsan söyleyebilirim neden verdiğini