/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fvault>
#include <engine>
#include <fakemeta>
#include <hamsandwich>

new const PLUGIN[] = "AWP Menü"
new const VERSION[] = "1.0"
new const AUTHOR[] = "Desti"

#pragma semicolon 1

new Oles[33]
new Awp[33]
new vault
new Lada[33], Kulcs[33], Arany[33], Skin[33]
new Erteke[33], kicucc[33], kirakva[33], pido;
new rangok[33], szint[33]

#define ASD 8
new message[192]
new nev[32]
new Temp[192]
static color[10]
new g_vault

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /awp", "awp_menu")
	register_event("DeathMsg", "halal", "a")
	register_event("CurWeapon", "fegyvervaltas", "be", "1=1")
	vault = nvault_open("awp")
	register_clcmd("say /rang", "hud")
	register_clcmd("say", "sayhook")
}

new const Awp[][] = 
{
	{ "Bronz AWP", "models/awp/v_bronzwp.mdl" },
	{ "Ezüst AWP", "models/awp/v_ezustwp.mdl" },
	{ "Arany AWP", "models/awp/v_aranywp.mdl" },
	{ "Ultra AWP", "models/awp/v_ultrawp.mdl" }
}

new const szamok[ASD] = {
	15,
	20,
	30,
	45,
	55,
	65,
	75,
	85
 
}
 
new const rangok[ASD+1][] = {
	"Újonc",
	"Lelkes",
	"Tag",
	"Beavatott",
	"Tud valamit",
	"Fanatikus",
	"Senior Tag",
	"Jómunkásember"
 
}

public hud(id)
{
	if(szint[id] != ASD+1)
	{
 
 
		client_print(id, print_chat, "Prefix: %s^nÖlések: %d^nKell még: %d",rangok[szint[id]], Olesek[id],szamok[szint[id]]-Olesek[id] )
	}
	else {
 
		client_print(id, print_chat, "Prefix: %s^nÖlések: %d^nKell még: 0",rangok[szint[id]], Olesek[id])
	}
 
}
public sayhook(id)
{
 
	read_args (message, 191)
	remove_quotes (message)
	if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
	{
		return PLUGIN_CONTINUE
	}
	get_user_name(id, nev, 31)
	if(is_user_alive(id)) {
		get_user_team(id, color, 9)
		formatex(Temp, 191, "^x04[%s] ^x03%s^x01: %s", rangok[szint[id]], nev, message)
 
	}
	else {
		get_user_team(id, color, 9)
		formatex(Temp, 191, "^x04*Halott* [%s] ^x03%s^x01: %s", rangok[szint[id]], nev, message)
	}
	sendmessage(color)
	return PLUGIN_HANDLED
}

public halal() {
 
	new attacker = read_data(1)
	new victim = read_data(2)
 
	if(attacker == victim)
		return PLUGIN_HANDLED
 
	Oles[attacker] ++
	return PLUGIN_HANDLED
}

