#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <sqlx>

#define PLUGIN "Paintball Menu"
#define VERSION "1.2"
#define AUTHOR "V!RUSHD"

#define MAX 23
#pragma semicolon 1

new const KNIFENAMES[][] = {
	"Alap Kés",
	"Space Doppler Huntsman Kés",
	"Crimson Web Huntsman Kés",
	"Fade Huntsman Kés",
	"Slaughter Huntsman Kés",
	"Steel Huntsman Knife Kés",
	"Ocean Doppler Karambit Kés",
	"Liquid Doppler Karambit Kés",
	"Space Doppler Karambit Kés",
	"Steel Karambit Kés",
	"Crimson Web Karambit Kés",
	"Tiger Tooth Bayonet Kés",
	"Space Bayonet Kés",
	"Sapphire Bayonet Kés",
	"Fade Bayonet Kés",
	"Crimson Web Bayonet Kés",
	"Case Hardened Butterfly Kés",
	"Crimson Web Butterfly Kés",
	"Sea Butterfly Kés",
	"Hawaiian Butterfly Kés",
	"Fade Butterfly Kés",
	"Láda",
	"Kulcs"
};
new const KNIFEMODELS[][] = {
	"v_knife",
	"Doppler_HM",
	"Crimson_HM",
	"Fade_HM",
	"Slaughter_HM",
	"Steel_HM",
	"DopplerOcean_K",
	"DopplerPink_K",
	"DopplerSpace_K",
	"Steel_K",
	"Crimson_K",
	"Tigertooth_B",
	"Space_B",
	"Sapphire_B",
	"Fade_B",
	"Crimson_B",
	"CaseHardened_BF",
	"Crimson_BF",
	"Sea_BF",
	"Hawaiian_BF",
	"Fade_BF"
};
/*new const TABLE[][] = {
	"UserName",
	"Arany",
	"Szint",
	"Tapasztalat",
	"Kes1",
	"Kes2",
	"Kes3",
	"Kes4",
	"Kes5",
	"Kes6",
	"Kes7",
	"Kes8",
	"Kes9",
	"Kes10",
	"Kes11",
	"Kes12",
	"Kes13",
	"Kes14",
	"Kes15",
	"Kes16",
	"Kes17",
	"Kes18",
	"Kes19",
	"Kes20",
	"Lada",
	"Kulcs",
	"Jelszo",
	"Reg"
};
new const SQLINFO[][] = {
	"127.0.0.1",    // HOST
	"csgo",     // USERNAME
	"lyx3o28olk",     // PASSWORD
	"csgo"      // DATABASE
};*/

//Paintball
new Gold[33], ExP[33], LvL[33], Knifes[MAX][33], Skin[33];
new Value[3][33], Quantity[3][33], Object[3][33], Inlaid[3][33], Slot[33], Send[33], TempID, pTime; 

//Register System
new Registered[33], bool:Loggedin[33], bool:Write[33], bool:Write2[33], RegPassword[32][33], Password[32][33];

//Round end Sounds
new Musics[32][64], MusicCount, PlayCount, bool: Music[33];

//ASD
new const PREFIX[][] = { "Információ" };
new Message[192], Name[32], Temp[192];
//new Handle:g_SqlTuple;
static Color[10];

