#include <amxmodx>
#include <fakemeta>
#include <zombieplague>
#include <nvault>
 
#define PLUGIN	"[ZP] Ammo Bank"
#define VERSION "1.0"
#define AUTHOR "FLiTeR"
 
new g_save, g_ammo[33], g_ammo_can_save[33]
new cvar_save_in
 
#define MAX_SAVE 5000 //Ennyit ment el a bank maximum
 
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
 
	register_event("DeathMsg","event_deathmsg","a")
	register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
 
	cvar_save_in = register_cvar("zp_ammo_save_in", "0")			// 0 = nev / 1 = ip / 2 = steam id
 
	g_save = nvault_open("g_ammo_save")
}
 
// LCS Mentes
public zp_user_infected_post(id, infector)
{
	if (g_ammo_can_save[infector])
		Save_Ammo_date(infector)
 
	if (g_ammo_can_save[id])
		Save_Ammo_date(id)
}
 
public zp_extra_item_selected(id, itemid)
{
	if (g_ammo_can_save[id])
		Save_Ammo_date(id)
}
 
public event_deathmsg()
{
	new killer = read_data(1)
	new victim = read_data(2)
 
	if (!killer && !victim)
		return PLUGIN_CONTINUE;
 
	if (g_ammo_can_save[killer])
		Save_Ammo_date(killer)
 
	if (g_ammo_can_save[victim])
		Save_Ammo_date(victim)
 
	return PLUGIN_CONTINUE;
}
 
public fw_PlayerPreThink(id)
{
	if (g_ammo_can_save[id])
	{
		new ammo_packs = zp_get_user_ammo_packs(id)
		g_ammo[id] = ammo_packs
	}
 
	return FMRES_IGNORED;
}
 
public client_disconnect(id)
{
	if(g_ammo_can_save[id])
		Save_Ammo_date(id)
}
 
public client_putinserver(id)
	set_task(2.0, "now_can_save", id)
 
public now_can_save(id)
{
	Load_Ammo_date(id)
	set_task(0.5, "can_save_true", id)
}
 
public can_save_true(id)
	g_ammo_can_save[id] = true
 
public Save_Ammo_date(id)
{
	new vaultkey[64], vaultdata[256]
 
	switch (get_pcvar_num(cvar_save_in))
	{
		case 0:
		{
			new name[33];
			get_user_name(id,name,32)
 
			format(vaultkey, 63, "%s-/", name)
		}
		case 1:
		{
			new player_ip[33]
			get_user_ip(id, player_ip, 32);
 
			format(vaultkey, 63, "%s-/", player_ip)
		}
		case 2:
		{
			new AuthID[33];
			get_user_authid(id, AuthID, 32);
 
			formatex(vaultkey, 64, "%s-/", AuthID);
		}
	}
 
	format(vaultdata, 255, "%i#", g_ammo[id])
 
	nvault_set(g_save, vaultkey, vaultdata)
	return PLUGIN_CONTINUE;
}
 
public Load_Ammo_date(id)
{
	new vaultkey[64], vaultdata[256]
 
	switch (get_pcvar_num(cvar_save_in))
	{
		case 0:
		{
			new name[33];
			get_user_name(id,name,32)
 
			format(vaultkey, 63, "%s-/", name)
		}
		case 1:
		{
			new player_ip[33]
			get_user_ip(id, player_ip, 32);
 
			format(vaultkey, 63, "%s-/", player_ip)
		}
		case 2:
		{
			new AuthID[33];
			get_user_authid(id, AuthID, 32);
 
			formatex(vaultkey, 64, "%s-/", AuthID);
		}
	}
 
	format(vaultdata, 255, "%i#", g_ammo[id])
 
	nvault_get(g_save, vaultkey, vaultdata, 255)
	replace_all(vaultdata, 255, "#", " ")
 
	new playammo[32]
	parse(vaultdata, playammo, 31)
	g_ammo[id] = str_to_num(playammo)
 
	set_ammo(id)
 
	return PLUGIN_CONTINUE;
}
 
public set_ammo(id)
{
	if (g_ammo[id] > MAX_SAVE)
	{
		zp_set_user_ammo_packs(id, MAX_SAVE)
		g_ammo[id] = MAX_SAVE
	}
	else
		zp_set_user_ammo_packs(id, g_ammo[id])
	client_print(id, print_chat, "Vissza kaptad az elozo mapon ossze gyujtott Loszer Csomag-odat !", g_ammo[id])
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1250\\ deff0\\ deflang1038{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/