public awp_menu(id)
{
	new menu = menu_create("\wAWP Menü \y- \dFomenü", "awp_menu");
 
	menu_additem(menu, "Raktár", "1", 0);
	menu_additem(menu, "Láda Nyitás", "2", 0);
	menu_additem(menu, "Piac", "3", 0);
	menu_additem(menu, "Eldobás", "4", 0);
 
	menu_display(id, menu, 0);
}
public awp_menu(id, menu, item){
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}
 
	new data[9], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
 
	switch(key) {
		case 1: Raktar(id);
		case 2: LadaNyitas(id);
		case 3: Piac(id);
		case 4: Eldobas(id);
	}
}
public Raktar(id)
{
	new cim[121];
	new menu = menu_create("\wAWP Menü \y- \dRaktár", "Raktar_h");
 
	for(new i=0;i < 15; i++)
	{
		if(Awp[i][id] > 0)
		{
			new Sor[6]; num_to_str(i, Sor, 5);
			formatex(cim, charsmax(cim), "\r%s \y| \d%d DB", Awp[i][Name], Awp[i][id]);
			menu_additem(menu, cim, Sor);
		}
	}
	menu_display(id, menu, 0);
}
public Raktar_h(id, menu, item){
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}
 
	new data[9], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
 
 
	Skin[id] = key+1;
	client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad a : !g%s !nSkin.", Prefix, Awp[key][Name]);
}
public LadaNyitas(id)
{
	new menu = menu_create("\wAWP Menü \y- \dLadáNyitás", "LadaNyit_h");
 
	menu_additem(menu, "\yLádaNyitás\r!^n\d1 Láda és 1 Kulcs!", "1", 0);
 
	menu_display(id, menu, 0);
}
public LadaNyit_h(id, menu, item){
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}
 
	new data[9], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
 
	switch(key) {
		case 1: 
		{
			if(Lada[id] >= 1 && Kulcs[id] >= 1)
			{
				Lada[id] --;
				Kulcs[id] --;
				Talal(id);
			}
			LadaNyitas(id);
		}
	}
}
public Eldobas(id)
{
	new cim[121];
	new menu = menu_create("\wAWP Menü \y- \dEldobás", "Eldobas_h");
 
	for(new i=0;i < 15; i++)
	{
		if(Awp[i][id] > 0)
		{
			new Sor[6]; num_to_str(i, Sor, 5);
			formatex(cim, charsmax(cim), "\r%s \y| \d%d DB", Awp[i][Name], Awp[i][id]);
			menu_additem(menu, cim, Sor);
		}
	}
	menu_display(id, menu, 0);
}
public Eldobas_h(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}
 
	Kes[item][id] --;
	Eldobas(id);
}
public Piac(id)
{
	new cim[121];
	format(cim, charsmax(cim), "\wAWP Menü \y- \dPiac");
	new menu = menu_create(cim, "Piac_h");
 
	menu_additem(menu, "Eladás", "1", 0);
	menu_additem(menu, "Vásárlás", "2", 0);
 
	menu_display(id, menu, 0);
}
public Piac_h(id, menu, item){
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}
 
	new data[9], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
 
	switch(key)
	{
		case 1: Eladas(id);
		case 2: Vasarlas(id);
	}
}
public Eladas(id) {
	new cim[121], ks1[121], ks2[121];
	format(cim, charsmax(cim), "\wAWP Menü \y- \dEladás");
	new menu = menu_create(cim, "eladas_h" );
 
	if(kirakva[id] == 0){
		for(new i=0; i < 110; i++) {
			if(kicucc[id] == 0) format(ks1, charsmax(ks1), "Tárgy: \dVálasz Valamit!^n");
			else if(kicucc[id] == i) format(ks1, charsmax(ks1), "Tárgy: \d%s^n", Awp[i-1][Name]);
		}
		menu_additem(menu, ks1 ,"0",0);
	}
	if(kirakva[id] == 0){
		format(ks2, charsmax(ks2), "\wÁr: \d%d", Erteke[id]);
		menu_additem(menu,ks2,"1",0);
	}
 
	if(kirakva[id] == 0)
		menu_additem(menu,"\yKirakás!","2",0);
 
	if(Erteke[id] != 0 && kirakva[id] == 1)
		menu_additem(menu,"Tárgy \dVisszavonás","-2",0);
 
	menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
}
public eladas_h(id, menu, item){
	if( item == MENU_EXIT )
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[9], szName[64], name[32];
	get_user_name(id, name, charsmax(name));
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
 
	switch(key)
	{
		case -2:{
			kirakva[id] = 0;
			kicucc[id] = 0;
			Erteke[id] = 0;
		}
		case 0:{
			fvalaszt(id);
		}
		case 1:{
			client_cmd(id, "messagemode DOLLAR");
		}
		case 2:{
			for(new i=0; i < 110; i++) {
				if(kicucc[id] == i && Kes[i-1][id] >= 1) {
					client_printcolor(0, "!g%s !t%s !nKirakott egy !g%s-!nt %d aranyrt",Prefix, name, Awp[i-1][Name], Erteke[id]);
					kirakva[id] = 1;
				}
			}
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public fvalaszt(id) {
	new szMenuTitle[ 121 ],cim[121];
	format( szMenuTitle, charsmax( szMenuTitle ), "\wAWP Menü \y- \dFegyver Válasz");
	new menu = menu_create( szMenuTitle, "fvalaszt_h" );
 
	for(new i=0; i < 110; i++) {
		if(Kes[i-1][id] > 0) {
			new Num[6];
			num_to_str(i, Num, 5);
			formatex(cim, charsmax(cim), "\y%s \r| \d%d DB", Awp[i][Name], Awp[i][id]);
			menu_additem(menu, cim, Num);
		}
	}
 
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
 
}
public fvalaszt_h(id, menu, item){
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}
	new data[9], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
 
	kicucc[id] = key+1;
	Eladas(id);
}
public lekeres(id) {
	new ertek, adatok[32];
	read_args(adatok, charsmax(adatok));
	remove_quotes(adatok);
 
	ertek = str_to_num(adatok);
 
	new hossz = strlen(adatok);
 
	if(hossz > 7)
	{
		client_cmd(id, "messagemode DOLLAR");
	}
	else if(ertek < 20)
	{
		client_printcolor(id, "!g%s !nNem tudsz eladni fegyver!t 20 arany alatt.", Prefix);
		Eladas(id);
	}
	else
	{
		Erteke[id] = ertek;
		Eladas(id);
	}
}
public Vasarlas(id)
{      
	new mpont[512], menu, cim[121];
 
	static players[32],temp[10],pnum;  
	get_players(players,pnum,"c");
 
	format(cim, charsmax(cim), "\wAWP Menü \y- \dVásárlás");
	menu = menu_create(cim, "vasarlas_h" );
 
	for (new i; i < pnum; i++)
	{
		if(kirakva[players[i]] == 1 && Erteke[players[i]] > 0)
		{
			for(new a=0; a < 110; a++) {
				if(kicucc[players[i]] == a)
					formatex(mpont,256,"\r%s \y| \w%s \y| \w%d \yArany", Awp[i-1][Name], get_player_name(players[i]), Erteke[players[i]]);
			}
 
			num_to_str(players[i],temp,charsmax(temp));
			menu_additem(menu, mpont, temp);
		}
	}
	menu_setprop(menu, MPROP_PERPAGE, 6);
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
	menu_display(id, menu);
	return PLUGIN_HANDLED;
}  
public vasarlas_h(id,menu, item){
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}
	if(pido != 0){
		Vasarlas(id);
		return;
	}
	new data[6] ,szName[64],access,callback;
	new name[32], name2[32];
	get_user_name(id, name, charsmax(name));
 
	menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
 
	new player = str_to_num(data);
	get_user_name(player, name2, charsmax(name2));
	pido = 2;
	set_task(2.0, "vido");
 
	for(new i=0; i < 110; i++) {
		if(Arany[id] >= Erteke[player] && kicucc[player] == i && kirakva[player] == 1)
		{
			kirakva[player] = 0;
			client_printcolor(0,  "!g%s !t%s !nvett egy !g%s !n%s-tól %d Aranyért!",Prefix, name, Awp[i-1][Name], name2, Erteke[player]);
			Arany[player] += Erteke[player];
			Arany[id] -= Erteke[player];
			Awp[i-1][id] ++;
			Awp[i-1][player] --;
			kicucc[player] = 0;
			Erteke[player] = 0;
		}
	}
}
public Talal(id)
{
	new Szam = random_num(1, 700);
	new Nev[32]; get_user_name(id, Nev, 31);
 
	if(Szam < 300)
	{
		switch(random_num(1, 7))
		{
			case 1:
			{
				Awp[0][id] ++;
				client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Awp[0][Name]);
			}
			case 2:
			{
				Awp[1][id] ++;
				client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Awp[1][Name]);
			}
			case 3:
			{
				Awp[2][id] ++;
				client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Awp[2][Name]);
			}
			case 4:
			{
				Awp[3][id] ++;
				client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Awp[2][Name]);
			}
		}
	}
}
public vido()
{
	pido = 0;
}