public plugin_precache() {	
	new sBuffer[192], sFile[128], sData[64], String[64], pFile;
	get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
	format(sFile, charsmax(sFile), "%s/korvegi.ini", sFile);

	pFile = fopen(sFile, "rt");

	if(pFile) {		
		while(MusicCount < 32 && !feof(pFile)) {
			fgets(pFile, sBuffer, charsmax(sBuffer));
			trim(sBuffer);
			if(sBuffer[0] != ';' && parse(sBuffer, sData, charsmax(sData))) {
				if(contain(sData, ".mp3") != -1) {
					precache_sound(sData);
					copy(Musics[MusicCount++], charsmax(Musics[]), sData);
				}
			}
		}
		fclose(pFile);
	}
	else
		write_file(sFile, ";^"mappa/valami.mp3^"");

	if(!MusicCount) set_fail_state("Nem talaltunk zeneket! Ellenorizd a fajlt ^"addons/amxmodx/configs/korvegi.ini^"");
	
	for (new i; i < sizeof(KNIFEMODELS); ++i) {
		formatex(String, charsmax(String), "models/onepb/%s.mdl", KNIFEMODELS[i]);
		precache_model(String);
	}
}
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_dictionary("PaintballMenu.txt");
	
	register_impulse(201, "Blocking");
	register_clcmd("/menu", "Blocking");
	register_clcmd("/reg", "Blocking");
	register_clcmd("/kes", "Blocking");

	register_event("CurWeapon", "WeaponSwitch", "be", "1=1");	
	register_event("DeathMsg", "Death", "a");
	register_event("SendAudio", "PlayMusic", "a", "2&%!MRAD_ctwin");
	register_event("SendAudio", "PlayMusic", "a", "2&%!MRAD_terwin");
	
	register_clcmd("ARA", "Lekeres");
	register_clcmd("MENNYISEG", "DBLekeres");
	register_clcmd("KMENNYISEG", "ObjectSend");
	register_clcmd("REG_JELSZO", "ToRegister");
	register_clcmd("LOG_JELSZO", "Entry");
	register_clcmd("JELENLEGI_JELSZO", "Question");
	register_clcmd("UJ_JELSZO", "ExChange");
	register_clcmd("say", "HandleSay");
	
	register_clcmd("say /rs", "ResetScore");
	register_clcmd("say !rs", "ResetScore");
	register_clcmd("say rs", "ResetScore");
	register_clcmd("say /add", "GiveAway");
}
public GiveAway(id) {
	Gold[id] += 500;
	LvL[id] += 99;
	ExP[id] += 70;

	for(new i; i < MAX; i++) {
		Knifes[i][id]++;
	}
}
public Blocking(id) {
	if(Registered[id] < 1) {
		RegMenu(id);
	}
	else if(Registered[id] > 0 && !Loggedin[id]) {
		LogMenu(id);
	}
	else if(Registered[id] > 0 && Loggedin[id]) {
		MainMenu(id);
	}
	return PLUGIN_HANDLED;
}
public ResetScore(id) {
	if(Loggedin[id]) {
		cs_set_user_deaths(id, 0);
		set_user_frags(id, 0);
		cs_set_user_deaths(id, 0);
		set_user_frags(id, 0);
	
		client_printcolor(id, "%L", LANG_PLAYER, "Reset", PREFIX);
	}
	else {
		client_printcolor(id, "%L", LANG_PLAYER, "ResetLog", PREFIX);
	}
}
public WeaponSwitch(id) {
	new Weapon = get_user_weapon(id);
	new WeaponMDL[64];
	
	for(new i=1; i < sizeof(KNIFEMODELS); i++) {
		if(Skin[id] == i && Weapon == CSW_KNIFE) {
			formatex(WeaponMDL, charsmax(WeaponMDL), "models/onepb/%s.mdl", KNIFEMODELS[i]);
			set_pev(id, pev_viewmodel2, WeaponMDL);
		}
	}
}
public Death() {
	new Attacker = read_data(1);
	new Victim = read_data(2);
	new Num = random_num(1,20);
	
	if(Attacker != Victim && is_user_alive(Attacker))
	{
		new Mennyiseg = random_num(200,300);
		Gold[Attacker] += Mennyiseg;
		
		if(LvL[Attacker] < 3) {
			ExP[Attacker] += random_num(1,10);
		}
		if(LvL[Attacker] >= 3 && LvL[Attacker] < 10) {
			ExP[Attacker] += random_num(1,7);
		}
		if(LvL[Attacker] >= 10 && LvL[Attacker] < 30) {
			ExP[Attacker] += random_num(1,5);
		}
		if(LvL[Attacker] >= 30 && LvL[Attacker] < 50) {
			ExP[Attacker] += random_num(1,3);
		}
		if(LvL[Attacker] >= 50 && LvL[Attacker] < 100) {
			ExP[Attacker] += random_num(1,1);
		}
	}
	if(Attacker != Victim && is_user_alive(Attacker) && Num == 1) {
		new Name[32];
		get_user_name(Attacker, Name, 31);
		Knifes[21][Attacker]++;
		client_printcolor(0, "%L", LANG_PLAYER, "ChestT", PREFIX, Name);
	}
	if(Attacker != Victim && is_user_alive(Attacker) && Num == 19) {
		new Name[32];
		get_user_name(Attacker, Name, 31);
		Knifes[22][Attacker]++;
		client_printcolor(0, "%L", LANG_PLAYER, "KeyT", PREFIX, Name);
	}
	if(ExP[Attacker] >= 100 && LvL[Attacker] < 98) {
		new Name[32];
		get_user_name(Attacker, Name, 31);
		LvL[Attacker]++;
		ExP[Attacker] = 0;
		client_printcolor(0, "%L", LANG_PLAYER, "LevelUp", PREFIX, Name);
	}
	else if(ExP[Attacker] >= 100 && LvL[Attacker] < 99) {
		new Name[32];
		get_user_name(Attacker, Name, 31);
		LvL[Attacker]++;
		ExP[Attacker] = 0;
		client_printcolor(0, "%L", LANG_PLAYER, "LevelMax", PREFIX, Name);
	}
	return PLUGIN_HANDLED;
}
public PlayerChoose(id)
{
	new Menu = menu_create("\wKüldés:", "PlayerHandler");
	new players[32], pnum, tempid;
	new szName[32], szTempid[10];
	get_players(players, pnum);
	
	for( new i; i<pnum; i++ )
	{
		tempid = players[i];
		{
			get_user_name(tempid, szName, charsmax(szName));
			num_to_str(tempid, szTempid, charsmax(szTempid));
			menu_additem(Menu, szName, szTempid, 0);
		}
	}
	
	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public PlayerHandler(id, Menu, item)
{
	if( item == MENU_EXIT )
	{
		menu_destroy(Menu);
		return PLUGIN_HANDLED;
	}
	new Data[6], szName[64];
	new access, callback;
	menu_item_getinfo(Menu, item, access, Data,charsmax(Data), szName,charsmax(szName), callback);
	TempID = str_to_num(Data);
	
	client_cmd(id, "messagemode KMENNYISEG");
	
	menu_destroy(Menu);
	return PLUGIN_HANDLED;
}
public ObjectSend(id)
{
	new Data[121];
	new SendName[32], TempName[32];
	
	read_args(Data, charsmax(Data));
	remove_quotes(Data);
	get_user_name(id, SendName, 31);
	get_user_name(TempID, TempName, 31);

	if(str_to_num(Data) < 1) 
		return PLUGIN_HANDLED;

	if(Send[id] == 1 && Gold[id] >= str_to_num(Data))
	{
		Gold[TempID] += str_to_num(Data);
		Gold[id] -= str_to_num(Data);
		client_printcolor(0, "%L", LANG_PLAYER, "GiftGold", PREFIX, SendName, str_to_num(Data), TempName);
	}
	for(new i=2; i < MAX+2; i++) {
		if(Send[id] == i && Knifes[i-1][id] >= str_to_num(Data))
		{
			Knifes[i-1][TempID] += str_to_num(Data);
			Knifes[i-1][id] -= str_to_num(Data);
			client_printcolor(0, "%L", LANG_PLAYER, "GiftKnife", PREFIX, SendName, str_to_num(Data), KNIFENAMES[i-1], TempName);
		}
	}
	return PLUGIN_HANDLED;
}
public ChestOpen(id) {
	new Szam = random_num(1,1500);
	
	if(Szam >= 700) {
		switch(random_num(1,8)) {
			case 1: {
				get_user_name(id, Name, 31);
				Knifes[1][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[1]);
			}
			case 2: {
				get_user_name(id, Name, 31);
				Knifes[2][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[2]);
			}
			case 3: {
				get_user_name(id, Name, 31);
				Knifes[6][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[6]);
			}
			case 4: {
				get_user_name(id, Name, 31);
				Knifes[7][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[7]);
			}
			case 5: {
				get_user_name(id, Name, 31);
				Knifes[11][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[11]);
			}
			case 6: {
				get_user_name(id, Name, 31);
				Knifes[12][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[12]);
			}
			case 7: {
				get_user_name(id, Name, 31);
				Knifes[16][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[16]);
			}
			case 8: {
				get_user_name(id, Name, 31);
				Knifes[17][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[17]);
			}
		}
	}
	else if(Szam >= 100 && Szam < 700) {
		switch(random_num(1,4)) {
			case 1: {
				get_user_name(id, Name, 31);
				Knifes[3][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[3]);
			}
			case 2: {
				get_user_name(id, Name, 31);
				Knifes[8][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[8]);
			}
			case 3: {
				get_user_name(id, Name, 31);
				Knifes[13][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[13]);
			}
			case 4: {
				get_user_name(id, Name, 31);
				Knifes[18][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[18]);
			}
		}
	}
	else if(Szam >= 10 && Szam < 100) {
		switch(random_num(1,4)) {
			case 1: {
				get_user_name(id, Name, 31);
				Knifes[4][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[4]);
			}
			case 2: {
				get_user_name(id, Name, 31);
				Knifes[9][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[9]);
			}
			case 3: {
				get_user_name(id, Name, 31);
				Knifes[14][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[14]);
			}
			case 4: {
				get_user_name(id, Name, 31);
				Knifes[19][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[19]);
			}
		}
	}
	else if(Szam < 10) {
		switch(random_num(1,4)) {
			case 1: {
				get_user_name(id, Name, 31);
				Knifes[5][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[5]);
			}
			case 2: {
				get_user_name(id, Name, 31);
				Knifes[10][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[10]);
			}
			case 3: {
				get_user_name(id, Name, 31);
				Knifes[15][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[15]);
			}
			case 4: {
				get_user_name(id, Name, 31);
				Knifes[20][id]++;
				client_printcolor(0, "!g[%s] !t%s !yTalált egy %s-t.", PREFIX, Name, KNIFENAMES[20]);
			}
		}
	}
}
public RegMenu(id)
{
	new Name[32], UserName[121], UserPassword[121];
	get_user_name(id, Name, 31);
	new Menu = menu_create("\rRegisztrációs Rendszer^n\rStátusz: \dNem Regisztrált", "RegHandler");
	
	formatex(UserName, charsmax(UserName), "\rFelhasználónév: \d%s", Name);
	menu_additem(Menu, UserName, "1");
	
	if(Write[id])
	{
		formatex(UserPassword, charsmax(UserPassword), "\rJelszó: \d%s^n", RegPassword[id]);
		menu_additem(Menu, UserPassword, "2");
		
		menu_additem(Menu, "\yRegisztrálás", "3");
	}
	else
	{
		formatex(UserPassword, charsmax(UserPassword), "\rJelszó: ^n");
		menu_additem(Menu, UserPassword, "2");
		
		menu_additem(Menu, "\yRegisztrálás", "4");
	}
	
	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public LogMenu(id)
{
	new Name[32], UserName[121], UserPassword[121];
	get_user_name(id, Name, 31);
	new Menu = menu_create("\rRegisztrációs Rendszer^n\rStátusz: \dRegisztrálva", "LogHandler");
	
	formatex(UserName, charsmax(UserName), "\rFelhasználónév: \d%s", Name);
	menu_additem(Menu, UserName, "1");
	
	if(Write2[id])
	{
		formatex(UserPassword, charsmax(UserPassword), "\rJelszó: \d%s^n", Password[id]);
		menu_additem(Menu, UserPassword, "2");
	}
	else
	{
		formatex(UserPassword, charsmax(UserPassword), "\rJelszó: ^n");
		menu_additem(Menu, UserPassword, "2");
	}
	
	menu_additem(Menu, "\yBelépés", "3", 0);
	menu_additem(Menu, "\wElfelejtettem a \rJelszavam", "4", 0);
	
	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public MainMenu(id) {
	new Title[121], Menu;
		
	formatex(Title, charsmax(Title), "\r.:[ON\yE-S\wHOT]:. \rPaintball \wFőMenü:^n\dArany: \r%d \w| \dTapasztalat: \r%d%% \w| \dSzint: \r%d", Gold[id], ExP[id], LvL[id]);
	Menu = menu_create(Title, "MenuHandler");
		
	menu_additem(Menu, "Felszerelés", "a0");
	menu_additem(Menu, "Láda Nyitás", "a1");
	menu_additem(Menu, "Piac", "a2");
	menu_additem(Menu, "Lomtár", "a3");
	menu_additem(Menu, "Beállítások", "a4");
		
	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
		
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public Equipment(id) {
	new String[1024], Menu;
	Menu = menu_create("\wFelszerelés:", "EquipmentHandler");
	
	formatex(String, charsmax(String), "%s", KNIFENAMES[0]);
	menu_additem(Menu, String, "0");
	
	for(new i=1; i < MAX-2; i++) {
		if(Knifes[i][id] > 0) {
			new NumToString[6];
			num_to_str(i, NumToString, 5);
			formatex(String, charsmax(String), "\r%s \w| \r%d \dDB", KNIFENAMES[i], Knifes[i][id]);
			menu_additem(Menu, String, NumToString);
		}
	}
	
	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	menu_setprop(Menu, MPROP_BACKNAME, "Vissza");
	menu_setprop(Menu, MPROP_NEXTNAME, "Tovább");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public Chest(id) {
	new Title[121], Menu;
	
	formatex(Title, charsmax(Title), "\wLáda Nyitás:^n\dLáda: \r%d \w| \dKulcs: \r%d", Knifes[21][id], Knifes[22][id]);
	Menu = menu_create(Title, "MenuHandler");
	
	menu_additem(Menu, "Láda Nyitás^n\dSzükséges 1 Láda és 1 Kulcs", "b0", 0);
	
	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public Market(id) {
	new Menu = menu_create("\wPiac:", "MenuHandler");
	
	menu_additem(Menu, "Eladás", "c0");
	menu_additem(Menu, "Vásárlás", "c1");
	menu_additem(Menu, "Küldés", "c2");
	
	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public SlotMenu(id) {
	new String[121], Menu;
	Menu = menu_create("Eladás", "SlotHandler");

	if(Inlaid[0][id] == 0) {
		menu_additem(Menu, "SLOT 1: \yVálasz Tárgyat", "0");
	}
	else if(Inlaid[0][id] == 1) {
		for(new i; i < MAX+1; i++) {
			if(Object[0][id] == i) {
				formatex(String, charsmax(String), "SLOT 1: \y%s", KNIFENAMES[i-1]);
				menu_additem(Menu, String, "0");
			}
		}
	}
	if(Inlaid[1][id] == 0) {
		menu_additem(Menu, "SLOT 2: \yVálasz Tárgyat", "1");
	}
	else if(Inlaid[1][id] == 1) {
		for(new i; i < MAX+1; i++) {
			if(Object[1][id] == i) {
				formatex(String, charsmax(String), "SLOT 2: \y%s", KNIFENAMES[i-1]);
				menu_additem(Menu, String, "1");
			}
		}
	}
	if(Inlaid[2][id] == 0) {
		menu_additem(Menu, "SLOT 3: Válasz Tárgyat", "2");
	}
	else if(Inlaid[2][id] == 1) {
		for(new i; i < MAX+1; i++) {
			if(Object[2][id] == i) {
				formatex(String, charsmax(String), "SLOT 3: \y%s", KNIFENAMES[i-1]);
				menu_additem(Menu, String, "2");
			}
		}
	}

	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public Choose(id) {
	new String[1024], Menu;
	Menu = menu_create("\wTárgy:", "ChooseHandler");
	
	for(new i=1; i < MAX; i++) {
		if(Knifes[i][id] > 0) {
			new NumToString[6];
			num_to_str(i, NumToString, 5);
			formatex(String, charsmax(String), "\r%s \w| \r%d \dDB", KNIFENAMES[i], Knifes[i][id]);
			menu_additem(Menu, String, NumToString);
		}
	}
	
	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	menu_setprop(Menu, MPROP_BACKNAME, "Vissza");
	menu_setprop(Menu, MPROP_NEXTNAME, "Tovább");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public Buying(id)
{	
	new mPont[121], Menu, Title[121];
	
	static Players[32],Temp[10], Temp1[10], Temp2[10], pNum;	
	get_players(Players,pNum,"c");
	
	formatex(Title, charsmax(Title), "\wVásárlás:^n\dArany: \r%d", Gold[id]);
	Menu = menu_create(Title, "BuyingHandler" );
	
	for (new i; i < pNum; i++)
	{
		if(Inlaid[0][Players[i]] == 1 && Value[0][Players[i]] > 0)
		{
			for(new a; a < MAX+1; a++) {
				if(Object[0][Players[i]] == a)
					formatex(mPont, charsmax(mPont), "\r%s\d(\dEladó: \r%s \w| \dDB: \r%d \w| \dÁra: \r%d)", KNIFENAMES[a-1], get_player_name(Players[i]), Quantity[0][Players[i]], Value[0][Players[i]]);
			}
			
			num_to_str(Players[i],Temp,charsmax(Temp));
			menu_additem(Menu, mPont, Temp);
		}
		if(Inlaid[1][Players[i]] == 1 && Value[1][Players[i]] > 0)
		{
			for(new a; a < MAX+1; a++) {
				if(Object[1][Players[i]] == a)
					formatex(mPont, charsmax(mPont), "\r%s\d(\dEladó: \r%s \w| \dDB: \r%d \w| \dÁra: \r%d)", KNIFENAMES[a-1], get_player_name(Players[i]), Quantity[1][Players[i]], Value[1][Players[i]]);
			}
			
			num_to_str(Players[i],Temp1,charsmax(Temp1));
			menu_additem(Menu, mPont, Temp1);
		}
		if(Inlaid[2][Players[i]] == 1 && Value[2][Players[i]] > 0)
		{
			for(new a; a < MAX+1; a++) {
				if(Object[2][Players[i]] == a)
					formatex(mPont, charsmax(mPont), "\r%s\d(\dEladó: \r%s \w| \dDB: \r%d \w| \dÁra: \r%d)", KNIFENAMES[a-1], get_player_name(Players[i]), Quantity[2][Players[i]], Value[2][Players[i]]);
			}
			
			num_to_str(Players[i],Temp2,charsmax(Temp2));
			menu_additem(Menu, mPont, Temp2);
		}
	}
	
	menu_setprop(Menu, MPROP_PERPAGE, 6);
	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	menu_setprop(Menu, MPROP_BACKNAME, "Vissza");
	menu_setprop(Menu, MPROP_NEXTNAME, "Tovább");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public SendMenu(id) {
	if(Inlaid[0][id] > 0 || Inlaid[1][id] > 0 || Inlaid[2][id] > 0) {
		client_printcolor(id, "!g[%s] !yEladás Közben nem lehet tárgyat küldeni!", PREFIX);
		return PLUGIN_HANDLED;
	}

	new String[121], Menu;
	Menu = menu_create("\wKüldés:", "SendHandler");
	
	menu_additem(Menu, "Arany", "0");
	
	for(new i = 1; i < MAX; i++) {
		if(Knifes[i][id] > 0) {
			new NumToString[6];
			num_to_str(i, NumToString, 5);
			formatex(String, charsmax(String), "\r%s \w| \r%d \dDB", KNIFENAMES[i], Knifes[i][id]);
			menu_additem(Menu, String, NumToString);
		}
	}

	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	menu_setprop(Menu, MPROP_BACKNAME, "Vissza");
	menu_setprop(Menu, MPROP_NEXTNAME, "Tovább");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public Lomtar(id) {
	new String[121], Menu;
	Menu = menu_create("\wLomtar:", "LomtarHandler");
	
	for(new i=1; i < MAX; i++) {
		if(Knifes[i][id] > 0) {
			new NumToString[6];
			num_to_str(i, NumToString, 5);
			formatex(String, charsmax(String), "\r%s \w| \r%d \dDB", KNIFENAMES[i], Knifes[i][id]);
			menu_additem(Menu, String, NumToString);
		}
	}
	
	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	menu_setprop(Menu, MPROP_BACKNAME, "Vissza");
	menu_setprop(Menu, MPROP_NEXTNAME, "Tovább");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public Options(id)
{
	new Menu = menu_create("\wBeállítások:", "MenuHandler");
	
	menu_additem(Menu, "Jelszó Váltás", "d1", 0);
	
	if(Music[id]) {
		menu_additem(Menu, "Körvégi \rBe \w| \dKi", "d2");
	}
	else {
		menu_additem(Menu, "Körvégi \dBe \w| \rKi", "d2");
	}
	
	menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
	
	menu_display(id, Menu, 0);
	return PLUGIN_HANDLED;
}
public RegHandler(id, Menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(Menu);
		return PLUGIN_HANDLED;
	}
	
	new Data[9], access, callback, szName[64];
	menu_item_getinfo(Menu, item, access, Data,charsmax(Data), szName,charsmax(szName), callback);
	new Key = str_to_num(Data);
	
	switch(Key)
	{
		case 1:
		{
			RegMenu(id);
		}
		case 2:
		{
			client_cmd(id, "messagemode REG_JELSZO");
		}
		case 3:
		{
			Registered[id] = 1;
			Write[id] = false;
			client_printcolor(id, "%L", LANG_PLAYER, "SReg", PREFIX, RegPassword[id]);
		}
		case 4:
		{
			RegMenu(id);
			client_printcolor(id, "%L", LANG_PLAYER, "NSReg", PREFIX);
		}
	}
	menu_destroy(Menu);
	return PLUGIN_HANDLED;
}
public LogHandler(id, Menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(Menu);
		return PLUGIN_HANDLED;
	}
	
	new Data[9], access, callback, szName[64];
	menu_item_getinfo(Menu, item, access, Data,charsmax(Data), szName,charsmax(szName), callback);
	new Key = str_to_num(Data);
	
	switch(Key)
	{
		case 1:
		{
			LogMenu(id);
		}
		case 2:
		{
			client_cmd(id, "messagemode LOG_JELSZO");
		}
		case 3:
		{
			if(equali(Password[id], RegPassword[id]))
			{
				Write2[id] = false;
				Loggedin[id] = true;
				client_printcolor(id, "%L", LANG_PLAYER, "SLog", PREFIX);
			}
			else
			{
				client_printcolor(id, "%L", LANG_PLAYER, "NSLog", PREFIX);
			}
		}
		case 4:
		{
			client_printcolor(id, "%L", LANG_PLAYER, "Availability", PREFIX);
		}
	}
	menu_destroy(Menu);
	return PLUGIN_HANDLED;
}
public MenuHandler(id, Menu, item) {
	if(item == MENU_EXIT)
	{
		menu_destroy(Menu);
		return PLUGIN_HANDLED;
	}
	new Data[6], szName[64];
	new access, callback;
	menu_item_getinfo(Menu, item, access, Data, charsmax(Data), szName, charsmax(szName), callback);
	
	new Key = str_to_num(Data[1]);
	switch(Data[0])
	{
		case 'a':
		{
			switch(Key)
			{
				case 0: Equipment(id);
				case 1: Chest(id);
				case 2: Market(id);
				case 3: Lomtar(id);
				case 4: Options(id);
			}
		}
		case 'b':
		{
			switch(Key)
			{
				case 0: {
					if(Knifes[21][id] > 0 && Knifes[22][id] > 0)
					{
						Knifes[21][id]--;
						Knifes[22][id]--;
						ChestOpen(id);
						Chest(id);
					}
				}
			}
		}
		case 'c':
		{
			switch(Key)
			{
				case 0: SlotMenu(id);
				case 1: Buying(id);
				case 2: SendMenu(id);
			}
		}
		case 'd':
		{
			switch(Key)
			{
				case 1: client_cmd(id, "messagemode JELENLEGI_JELSZO");
				case 2: 
				{
					if(Music[id]) {
						Music[id] = false;
						client_cmd(id, "setinfo korvegi 0");
						Options(id);
					}
					else {
						Music[id] = true;
						client_cmd(id, "setinfo korvegi 1");
						Options(id);
					}
				}
			}
		}
	}
	menu_destroy(Menu);
	return PLUGIN_HANDLED;
}
public EquipmentHandler(id, Menu, item) {
	if(item == MENU_EXIT)
	{
		menu_destroy(Menu);
		return PLUGIN_HANDLED;
	}
	
	new Data[9], szName[64];
	new access, callback;
	menu_item_getinfo(Menu, item, access, Data,charsmax(Data), szName,charsmax(szName), callback);
	
	Skin[id] = str_to_num(Data);
	
	Equipment(id);
	return PLUGIN_HANDLED;
}
public SlotHandler(id, Menu, item) {
	if(item == MENU_EXIT)
	{
		menu_destroy(Menu);
		return PLUGIN_HANDLED;
	}
	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 0: {
			if(Inlaid[0][id] == 0) {
				Slot[id] = 0;
			}
			else {
				Inlaid[0][id] = 0;
			}
		}
		case 1: {
			if(Inlaid[1][id] == 0) {
				Slot[id] = 1;
			}
			else {
				Inlaid[1][id] = 0;
			}
		}
		case 2: {
			if(Inlaid[2][id] == 0) {
				Slot[id] = 2;
			}
			else {
				Inlaid[2][id] = 0;
			}
		}
	}
	
	Choose(id);
	return PLUGIN_HANDLED;
}
public ChooseHandler(id, Menu, item) {
	if(item == MENU_EXIT)
	{
		menu_destroy(Menu);
		return PLUGIN_HANDLED;
	}
	new Data[9], szName[64];
	new access, callback;
	menu_item_getinfo(Menu, item, access, Data, charsmax(Data), szName, charsmax(szName), callback);
	
	if(Slot[id] == 0) {
		Object[0][id] = str_to_num(Data)+1;
	}
	else if(Slot[id] == 1) {
		Object[1][id] = str_to_num(Data)+1;
	}
	else if(Slot[id] == 2) {
		Object[2][id] = str_to_num(Data)+1;
	}
	
	client_cmd(id, "messagemode ARA");
	return PLUGIN_HANDLED;
}
public BuyingHandler(id, Menu, item){
	if(item == MENU_EXIT)
	{
		menu_destroy(Menu);
		return PLUGIN_HANDLED;
	}
	if(pTime != 0){
		Buying(id);
		return PLUGIN_HANDLED;
	}
	new Data[6] ,szName[64],access,callback;
	new Name[32], Name1[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, Name1, charsmax(Name1));
	pTime = 2;
	set_task(2.0, "vTime");
	
	for(new i; i < MAX+1; i++) {
		if(Gold[id] >= Value[0][Player] && Object[0][Player] == i && Inlaid[0][Player] == 1)
		{
			client_printcolor(0, "%L", LANG_PLAYER, "Buying", PREFIX, Name, Quantity[0][Player], KNIFENAMES[i-1], Name1, Value[0][Player]);
			Inlaid[0][Player] = 0;
			Gold[Player] += Value[0][Player];
			Gold[id] -= Value[0][Player];
			Knifes[i-1][id] += Quantity[0][Player];
			Knifes[i-1][Player] -= Quantity[0][Player];
			Object[0][Player] = 0;
			Quantity[0][Player] = 0;
			Value[0][Player] = 0;
		}
		if(Gold[id] >= Value[1][Player] && Object[1][Player] == i && Inlaid[1][Player] == 1)
		{
			client_printcolor(0, "%L", LANG_PLAYER, "Buying", PREFIX, Name, Quantity[1][Player], KNIFENAMES[i-1], Name1, Value[1][Player]);
			Inlaid[1][Player] = 0;
			Gold[Player] += Value[1][Player];
			Gold[id] -= Value[1][Player];
			Knifes[i-1][id] += Quantity[1][Player];
			Knifes[i-1][Player] -= Quantity[1][Player];
			Object[1][Player] = 0;
			Quantity[1][Player] = 0;
			Value[1][Player] = 0;
		}
		if(Gold[id] >= Value[2][Player] && Object[2][Player] == i && Inlaid[2][Player] == 1)
		{
			client_printcolor(0, "%L", LANG_PLAYER, "Buying", PREFIX, Name, Quantity[2][Player], KNIFENAMES[i-1], Name1, Value[2][Player]);
			Inlaid[2][Player] = 0;
			Gold[Player] += Value[2][Player];
			Gold[id] -= Value[2][Player];
			Knifes[i-1][id] += Quantity[2][Player];
			Knifes[i-1][Player] -= Quantity[2][Player];
			Object[2][Player] = 0;
			Quantity[2][Player] = 0;
			Value[2][Player] = 0;
		}
	}
	return PLUGIN_HANDLED;
}
public SendHandler(id, Menu, item) {
	if(item == MENU_EXIT)
	{
		menu_destroy(Menu);
		return PLUGIN_HANDLED;
	}
	
	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);
	
	Send[id] = Key+1;
	
	PlayerChoose(id);
	return PLUGIN_HANDLED;
}
public LomtarHandler(id, Menu, item) {
	if(item == MENU_EXIT)
	{
		menu_destroy(Menu);
		return PLUGIN_HANDLED;
	}
	
	new Data[9], szName[64];
	new access, callback;
	menu_item_getinfo(Menu, item, access, Data,charsmax(Data), szName,charsmax(szName), callback);
	
	Knifes[str_to_num(Data)][id]--;
	
	Lomtar(id);
	return PLUGIN_HANDLED;
}
public vTime()
{
	pTime = 0;
}
public ToRegister(id)
{
	new Data[32];
	new Length = strlen(Data);
	read_args(Data, charsmax(Data));
	remove_quotes(Data);

	if(Length >= 5) {
		RegPassword[id] = Data;
		Write[id] = true;
		RegMenu(id);
	}
	else {
		RegPassword[id] = Data;
		Write[id] = true;
		RegMenu(id);
	}
	return PLUGIN_CONTINUE;
}
public Entry(id)
{
	new Data[32];
	read_args(Data, charsmax(Data));
	remove_quotes(Data);

	if(equal(Data, ""))
		return PLUGIN_HANDLED;
	
	Password[id] = Data;
	Write2[id] = true;
	LogMenu(id);
	return PLUGIN_HANDLED;
}
public Question(id)
{
	new Data[32];
	read_args(Data, charsmax(Data));
	remove_quotes(Data);

	if(equal(Data, ""))
		return PLUGIN_HANDLED;
	
	if(equali(RegPassword[id], Data))
	{
		client_cmd(id, "messagemode UJ_JELSZO");
	}
	else
	{
		client_printcolor(id, "%L", LANG_PLAYER, "BadPassword", PREFIX);
	}
	return PLUGIN_HANDLED;
}
public ExChange(id)
{
	new Data[32];
	read_args(Data, charsmax(Data));
	remove_quotes(Data);

	if(equal(Data, ""))
		return PLUGIN_HANDLED;
	
	RegPassword[id] = Data;
	return PLUGIN_HANDLED;
}
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 > 10)
	{
		client_cmd(id, "messagemode ARA");
	}
	else if(Ertek < 200)
	{
		client_printcolor(id, "%L", LANG_PLAYER, "DPrice", PREFIX);
		client_cmd(id, "messagemode ARA");
	}
	else
	{
		if(Slot[id] == 0) {
			Value[0][id] = Ertek;
		}
		else if(Slot[id] == 1) {
			Value[1][id] = Ertek;
		}
		else if(Slot[id] == 2) {
			Value[2][id] = Ertek;
		}
		client_cmd(id, "messagemode MENNYISEG");
	}
}
public DBLekeres(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 MENNYISEG");
	}
	else if(Ertek < 1)
	{
		client_cmd(id, "messagemode MENNYISEG");
	}
	else
	{
		if(Slot[id] == 0) {
			Quantity[0][id] = Ertek;
			new Name[32];
			get_user_name(id, Name, 31);
			for(new i; i < MAX+1; i++) {
				if(Object[0][id] == i && Knifes[i-1][id] >= Quantity[0][id]) {
					Inlaid[0][id] = 1;
					client_printcolor(0, "%L", LANG_PLAYER, "Encrusted", PREFIX, Name, Quantity[0][id], KNIFENAMES[i-1], Value[0][id]);
				}
			}
		}
		else if(Slot[id] == 1) {
			Quantity[1][id] = Ertek;
			new Name[32];
			get_user_name(id, Name, 31);
			for(new i; i < MAX+1; i++) {
				if(Object[1][id] == i && Knifes[i-1][id] >= Quantity[1][id]) {
					Inlaid[1][id] = 1;
					client_printcolor(0, "%L", LANG_PLAYER, "Encrusted", PREFIX, Name, Quantity[1][id], KNIFENAMES[i-1], Value[1][id]);
				}
			}
		}
		else if(Slot[id] == 2) {
			Quantity[2][id] = Ertek;
			new Name[32];
			get_user_name(id, Name, 31);
			for(new i; i < MAX+1; i++) {
				if(Object[2][id] == i && Knifes[i-1][id] >= Quantity[2][id]) {
					Inlaid[2][id] = 1;
					client_printcolor(0, "%L", LANG_PLAYER, "Encrusted", PREFIX, Name, Quantity[2][id], KNIFENAMES[i-1], Value[2][id]);
				}
			}
		}
	}
}
public PlayMusic() {
	new Mp3File[128], players[32], num, tempid;
	formatex(Mp3File, charsmax(Mp3File), "sound/%s", Musics[PlayCount == MusicCount ? (PlayCount = 0) : PlayCount++]);
	get_players(players, num, "c");
	for(new i; i < num; i++) {
		tempid = players[i];
		if(Music[tempid]) {
			client_cmd(tempid, "mp3 play %s", Mp3File);
		}
	}
}
public HandleSay(id)
{
	read_args(Message, 191);
	remove_quotes(Message);
	
	if(Message[0] == '@' || Message[0] == '/' || Message[0] == '!' || equal (Message, ""))
	{
		return PLUGIN_CONTINUE;
	}
	
	new Num = strlen(Message);
	new nNum = 0;
	new i = 0;
	
	get_user_name(id, Name, 31);
	
	if(!Loggedin[id])
	{
		get_user_team(id, Color, 9);
		formatex(Temp, 191, "^x04[NINCS BEJELENTKEZVE][Lv:%d]^x03%s^x01: %s", LvL[id], Name, Message);
	}
	else if(get_user_flags(id) & ADMIN_KICK && !Loggedin[id])
	{
		get_user_team(id, Color, 9);
		formatex(Temp, 191, "^x04[NINCS BEJELENTKEZVE][Lv:%d]^x03%s^x01:^x04 %s", LvL[id], Name, Message);
	}
	else if(equali(Name, "Elments."))
	{
		get_user_team(id, Color, 9);
		formatex(Temp, 191, "^x04[AlTulaj][Lv:%d]^x03%s^x01:^x04 %s", LvL[id], Name, Message);
	}
	else if(get_user_flags(id) & ADMIN_IMMUNITY)
	{
		get_user_team(id, Color, 9);
		formatex(Temp, 191, "^x04[Tulaj][Lv:%d]^x03%s^x01:^x04 %s", LvL[id], Name, Message);
	}
	else if(get_user_flags(id) & ADMIN_BAN)
	{
		get_user_team(id, Color, 9);
		formatex(Temp, 191, "^x04[Admin][Lv:%d]^x03%s^x01:^x04 %s", LvL[id], Name, Message);
	}
	else if(get_user_flags(id) & ADMIN_KICK)
	{
		get_user_team(id, Color, 9);
		formatex(Temp, 191, "^x04[VIP][Lv:%d]^x03%s^x01:^x04 %s", LvL[id], Name, Message);
	}
	else
	{
		get_user_team(id, Color, 9);
		formatex(Temp, 191, "^x04[Lv:%d]^x03%s^x01:^x01 %s", LvL[id], Name, Message);
	}
	
	while(i < Num)
	{
		if(Message[i] == '1' || Message[i] == '2' || Message[i] == '3' || Message[i] == '4' || Message[i] == '5' || Message[i] == '6' || Message[i] == '7' || Message[i] == '8' || Message[i] == '9' || Message[i] == '0')
			nNum++;
		++i;
	}
	
	if(nNum >= 7)
	{
		client_printcolor(id, "!g[%s] !yA szerveren !tTilos !ya Hírdetés!", PREFIX);
		return PLUGIN_HANDLED;
	}
	
	SendMessage(Color);
	return PLUGIN_HANDLED;
}
public SendMessage(Color[])
{
	new mName[10];
	for(new Player = 1; Player < get_maxplayers(); Player++)
	{
		get_user_team(Player, mName, 9);
		TeamF(Player, Color);
		Sending(Player, Temp);
		TeamF(Player, mName);
	}
}
public TeamF(Player, Team[])
{
	message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, Player),
	write_byte(Player);
	write_string(Team);
	message_end();
}
public Sending(Player, Temp[])
{
	message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, Player);
	write_byte(Player);
	write_string(Temp);
	message_end();
}
public client_putinserver(id) {
	Gold[id] = 0;
	LvL[id] = 0;
	ExP[id] = 0;
	Skin[id] = 0;
	Registered[id] = 0;
	RegPassword[id] = "";
	Password[id] = "";
	Loggedin[id] = false;
	Write[id] = false;
	Write2[id] = false;
	
	for(new i; i < 23; i++) {
		Knifes[i][id] = 0;
	}
	if(user_roundmusic(id)) {
		Music[id] = true;
	}
	if(!Loggedin[id]) {
		set_task(5.0, "Blocking", id);
	}
	if(!is_user_bot(id)) {
		//Load(id);
	}
}
public client_disconnect(id) {
	if(!is_user_bot(id)) {
		//Update(id);
		Music[id] = false;
	}
}
/*public plugin_end() {
	SQL_FreeHandle(g_SqlTuple);
}
public plugin_cfg() {
	g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0],SQLINFO[1],SQLINFO[2],SQLINFO[3]);
	
	new Query[2048];
	new Len;
	
	Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `oneshot_pb` ");
	Len += formatex(Query[Len], charsmax(Query)-Len, "( `%s` varchar(32) NOT NULL, `%s` INT(11), `%s` INT(11), `%s` INT(11), `%s` INT(11), `%s` INT(11),  ", TABLE[0], TABLE[1], TABLE[2], TABLE[3], TABLE[4], TABLE[5]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "`%s` INT(11), `%s` INT(11), `%s` INT(11), `%s` INT(11), `%s` INT(11), ", TABLE[6], TABLE[7], TABLE[8], TABLE[9], TABLE[10]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "`%s` INT(11), `%s` INT(11), `%s` INT(11), `%s` INT(11), `%s` INT(11), ", TABLE[11], TABLE[12], TABLE[13], TABLE[14], TABLE[15]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "`%s` INT(11), `%s` INT(11), `%s` INT(11), `%s` INT(11), `%s` INT(11), ", TABLE[16], TABLE[17], TABLE[18], TABLE[19], TABLE[20]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "`%s` INT(11), `%s` INT(11), `%s` INT(11), `%s` INT(11), `%s` INT(11), ", TABLE[21], TABLE[22], TABLE[23], TABLE[24], TABLE[25]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "`%s` varchar(32), `%s` INT(11), `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)", TABLE[26], TABLE[27]);
	
	SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query);
}
public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
	if(FailState == TQUERY_CONNECT_FAILED)
		set_fail_state("Nem tudtam csatlakozni az adatbazishoz.");
	else if(FailState == TQUERY_QUERY_FAILED)
		set_fail_state("Query Error");
	if(Errcode)
		log_amx("Hibat dobtam: %s",Error);
}
public Load(id)
{
	new Query[2048], Data[1], Name[32];
	get_user_name(id, Name, 31);
	Data[0] = id;

	formatex(Query, charsmax(Query), "SELECT * FROM `oneshot_pb` WHERE %s = ^"%s^";", TABLE[0], Name);
	SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
	return PLUGIN_HANDLED;
}
public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
	if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
		log_amx("%s", Error);
		return;
	}
	else {
		new id = Data[0];
		
		if(SQL_NumRows(Query) > 0) {
			Gold[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Arany"));
			LvL[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Szint"));
			ExP[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Tapasztalat"));
			Knifes[1][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes1"));
			Knifes[2][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes2"));
			Knifes[3][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes3"));
			Knifes[4][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes4"));
			Knifes[5][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes5"));
			Knifes[6][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes6"));
			Knifes[7][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes7"));
			Knifes[8][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes8"));
			Knifes[9][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes9"));
			Knifes[10][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes10"));
			Knifes[11][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes11"));
			Knifes[12][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes12"));
			Knifes[13][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes13"));
			Knifes[14][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes14"));
			Knifes[15][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes15"));
			Knifes[16][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes16"));
			Knifes[17][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes17"));
			Knifes[18][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes18"));
			Knifes[19][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes19"));
			Knifes[20][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kes20"));
			Knifes[21][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Lada"));
			Knifes[22][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kulcs"));
			SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Jelszo"), RegPassword[id], charsmax(RegPassword[]));
			Registered[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Reg"));
		}
		else {
			Save(id);  
		}
	}
}
public Save(id) {
	new Query[2048], Name[32];
	get_user_name(id, Name, 31);
	new Len;
	
	Len += formatex(Query[Len], charsmax(Query), "INSERT INTO `oneshot_pb` ");
	Len += formatex(Query[Len], charsmax(Query)-Len, "( `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, ", TABLE[0], TABLE[1], TABLE[2], TABLE[3], TABLE[4], TABLE[5], TABLE[6], TABLE[7], TABLE[8], TABLE[9]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "  `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, ", TABLE[10], TABLE[11], TABLE[12], TABLE[13], TABLE[14], TABLE[15], TABLE[16], TABLE[17], TABLE[18], TABLE[19]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "  `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, `%s`, `%s`) VALUES (^"%s^", ", TABLE[20], TABLE[21], TABLE[22], TABLE[23], TABLE[24], TABLE[25], TABLE[26], TABLE[27], Name);
	Len += formatex(Query[Len], charsmax(Query)-Len, "  ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ");
	Len += formatex(Query[Len], charsmax(Query)-Len, "  ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ");
	Len += formatex(Query[Len], charsmax(Query)-Len, "  ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^");");
	
	SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public Update(id) {
	new Query[2048], Name[32];
	get_user_name(id, Name, 31);
	new Len;
	
	Len += formatex(Query[Len], charsmax(Query), "UPDATE `oneshot_pb` ");
	Len += formatex(Query[Len], charsmax(Query)-Len, "SET %s = ^"%i^", %s = ^"%i^", %s = ^"%i^", %s = ^"%i^", ", TABLE[1], Gold[id], TABLE[2], LvL[id], TABLE[3], ExP[id], TABLE[4], Knifes[1][id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "%s = ^"%i^", %s = ^"%i^", %s = ^"%i^", ", TABLE[5], Knifes[2][id], TABLE[6], Knifes[3][id], TABLE[7], Knifes[4][id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "%s = ^"%i^", %s = ^"%i^", %s = ^"%i^", ", TABLE[8], Knifes[5][id], TABLE[9], Knifes[6][id], TABLE[10], Knifes[7][id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "%s = ^"%i^", %s = ^"%i^", %s = ^"%i^", ", TABLE[11], Knifes[8][id], TABLE[12], Knifes[9][id], TABLE[13], Knifes[10][id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "%s = ^"%i^", %s = ^"%i^", %s = ^"%i^", ", TABLE[14], Knifes[11][id], TABLE[15], Knifes[12][id], TABLE[16], Knifes[13][id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "%s = ^"%i^", %s = ^"%i^", %s = ^"%i^", ", TABLE[17], Knifes[14][id], TABLE[18], Knifes[15][id], TABLE[19], Knifes[16][id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "%s = ^"%i^", %s = ^"%i^", %s = ^"%i^", ", TABLE[20], Knifes[17][id], TABLE[21], Knifes[18][id], TABLE[22], Knifes[19][id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "%s = ^"%i^", %s = ^"%i^", %s = ^"%i^", ", TABLE[23], Knifes[20][id], TABLE[24], Knifes[21][id], TABLE[25], Knifes[22][id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "%s = ^"%s^", %s = ^"%i^" WHERE %s = ^"%s^";", TABLE[26], RegPassword[id], TABLE[27], Registered[id], TABLE[0], Name);
	
	SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
	if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
		log_amx("%s", Error);
		return;
	}
}*/
stock client_printcolor(const id, const input[], any:...)
{
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);

	replace_all(msg, 190, "!g", "^4");
	replace_all(msg, 190, "!y", "^1");
	replace_all(msg, 190, "!t", "^3");  

	if (id) players[0] = id; else get_players(players, count, "ch");
	{
		for (new i = 0; i < count; i++)
		{
			if (is_user_connected(players[i]))
			{
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
				write_byte(players[i]);
				write_string(msg);
				message_end();
			}
		}
	}
	return PLUGIN_HANDLED;
}
stock bool:user_roundmusic(id) {
	new azonosit[8];
	get_user_info(id, "korvegi", azonosit, charsmax(azonosit));
	if(equal(azonosit, "0")) return false;
	return true;
}
stock get_player_name(id){
	static Name[32];
	get_user_name(id,Name,31);
	return Name;
}
