/* qKKKJ plugin
*
* (c) Készült: 2013 Készítette: qKKKJ
* Minden jog fenntartva!
*
*/
 
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <nvault>
#include <hamsandwich>
#include <engine>
new pont[33]
new hs,oles
new g_vault
new bool:g_aranyak[33] = false
new bool:g_aranym4[33] = false
new bool:g_aranydezi[33] = false
public plugin_init() {
	register_plugin("pontrendszer","1.0","qKKKJ")
	hs = register_cvar("HS", "10")
	oles = register_cvar("oles", "5")
	register_event("DeathMsg", "halal", "a")
	register_clcmd("say /shop", "bolt")
	register_clcmd("say /pont", "pontjaim")
	g_vault = nvault_open("pontmentes")
	register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")
	RegisterHam( Ham_TakeDamage , "player" , "PlayerHurt", 0);
	register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
 
 
}
public plugin_precache()
	{
	precache_model("models/aranyak/v_aranyak.mdl")
	precache_model("models/aranyak/p_aranyak.mdl")
	precache_model("models/aranydezi/p_aranydezi.mdl")
	precache_model("models/aranydezi/v_aranydezi.mdl")
	precache_model("models/aranydm4/v_aranym4.mdl")
	precache_model("models/aranydm4/p_aranym4.mdl")
 
}
public event_new_round(id)
	{
	g_aranyak[id] = false
	g_aranym4[id] = false
	g_aranydezi[id] = false
}
public client_connect(id) 
	{
 
	LoadData(id) 
}
public client_disconnect(id) 
	{ 
 
	SaveData(id) 
 
}
public SaveData(id) 
	{ 
	new name[32]
	get_user_name(id, name, 31)
 
	new vaultkey[64],vaultdata[256] 
	format(vaultkey,63,"%sBBPONT", name) 
 
	format(vaultdata,255,"%i",pont[id])
 
	nvault_set(g_vault,vaultkey,vaultdata) 
	return PLUGIN_CONTINUE 
}
public LoadData(id) 
	{ 
	new name[32]
	get_user_name(id, name, 31) 
	new vaultkey[64],vaultdata[256] 
	format(vaultkey,63,"%sBBPONT", name) 
	format(vaultdata,255,"%i",pont[id]) 
	nvault_get(g_vault,vaultkey,vaultdata,255) 
	replace_all(vaultdata, 255, "#", " ") 
	new pontok[33]
	parse(vaultdata, pontok) 
	pont[id] = str_to_num(pontok) 
	return PLUGIN_CONTINUE 
}
public pontjaim(id)
	{
	client_print(id, print_chat, "Pontjaid: %d", pont[id])
}
public halal()
	{
	new killer = read_data(1)
	new victim = read_data(2)
 
	if(killer != victim && get_user_team(killer) != get_user_team(victim) && read_data(3))
		{
		pont[killer] += get_pcvar_num(hs)
	}
	if(killer != victim && get_user_team(killer) != get_user_team(victim))
		{
		pont[killer] += get_pcvar_num(oles)
	}
	return PLUGIN_CONTINUE
}
public bolt(id)
	{
	new menu = menu_create("Bolt ", "bolt_hand");
 
	menu_additem(menu, "VIP menu", "", 0); // case 0
	menu_additem(menu, "Fegyverek", "", 0); // case 1
	menu_additem(menu, "Kepessegek", "", 0); // case 2
 
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
 
	menu_display(id, menu, 0);
 
	return PLUGIN_HANDLED;
}
 
public bolt_hand(id, menu, item)
	{
	if(item == MENU_EXIT)
		{
		menu_cancel(id);
		return PLUGIN_HANDLED;
	}
 
	new command[6], name[64], access, callback;
 
	menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
 
	switch(item)
	{
		case 0: vipmenu(id)
		case 1: fegyverek(id)
		case 2: kepessegek(id)
	}
 
	menu_destroy(menu);
 
	return PLUGIN_HANDLED;
}
public vipmenu(id)
	{
	if(get_user_flags(id) & ADMIN_LEVEL_H)
		{
		new menu = menu_create("Vip menu", "vipmenu_hand");
 
		menu_additem(menu, "AWP [10] pont", "", 0); // case 0
		menu_additem(menu, "CT/T Magozo [20] pont", "", 0); // case 1
		menu_additem(menu, "Arany AK [30] pont", "", 0); // case 2
		menu_additem(menu, "Arany M4 [30] pon", "", 0); // case 3
		menu_additem(menu, "Arany Dezi [30] pont", "", 0); // case 4
 
 
		menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
 
		menu_display(id, menu, 0);
 
 
	}
	else client_print(id, print_chat, "Nincs elerhetoseged ehhez a menuhoz")
	return PLUGIN_CONTINUE
	}
