#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fun>
#include <amxmisc>
#include <colorchat>
#include <nvault>
 
new felszedett[33]
new dobozszam
new cvar
new counter = 0
new bool:megvan
new bool:generalva
new g_vault
new eltunes
new const ET_model[][] = {
	"models/cyan.mdl",
	"models/zold.mdl",
	"models/narancs.mdl",
	"models/pink.mdl",
	"models/minden.mdl",
	"models/voros.mdl",
	"models/sarga.mdl"
}
 
 
 
public plugin_precache()
{
	precache_model("models/cyan.mdl")
	precache_model("models/zold.mdl")
	precache_model("models/narancs.mdl")
	precache_model("models/pink.mdl")
	precache_model("models/minden.mdl")
	precache_model("models/voros.mdl")
	precache_model("models/sarga.mdl")
 
 
 
}
 
public plugin_init()
{
	register_plugin("Karacsonyi dobozok", "1.0", "qKKKJ")
	set_task(30.0, "keszit",_,_,_,"b")
	set_task(1.0, "szamlalo",_,_,_,"b")
	register_touch("nyeremendoboz","player","remove")
	set_task(random_float(30.0,60.0), "hirdetes",_,_,_,"b")
	cvar = register_cvar("sv_maxdoboz", "1")
	eltunes = register_cvar("sv_eltunes", "30")
	g_vault = nvault_open("dobozok") 
}
 
public szamlalo(id)
{
	if(generalva == true) {
		counter++
	}
	if(megvan == true) {
		counter = 0
	}
	if(counter > get_pcvar_num(eltunes) && generalva == true)
	{
		new target = find_ent_by_class(target, "nyeremendoboz")
		engfunc(EngFunc_RemoveEntity, target)
		dobozszam--
		counter = 0
		generalva = false
		switch(random_num(1,5)) {
			case 1: { 
				ColorChat(0, RED, "Ezt a dobozt sajnos nem sikerult megtalalnotok <!-- s:( --><img src=\"{SMILIES_PATH}/icon_e_sad.gif\" alt=\":(\" title=\"szomorú\" /><!-- s:( -->")
			}
			case 2: {
				ColorChat(0, GREEN, "Ezt a dobozt sajnos nem sikerult megtalalnotok <!-- s:( --><img src=\"{SMILIES_PATH}/icon_e_sad.gif\" alt=\":(\" title=\"szomorú\" /><!-- s:( -->")
			}
			case 3: {
				ColorChat(0, BLUE, "Ezt a dobozt sajnos nem sikerult megtalalnotok <!-- s:( --><img src=\"{SMILIES_PATH}/icon_e_sad.gif\" alt=\":(\" title=\"szomorú\" /><!-- s:( -->")
			}
			case 4: {
				ColorChat(0, GREY, "Ezt a dobozt sajnos nem sikerult megtalalnotok <!-- s:( --><img src=\"{SMILIES_PATH}/icon_e_sad.gif\" alt=\":(\" title=\"szomorú\" /><!-- s:( -->")
			}
			case 5: {
				ColorChat(0, NORMAL, "Ezt a dobozt sajnos nem sikerult megtalalnotok <!-- s:( --><img src=\"{SMILIES_PATH}/icon_e_sad.gif\" alt=\":(\" title=\"szomorú\" /><!-- s:( -->")
			}
 
		}
 
	}
}
 