public mentes(id)
    {
    	new name[32]
    	get_user_name(id, name, 31)
    	new vaultkey[64],vaultdata[256]
    	format(vaultkey,63,"%s", name)
    	format(vaultdata,255,"%i",oles[id])
    	nvault_set(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", name)
    	format(vaultdata,255,"%i",oles[id])
    	nvault_get(vault,vaultkey,vaultdata,255)
    	replace_all(vaultdata, 255, "#", " ")
    	new a_o[32]
    	parse(vaultdata, a_o, 31)
    	oles[id] = str_to_num(a_o)
    	return PLUGIN_CONTINUE
    }
public client_putinserver(id)
{
    	Awp[id] = 0
}
public client_connect(id)
{
    	betoltes(id)
}
public client_disconnect(id)
{
	mentes(id)
}
 
public fegyvervaltas(id) {
	new fgy = get_user_weapon(id)
 
	if(Awp[id] == 1 && fgy == CSW_AWP)
	{
		set_pev(id, pev_viewmodel2, "models/awp/v_bronzwp.mdl")
	}
	if(Awp[id] == 1 && fgy == CSW_AWP)
	{
		set_pev(id, pev_viewmodel2, "models/awp/v_ezustwp.mdl")
	}
	if(Awp[id] == 1 && fgy == CSW_AWP)
	{
		set_pev(id, pev_viewmodel2, "models/awp/v_aranywp.mdl")
	}
	if(Awp[id] == 1 && fgy == CSW_AWP)
	{
		set_pev(id, pev_viewmodel2, "models/awp/v_ultrawp.mdl")
	}
}
/* 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 }
*/