public vipmenu_hand(id, menu, item)
	{
	if(item == MENU_EXIT)
		{
		menu_cancel(id);
		return PLUGIN_HANDLED;
	}
 
	new command[6], name[64], access, callback;
 
	menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
 
	switch(item)
	{
		case 0: 
		{
			if(pont[id] >= 10)
				{
				give_item(id, "weapon_awp")
				cs_set_user_bpammo(id, CSW_AWP, 35)
				pont[id] -= 10
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
		case 1:
		{
			if(pont[id] >= 20 && cs_get_user_team(id) == CS_TEAM_CT)
				{
				give_item(id, "weapon_sg550")
				cs_set_user_bpammo(id, CSW_SG550, 120)
				pont[id] -= 20
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			if(pont[id] >= 20 && cs_get_user_team(id) == CS_TEAM_T)
				{
				give_item(id, "weapon_sg552")
				cs_set_user_bpammo(id, CSW_SG552, 120)
				pont[id] -= 20
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
		case 2:
		{
			if(pont[id] >= 30)
				{
				g_aranyak[id] = true
				pont[id] -= 30
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
		case 3: 
		{
			if(pont[id] >= 30)
				{
				g_aranym4[id] = true
				pont[id] -= 30
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
		case 4:
		{
			if(pont[id] >= 30)
				{
				g_aranydezi[id] = true
				pont[id] -= 30
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
	}
 
	menu_destroy(menu);
 
	return PLUGIN_HANDLED;
}
public fegyverek(id)
	{
	new menu = menu_create("Fegyver menu", "fegyver_hand");
 
	menu_additem(menu, "AWP [30] pont", "", 0); // case 0
	menu_additem(menu, "CT/T Magozo [50] pont", "", 0); // case 1
	menu_additem(menu, "Arany AK [80] pont", "", 0); // case 2
	menu_additem(menu, "Arany M4 [80] pon", "", 0); // case 3
	menu_additem(menu, "Arany Dezi [80] pont", "", 0); // case 4
 
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
 
	menu_display(id, menu, 0);
 
	return PLUGIN_HANDLED;
}
 
public fegyver_hand(id, menu, item)
	{
	if(item == MENU_EXIT)
		{
		menu_cancel(id);
		return PLUGIN_HANDLED;
	}
 
	new command[6], name[64], access, callback;
 
	menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
 
	switch(item)
	{
		case 0: 
		{
			if(pont[id] >= 30)
				{
				give_item(id, "weapon_awp")
				cs_set_user_bpammo(id, CSW_AWP, 35)
				pont[id] -= 30
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
		case 1:
		{
			if(pont[id] >= 50 && cs_get_user_team(id) == CS_TEAM_CT)
			{
				give_item(id, "weapon_sg550")
				cs_set_user_bpammo(id, CSW_SG550, 120)
				pont[id] -= 50
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			if(pont[id] >= 50 && cs_get_user_team(id) == CS_TEAM_T)
			{
				give_item(id, "weapon_sg552")
				cs_set_user_bpammo(id, CSW_SG552, 120)
				pont[id] -= 50
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
		case 2:
		{
			if(pont[id] >= 80)
				{
				g_aranyak[id] = true
				pont[id] -= 30
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
		case 3: 
		{
			if(pont[id] >= 80)
				{
				g_aranym4[id] = true
				pont[id] -= 30
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
		case 4:
		{
			if(pont[id] >= 80)
				{
				g_aranydezi[id] = true
				pont[id] -= 30
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
	}
 
	menu_destroy(menu);
 
	return PLUGIN_HANDLED;
}
public kepessegek(id)
	{
	new menu = menu_create("Kepesseg menu", "kep_hand");
 
	menu_additem(menu, "Gyorsasag [20] pont", "", 0); // case 0
	menu_additem(menu, "Gravitacio [20] pont", "", 0); // case 1
	menu_additem(menu, "+50hp [2] pont", "", 0); // case 2
 
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
 
	menu_display(id, menu, 0);
 
	return PLUGIN_HANDLED;
}
 
public kep_hand(id, menu, item)
	{
	if(item == MENU_EXIT)
		{
		menu_cancel(id);
		return PLUGIN_HANDLED;
	}
 
	new command[6], name[64], access, callback;
 
	menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
 
	switch(item)
	{
		case 0:
		{
			if(pont[id] >= 20)
				{
				set_user_maxspeed(id, 500.0)
				pont[id] -= 20
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
		case 1:
		{
			if(pont[id] >= 20)
				{
				set_user_gravity(id, 0.8)
				pont[id] -= 20
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
		case 2:
		{
			if(pont[id] >= 2)
				{
				set_user_health(id, get_user_health(id)+50)
				pont[id] -= 2
				client_print(id, print_chat, "Sikeres vasarlas")
			}
			else client_print(id, print_chat, "Nincs eleg pontod")
			}
	}
 
	menu_destroy(menu);
 
	return PLUGIN_HANDLED;
}
//Arany fegyverek cuccai
public Event_CurWeapon(id)
	{
	new weapon = get_user_weapon(id)
	new vModel[56],pModel[56]
	if(weapon == CSW_AK47 && g_aranyak[id])
		{
		format(vModel,55,"models/aranyak/v_aranyak.mdl")
		format(pModel,55,"models/aranyak/p_aranyak.mdl")
	}
	if(weapon == CSW_M4A1 && g_aranym4[id])
		{
		format(vModel,55,"models/aranym4/v_aranym4.mdl")
		format(pModel,55,"models/aranym4/p_aranym4.mdl")
	}
	if(weapon == CSW_DEAGLE && g_aranydezi[id])
		{
		format(vModel,55,"models/aranydezi/v_aranydezi.mdl")
		format(vModel,55,"models/aranydezi/p_aranydezi.mdl")
 
	}
	entity_set_string(id, EV_SZ_viewmodel, vModel)
	entity_set_string(id, EV_SZ_weaponmodel, pModel)
}
public PlayerHurt( victim,inflictor,attacker,Float:damage, DamageBits )
	{
	new weapon = get_user_weapon(attacker)
	if(weapon == CSW_AK47 && g_aranyak[attacker])
		{
		SetHamParamFloat(4, damage * 1.50);
	}
	if(weapon == CSW_M4A1 && g_aranym4[attacker])
		{
		SetHamParamFloat(4, damage * 1.50);
	}
	if(weapon == CSW_DEAGLE && g_aranydezi[attacker])
		{
		SetHamParamFloat(4, damage * 1.50);
	}
}