public keszit(id)
{
	if(dobozszam < get_pcvar_num(cvar)) {	
		new inifile[192], map[32]
		get_mapname(map, 31)
		formatex(inifile, charsmax(inifile), "addons/amxmodx/configs/csdm/%s.spawns.cfg", map)
		new Float:origin[3]
		new elsopoz[8], masodikpoz[8], harmadikpoz[8]
		new lines = file_size(inifile, 1)
		if(lines > 0)
		{
			new randomLine = random(lines);
			new lineBuffer[256], len;
			read_file(inifile, randomLine, lineBuffer, charsmax(lineBuffer), len);	
			parse(lineBuffer, elsopoz, 7, masodikpoz, 7, harmadikpoz, 7)
 
			origin[0] = str_to_float(elsopoz)
			origin[1] = str_to_float(masodikpoz)
			origin[2] = str_to_float(harmadikpoz)
		}
 
 
		new ent = create_entity("info_target")
		set_pev(ent, pev_classname, "nyeremendoboz")
		entity_set_model(ent, ET_model[random(sizeof(ET_model))])
 
		set_pev(ent,pev_solid, SOLID_BBOX)
		set_pev(ent, pev_movetype, MOVETYPE_TOSS)
		engfunc(EngFunc_SetOrigin, ent, origin)
		engfunc(EngFunc_SetSize, ent, Float:{-10.0,-10.0,0.0}, Float:{10.0,10.0,25.0})
		engfunc(EngFunc_DropToFloor, ent)
		fm_set_rendering(ent, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16);
		switch(random_num(1,5)) {
			case 1: { 
				ColorChat(0, RED, "Uj doboz jelent meg keressetek!!!!!!!")
			}
			case 2: {
				ColorChat(0, GREEN, "Uj doboz jelent meg keressetek!!!!!!!")
			}
			case 3: {
				ColorChat(0, BLUE, "Uj doboz jelent meg keressetek!!!!!!!")
			}
			case 4: {
				ColorChat(0, GREY, "Uj doboz jelent meg keressetek!!!!!!!")
			}
			case 5: {
				ColorChat(0, NORMAL, "Uj doboz jelent meg keressetek!!!!!!!")
			}
 
		}
		dobozszam++
		megvan = false
		generalva = true
	}
	return PLUGIN_CONTINUE
}
public client_PreThink(id)
{
	set_hudmessage(127, 255, 170, 0.0, 0.19, 0, 6.0, 1.0)
	show_hudmessage(id, "Megtalalt dobozok: %d", felszedett[id])
 
}
 
public hirdetes()
{
	ColorChat(0, GREEN, "A Nyeremenyjatek plugint ^3qKKKJ;> ^4keszitette!")
}
 
public remove(ent, id)
{
	if(is_user_alive(id)) {
 
 
		felszedett[id]++
		dobozszam--
		new nev[32]
		get_user_name(id, nev, 31)
		switch(random_num(1,5)) {
			case 1: {
				ColorChat(0, RED, "%s megtalalt egy ajandek dobozt gratulalunk!", nev)
			}
			case 2: {
				ColorChat(0, GREEN, "%s megtalalt egy ajandek dobozt gratulalunk!", nev)
			}
			case 3: {
				ColorChat(0, BLUE, "%s megtalalt egy ajandek dobozt gratulalunk!", nev)
			}
			case 4: {
				ColorChat(0, GREY, "%s megtalalt egy ajandek dobozt gratulalunk!", nev)
			}
			case 5: {
				ColorChat(0, NORMAL, "%s megtalalt egy ajandek dobozt gratulalunk!", nev)
			}
		}
		engfunc(EngFunc_RemoveEntity, ent)
		megvan = true
		generalva = false
	}
	return PLUGIN_HANDLED
}
stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
	static Float:color[3]
	color[0] = float(r)
	color[1] = float(g)
	color[2] = float(b)
 
	set_pev(entity, pev_renderfx, fx)
	set_pev(entity, pev_rendercolor, color)
	set_pev(entity, pev_rendermode, render)
	set_pev(entity, pev_renderamt, float(amount))
}
public client_connect(id)
{
	betoltes(id)
}
public client_disconnect(id)
{
	mentes(id)
}
public mentes(id) 
{ 
    new name[32]
    get_user_name(id, name, 31)
 
    new vaultkey[64],vaultdata[256]
    format(vaultkey,63,"%s_dobozok", name) 
    format(vaultdata,255,"%i",felszedett[id])
 
 
    nvault_set(g_vault,vaultkey,vaultdata) 
    return PLUGIN_CONTINUE 
}
public betoltes(id) 
{ 
    new name[32]
    get_user_name(id, name, 31) 
    new vaultkey[64],vaultdata[256] 
    format(vaultkey,63,"%s_dobozok", name) 
    format(vaultdata,255,"%i",felszedett[id]) 
    nvault_get(g_vault,vaultkey,vaultdata,255) 
    replace_all(vaultdata, 255, "#", " ") 
    new szedett[32]
    parse(vaultdata, szedett, 31) 
    felszedett[id] = str_to_num(szedett) 
    return PLUGIN_CONTINUE 
}