#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>
#include <dhudmessage>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <sqlx>

new const PLUGIN[] = "awp";
new const VERSION[] = "0.4";
new const AUTHOR[] = "Exodus"; //Ha nem vagy pofátlan nem írod át örűlj, hogy megoszottam a modot!

#pragma semicolon 1
//---------------------------------------------------------------------------------------
//Beállítások
//---------------------------------------------------------------------------------------

new const Prefix[] = "[szervernv]"; //Menüben megjelenő prefix
new const C_Prefix[] = "[Információ]"; //Chat Prefix

new const Website[] = "WWW.FACEBOOK.HU"; //Menükben megjelenő elérhetőség

new const SQLINFO[][] = { "", "1", "1", "1" };

#define MAX 48 //Skinek száma
#define LADA 2 //Ládák száma

#define TULAJ ADMIN_LEVEL_A
#define ADMIN ADMIN_BAN
#define VIP ADMIN_LEVEL_H

#define DLMIN 1 //Minimum Dollár drop
#define DLMAX 19 //Maximum Dollár drop

#define KESDROP 0.4 //Kés drop esélye

new const l_Nevek[][] = { "Handzsár Láda", "Főnix Láda" };

//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------

new OsszesSkin[MAX][33], Lada[LADA][33], Kulcs[33], Dollar[33], Rang[33], Oles[33], Skin[2][33], bool:Gun[33], bool:Hud[33], D_Oles[33], name[32][33], Masodpercek[33], Kredit[33], Vip[33], Erteke[33], kicucc[33], kirakva[33], AutoB[33], pido;
new bool:Belepve[33], bool:Beirtjelszot[33], bool:Beirtjelszot1[33], bool:Beirtfelhasznalot[33], bool:Beirtfelhasznalot1[33], Regisztralt[33], Felhasznalonev[33][100], Jelszo[33][100], regJelszo[33][100], regFh[33][100], Send[33], TempID;
new Handle:g_SqlTuple;
new Temp[192];
static color[10];
enum _:Rangs { Szint[32], Xp[8] };

new const Fegyverek[MAX][] =
{
	{"AWP | Assimov"},
         {"AWP | Black Rock" },
         {"AWP | Blue Angel" },
         {"AWP | Boom" },
         {"AWP | Cyrex" },
         {"AWP | Dark Smoke" },
         {"AWP | Deadly Birds" },
         {"AWP | Dragon Lore" },
         {"AWP | Fever Dream" },
         {"AWP | Gentleman" },
         {"AWP | Goldenly" },
         {"AWP | HBeast" },
         {"AWP | Neural" },
         {"AWP | Phobos" },
         {"AWP | Pony" },
         {"AWP | Rail Gun" },
         {"AWP | South Tiger" },
         {"AWP | The Rabbit." },
         {"AWP | Tiger Tooth" },
         {"AWP | Volcano" },
	{"KÉS | Bagnet M9 Crimson Web" },
	{"KÉS | Bagnet M9 Marble Fade" },
	{"KÉS | Bagnet M9 Night" },
	{"KÉS | Bayonet Boreal Forest" },
	{"KÉS | Bayonet Doppler Phase2" },
	{"KÉS | Bayonet Slaughter" },
	{"KÉS | Bowie Fade" },
	{"KÉS | Butterfly Crimson Web" },
	{"KÉS | Butterfly Fade" },
	{"KÉS | Butterfly Slaughter" },
	{"KÉS | Falchion Rubby" },
	{"KÉS | Falchion Safari" },
	{"KÉS | Falchion Slaughter" },
	{"KÉS | Flip Autotronic" },
	{"KÉS | Flip Gamma Doppler" },
	{"KÉS | Flip Lore" },
	{"KÉS | Gut Black Prism" },
	{"KÉS | Gut Case" },
	{"KÉS | Gut Lore" },
	{"KÉS | Gut Vampire" },
	{"KÉS | Huntsman Boreal Forest." },
	{"KÉS | Huntsman Case Hardened" },
	{"KÉS | Huntsman Night." },
	{"KÉS | Karambit Doppler Phase" },
	{"KÉS | Karambit Gamma Doppler" },
	{"KÉS | Karambit Marble Fade." },
	{"KÉS | MCR" },
	{"KÉS | Shadow Case Hardened" }
};
new const Awp_Modelek[][] = {
         "models/awp/awp.mdl",
         "models/awp/1.mdl",
         "models/awp/2.mdl",
         "models/awp/3.mdl",
         "models/awp/4.mdl",
         "models/awp/5.mdl",
         "models/awp/6.mdl",
         "models/awp/7.mdl",
         "models/awp/8.mdl",
         "models/awp/9.mdl",
         "models/awp/10.mdl",
         "models/awp/11.mdl",
         "models/awp/12.mdl",
         "models/awp/13.mdl",
         "models/awp/14.mdl",
         "models/awp/15.mdl",
         "models/awp/16.mdl",
         "models/awp/17.mdl",
         "models/awp/18.mdl",
         "models/awp/19.mdl",
         "models/awp/20.mdl"
};
new const Kes_Modelek[][] = {
	"models/knife/kife.mdl",
	"models/knife/1.mdl",
	"models/knife/2.mdl",
	"models/knife/3.mdl",
	"models/knife/4.mdl",
	"models/knife/5.mdl",
	"models/knife/6.mdl",
	"models/knife/7.mdl",
	"models/knife/8.mdl",
	"models/knife/9.mdl",
	"models/knife/10.mdl",
	"models/knife/11.mdl",
	"models/knife/12.mdl",
	"models/knife/13.mdl",
	"models/knife/14.mdl",
	"models/knife/15.mdl",
	"models/knife/16.mdl",
	"models/knife/17.mdl",
	"models/knife/18.mdl",
	"models/knife/19.mdl",
	"models/knife/20.mdl",
	"models/knife/21.mdl",
	"models/knife/22.mdl",
	"models/knife/23.mdl",
	"models/knife/24.mdl",
	"models/knife/25.mdl",
	"models/knife/26.mdl",
	"models/knife/27.mdl",
	"models/knife/28.mdl"
};
new const Rangok[][Rangs] =
{
	{ "Silver I", 950 },
	{ "Silver II", 1000 },
	{ "Silver III", 1050 },
	{ "Silver IV", 1500 },
	{ "Silver Elite", 2000 },
	{ "Silver Elite Master", 2500 },
	{ "Gold Nova I", 3500 },
	{ "Gold Nova II", 4000 },
	{ "Gold Nova III", 4500 },
	{ "Gold Nova Master", 5000 },
	{ "Master Guardian I", 5500 },
	{ "Master Guardian II", 6000 },
	{ "Master Guardian Elite", 6500 },
	{ "Distinguished Master Guardian", 12000 },
	{ "Legendary Eagle", 14000 },
	{ "Legendary Eagle Master", 16000 },
	{ "Supreme Master First Class", 18000 },
	{ "The Global Elite", 20000 },
	{ "**---Gratulálok---**", 99999999 }
};
public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_impulse(201, "Ellenorzes");
	register_clcmd("say /menu", "Ellenorzes");
	register_clcmd("DOLLAR", "lekeres");
	register_clcmd("say", "sayhook");
	
	register_clcmd("Reg_Felhasznalonev", "regisztralas_felh");
	register_clcmd("Reg_Jelszo", "regisztralas_jelszo");
	register_clcmd("Log_Felhasznalonev", "bejelentkezes_felh");
	register_clcmd("Log_Jelszo", "bejelentkezes_jelszo");
	
	register_event("CurWeapon", "FegyverValtas", "be", "1=1");
	register_event("DeathMsg", "Halal", "a");
	set_task(1.0, "AutoCheck",_,_,_,"b");
}
public AutoCheck()
{
new p[32],n;
get_players(p,n,"ch");
for(new i=0;i<n;i++)
{
new id = p[i];
if(Hud[id])
{
	InfoHud(id);
}
}
} 
public InfoHud(id)
{
	if(is_user_alive(id))
        {
        new nev[32];
        get_user_name(id, nev, 31);

        set_hudmessage(255, 255, 125, 4.0, 3.0, 0, 8.0, 12.0);
        show_hudmessage(id, "[Üdv %s]^n[Dollárod: %d$]", nev, Dollar[id]);
         }
}
public plugin_precache()
{
for(new i;i < sizeof(Awp_Modelek); i++)
{
	precache_model(Awp_Modelek[i]);
}
for(new i;i < sizeof(Kes_Modelek); i++)
{
	precache_model(Kes_Modelek[i]);
}
precache_model("models/knife/knife.mdl");
}
public FegyverValtas(id)
{
new fgy = get_user_weapon(id);

for(new i;i < sizeof(Awp_Modelek); i++)
{
	if(Skin[0][id] == i && fgy == CSW_AWP && Gun[id])
	{
		set_pev(id, pev_viewmodel2, Awp_Modelek[i]);
	}
}
for(new i;i < sizeof(Kes_Modelek); i++)
{
	if(Skin[1][id] == i && fgy == CSW_KNIFE && Gun[id])
	{
		set_pev(id, pev_viewmodel2, Kes_Modelek[i]);
	}
}
	
}
public Halal()
{
new Gyilkos = read_data(1);
new Aldozat = read_data(2);
new pPont; pPont += random_num(DLMIN, DLMAX);

if(Gyilkos == Aldozat)
    return PLUGIN_HANDLED;
	
Oles[Gyilkos] ++;
D_Oles[Gyilkos] ++;
	
while(Oles[Gyilkos] >= Rangok[Rang[Gyilkos]][Xp])
Rang[Gyilkos]++;
	
Dollar[Gyilkos] += pPont;

set_dhudmessage(random(256), random(256), random(256), -1.0, 0.20, 0, 6.0, 3.0);
show_dhudmessage(Gyilkos, "+ %d$", pPont);
   
LadaDropEllenor(Gyilkos);
return PLUGIN_HANDLED;
}

public LadaDropEllenor(id)
{
new LadaID = random_num(0,LADA);

if(D_Oles[id] == 4)
{
	Lada[LadaID][id]++;
	ColorChat(id, GREEN, "%s ^1Találtál egy ^4%s^1-t", C_Prefix, l_Nevek[LadaID]);
}
if(D_Oles[id] == 8)
{
	Lada[LadaID][id]++;
	ColorChat(id, GREEN, "%s ^1Találtál egy ^4%s^1-t", C_Prefix, l_Nevek[LadaID]);
}
if(D_Oles[id] >= 10)
{
	Kulcs[id]++;
	D_Oles[id] = 0;
	ColorChat(id, GREEN, "%s ^1Találtál egy ^4Kulcs^1-t", C_Prefix);
}
}
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 && Dollar[id] >= str_to_num(Data))
{
	Dollar[TempID] += str_to_num(Data);
	Dollar[id] -= str_to_num(Data);
	ColorChat(0, GREEN, "%s^3%s ^1Küldött ^4%d$ -t ^3%s^1-nak", C_Prefix, SendName, str_to_num(Data), TempName);
}
if(Send[id] == 2 && Kulcs[id] >= str_to_num(Data))
{
	Kulcs[TempID] += str_to_num(Data);
	Kulcs[id] -= str_to_num(Data);
	ColorChat(0, GREEN, "%s^3%s ^1Küldött ^4%d Kulcs^1-t ^3%s^1-nak", C_Prefix, SendName, str_to_num(Data), TempName);
}
for(new i;i < LADA; i++) 
{
	if(Send[id] == i + 4 && Lada[i][id] >= str_to_num(Data))
	{
		Lada[i][TempID] += str_to_num(Data);
		Lada[i][id] -= str_to_num(Data);
		ColorChat(0, GREEN, "%s^3%s ^1Küldött ^4%d %s^1-t ^3%s^1-nak", C_Prefix, SendName, str_to_num(Data), l_Nevek[i], TempName);
	}
}

return PLUGIN_HANDLED;
}
public Ellenorzes(id)
{
if(AutoB[id] == 1)
{
	Belepve[id] = true;
}
if(Belepve[id] == false)
{
	Menu_Fo(id);
}
else
{
	Fomenu(id);
}
}
new const REGMENU[][][] = { { "\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve" } };
public Menu_Regisztracio(id) 
{
	new String[121], Nev[32];
	get_user_name(id, Nev, 31);
	formatex(String, charsmax(String), "%s \r- \dRegisztráció^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
	new menu = menu_create(String, "Menu_Regisztracio_h");
	
	if(Regisztralt[id] == 0)
	{
	formatex(String, charsmax(String), "\wFelhasználónév: \r%s^n", regFh[id]);
	menu_additem(menu, String, "1",0);
	formatex(String, charsmax(String), "\wJelszó: \r%s^n", regJelszo[id]);
	menu_additem(menu, String, "2",0);
	}
	else
	{
	formatex(String, charsmax(String), "\rNév: \d%s^n\wTe már regisztráltál a szerverre.", Nev, regFh[id]);
	menu_additem(menu, String, "",0);
	}
	
	if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true)
	{
	formatex(String, charsmax(String), "\yRegisztráció");
	menu_additem(menu, String, "3",0);
	}
	
	menu_display(id, menu, 0);
	return PLUGIN_HANDLED;
}
public Menu_Regisztracio_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:
	{
		client_cmd(id, "messagemode Reg_Felhasznalonev");
	}
	case 2:
	{
		client_cmd(id, "messagemode Reg_Jelszo");
	}
	case 3:
	{
		Regisztralt[id] = 1;
		ColorChat(id, GREEN, "%s^1Sikeresen regisztráltál a szerverre.", C_Prefix);
		SQL_Update_Reg(id);
	}
}
}
public Menu_Bejelentkezes(id) 
{
	new String[121];
	formatex(String, charsmax(String), "%s \r- \dBejelentkezés^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
	new menu = menu_create(String, "Menu_Bejelentkezes_h");
	
	formatex(String, charsmax(String), "Felhasználónév: \r%s^n", Felhasznalonev[id]);
	menu_additem(menu, String, "1",0);
	formatex(String, charsmax(String), "Jelszó: \r%s^n", Jelszo[id]);
	menu_additem(menu, String, "2",0);
	
	formatex(String, charsmax(String), "\yBejelentkezés^n");
	menu_additem(menu, String, "3",0);
	
	menu_display(id, menu, 0);
	return PLUGIN_HANDLED;
}
public Menu_Bejelentkezes_h(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}

new data[9], szName[64], Nev[32];
get_user_name(id, Nev, 31);
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:
		{
		client_cmd(id, "messagemode Log_Felhasznalonev");
		}
		case 2:
		{
		client_cmd(id, "messagemode Log_Jelszo");
		}
		case 3:
        {
			if(equali(Jelszo[id], regJelszo[id]) && (equali(Felhasznalonev[id], regFh[id])))
			{
            Belepve[id] = true;
            ColorChat(id, GREEN, "%s ^1Üdv újra itt ^4%s ^1!", C_Prefix, Nev);
			}
			else
			{
			ColorChat(id, GREEN, "%s ^1Hibás Felhasználónév vagy Jelszó.", C_Prefix);
			}
        }
	}
}
public Menu_Fo(id) 
{
	new String[121];
	formatex(String, charsmax(String), "%s \r- \dRegisztrációs rendszer^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
	new menu = menu_create(String, "Menu_Fo_h");
	
	formatex(String, charsmax(String), "Regisztáció^n");
	menu_additem(menu, String, "2",0);
	formatex(String, charsmax(String), "Bejelentkezés^n^n\d-------------------------------^n%s^n-------------------------------", Website);
	menu_additem(menu, String, "1",0);
	
	menu_display(id, menu, 0);
	return PLUGIN_HANDLED;
}
public Menu_Fo_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: Menu_Bejelentkezes(id);
	case 2: Menu_Regisztracio(id);
	}
}
public regisztralas_felh(id)
{
    new adat[32];
    new hosszusag = strlen(adat);
    read_args(adat, charsmax(adat));
    remove_quotes(adat);
    if(hosszusag >= 5) 
	{
        regFh[id] = adat;
        Beirtfelhasznalot[id] = true;
        Menu_Regisztracio(id);
    }
    else 
	{
        regFh[id] = adat;
        Beirtfelhasznalot[id] = true;
        Menu_Regisztracio(id);
    }
    return PLUGIN_CONTINUE;
}
public regisztralas_jelszo(id)
{
    new adat[32];
    new hosszusag = strlen(adat);
    read_args(adat, charsmax(adat));
    remove_quotes(adat);
    if(hosszusag >= 5) {
        regJelszo[id] = adat;
        Beirtjelszot[id] = true;
        Menu_Regisztracio(id);
    }
    else {
        regJelszo[id] = adat;
        Beirtjelszot[id] = true;
        Menu_Regisztracio(id);
    }
    return PLUGIN_CONTINUE;
}
public bejelentkezes_jelszo(id)
{
    new adat[32];
    new hosszusag = strlen(adat);
    read_args(adat, charsmax(adat));
    remove_quotes(adat);
    if(hosszusag >= 5) {
        Jelszo[id] = adat;
        Beirtjelszot1[id] = true;
        Menu_Bejelentkezes(id);
    }
    else {
        Jelszo[id] = adat;
        Beirtjelszot1[id] = true;
        Menu_Bejelentkezes(id);
    }
    return PLUGIN_CONTINUE;
}
public bejelentkezes_felh(id)
{
new adat[32];
new hosszusag = strlen(adat);
read_args(adat, charsmax(adat));
remove_quotes(adat);
if(hosszusag >= 5) 
{
Felhasznalonev[id] = adat;
Beirtfelhasznalot1[id] = true;
Menu_Bejelentkezes(id);
}
else 
{
Felhasznalonev[id] = adat;
Beirtfelhasznalot1[id] = true;
Menu_Bejelentkezes(id);
}
return PLUGIN_CONTINUE;
}
public Fomenu(id)
{
	new String[121];
	format(String, charsmax(String), "%s^n\dDollár: \r%d$", Prefix, Dollar[id]);
	new menu = menu_create(String, "Fomenu_h");
	
	menu_additem(menu, "Raktár", "1", 0);
	menu_additem(menu, "LádaNyitás", "2", 0);
	menu_additem(menu, "Piac", "3", 0);
	
	menu_display(id, menu, 0);
}
public Fomenu_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: Raktar(id);
		case 2: LadaNyitas(id);
		case 3: Piac(id);
	}
}
public LadaNyitas(id)
{
new String[121];
formatex(String, charsmax(String), "%s \r- \dLádaNyitás^n\wKulcs: \d[\r%d DB\d]", Prefix, Kulcs[id]);
new menu = menu_create(String, "Lada_h");

for(new i;i < sizeof(l_Nevek); i++)
{
	new Sor[6]; num_to_str(i, Sor, 5);
	formatex(String, charsmax(String), "%s \d[\r%d DB\d]", l_Nevek[i][0], Lada[i][id]);
	menu_additem(menu, String, Sor);
}
menu_display(id, menu, 0);
}
public Lada_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);
	
	if(Lada[key][id] >= 1 && Kulcs[id] >= 1)
	{
		Lada[key][id] --;
		Kulcs[id] --;
		Talal(id);
	}
	else
	{
		LadaNyitas(id);
		ColorChat(id, GREEN, "%s ^1Nincs ládád vagy kulcsod", C_Prefix);
	}
	LadaNyitas(id);
	
}
public Talal(id)
{
new Nev[32]; get_user_name(id, Nev, 31);
new Float:Szam = random_float(0.01,100.0);
new FegyverID = random_num(0, 127);
new KesID = random_num(128, MAX);

if(Szam <= KESDROP)
{
	OsszesSkin[KesID][id]++;
	ColorChat(id, GREEN, "%s ^1Nyitottál egy ^4%s ^1skint", C_Prefix, Fegyverek[KesID]);
	ColorChat(0, GREEN, "%s ^3%s ^1Nyitott egy kést", C_Prefix, Nev);
}
else
{
	OsszesSkin[FegyverID][id]++;
	ColorChat(id, GREEN, "%s ^1Nyitottál egy ^4%s ^1skint", C_Prefix, Fegyverek[FegyverID]);
}
}

public Raktar(id)
{
	new String[121];
	formatex(String, charsmax(String), "%s \r- \dRaktár", Prefix);
	new menu = menu_create(String, "Raktar_h");
	
	for(new i;i < sizeof(Fegyverek); i++)
	{
		if(OsszesSkin[i][id] > 0)
		{
			new Sor[6]; num_to_str(i, Sor, 5);
			formatex(String, charsmax(String), "%s \d[\r%d DB \d]", Fegyverek[i][0], OsszesSkin[i][id]);
			menu_additem(menu, String, 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);
	
	switch(key) {
                  case 0: Skin[0][id] = 1;
		case 1: Skin[0][id] = 2;
		case 2: Skin[0][id] = 3;
		case 3: Skin[0][id] = 4;
		case 4: Skin[0][id] = 5;
		case 5: Skin[0][id] = 6;
		case 6: Skin[0][id] = 7;
		case 7: Skin[0][id] = 8;
		case 8: Skin[0][id] = 9;
		case 9: Skin[0][id] = 10;
		case 10: Skin[0][id] = 11;
		case 11: Skin[0][id] = 12;
		case 12: Skin[0][id] = 13;
		case 13: Skin[0][id] = 14;
		case 14: Skin[0][id] = 15;
		case 15: Skin[0][id] = 16;
		case 16: Skin[0][id] = 17;
		case 17: Skin[0][id] = 18;
		case 18: Skin[0][id] = 19;
		case 19: Skin[0][id] = 20;
				
		case 36: Skin[1][id] = 1;
		case 37: Skin[1][id] = 2;
		case 38: Skin[1][id] = 3;
		case 39: Skin[1][id] = 4;
		case 40: Skin[1][id] = 5;
		case 41: Skin[1][id] = 6;
		case 42: Skin[1][id] = 7;
		case 43: Skin[1][id] = 8;
		case 44: Skin[1][id] = 9;
		case 45: Skin[1][id] = 10;
		case 46: Skin[1][id] = 11;
		case 47: Skin[1][id] = 12;
		case 48: Skin[1][id] = 13;
		case 49: Skin[1][id] = 14;
		case 50: Skin[1][id] = 15;
		case 51: Skin[1][id] = 16;
		case 52: Skin[1][id] = 17;
		case 53: Skin[1][id] = 18;
		case 54: Skin[1][id] = 19;
		case 55: Skin[1][id] = 20;
		case 56: Skin[1][id] = 21;
		case 57: Skin[1][id] = 22;
		case 58: Skin[1][id] = 23;
		case 59: Skin[1][id] = 24;
		case 60: Skin[1][id] = 25;
		case 61: Skin[1][id] = 26;
		case 62: Skin[1][id] = 27;
		case 63: Skin[1][id] = 28;
		}
}
public Kuka(id)
{
	new String[121];
	formatex(String, charsmax(String), "%s \r- \dKuka", Prefix);
	new menu = menu_create(String, "Kuka_h");
	
	for(new i;i < sizeof(Fegyverek); i++)
	{
		if(OsszesSkin[i][id] > 0)
		{
			new Sor[6]; num_to_str(i, Sor, 5);
			formatex(String, charsmax(String), "%s \d[\r%d DB\d]", Fegyverek[i][0], OsszesSkin[i][id]);
			menu_additem(menu, String, Sor);
		}
	}
	menu_display(id, menu, 0);
}
public Piac(id)
{
	new String[121];
	format(String, charsmax(String), "%s \r- \dPiac^n\dDollár: \r%d$", Prefix, Dollar[id]);
	new menu = menu_create(String, "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), "%s \r- \dEladás", Prefix);
	new menu = menu_create(cim, "eladas_h" );
	
	if(kirakva[id] == 0){
		for(new i=0; i < MAX; i++) {
			if(kicucc[id] == 0) format(ks1, charsmax(ks1), "Válaszd ki a Tárgyat!");
			else if(kicucc[id] == i) format(ks1, charsmax(ks1), "Tárgy: \r%s", Fegyverek[i-1][0]);
		}
		menu_additem(menu, ks1 ,"0",0);
	}
	if(kirakva[id] == 0){
		format(ks2, charsmax(ks2), "\dÁra: \r%d$", Erteke[id]);
		menu_additem(menu,ks2,"1",0);
	}
	if(Erteke[id] != 0 && kirakva[id] == 0)
	{
		menu_additem(menu,"Mehet a piacra!","2",0);
	}
	if(Erteke[id] != 0 && kirakva[id] == 1)
		menu_additem(menu,"\wVisszavoná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 < MAX; i++)
			{
				if(kicucc[id] == i && OsszesSkin[i-1][id] >= 1)
				{
					ColorChat(0, GREEN, "%s ^3%s ^1Kirakott egy ^4%s^1-t a piacra^4 %d$", C_Prefix, name, Fegyverek[i-1][0], Erteke[id]);
					kirakva[id] = 1;
				}
			}
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public fvalaszt(id) {
	new szMenuTitle[ 121 ],cim[121];
	format( szMenuTitle, charsmax( szMenuTitle ), "%s \r- \dVálassz Fegyvert", Prefix);
	new menu = menu_create( szMenuTitle, "fvalaszt_h" );
	
	for(new i=0; i < MAX; i++) {
		if(OsszesSkin[i][id] > 0) {
			new Num[6];
			num_to_str(i, Num, 5);
			formatex(cim, charsmax(cim), "%s \d[\r%d DB\d]", Fegyverek[i][0], OsszesSkin[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 < 300)
	{
		ColorChat(id, GREEN, "%s ^1Nem tudsz eladni fegyvert ^4300 ^1alatt.", C_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), "%s \r- \dVásárlás^nDollár: \r%d$", Prefix, Dollar[id]);
	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 < MAX; a++) {
				if(kicucc[players[i]] == a)
					formatex(mpont,256,"%s \d[Ára: \r%d$\d]", Fegyverek[a-1][0], 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 < MAX; i++) {
		if(Dollar[id] >= Erteke[player] && kicucc[player] == i && kirakva[player] == 1)
		{
			kirakva[player] = 0;
			ColorChat(0, GREEN, "%s ^3%s ^1vett egy ^4%s^1-t ^3%s^1-tól ^4%d$^1-ért!",C_Prefix, name, Fegyverek[i-1][0], name2, Erteke[player]);
			Dollar[player] += Erteke[player];
			Dollar[id] -= Erteke[player];
			OsszesSkin[i-1][id] ++;
			OsszesSkin[i-1][player] --;
			kicucc[player] = 0;
			Erteke[player] = 0;
		}
	}
}
public vido()
{
	pido = 0;
}
public client_disconnect(id)
{
if(!is_user_bot(id))
{
	Update(id);
}
Belepve[id] = false;
Beirtjelszot[id] = false;
Beirtjelszot1[id] = false;
Beirtfelhasznalot[id] = false;
Beirtfelhasznalot1[id] = false;

regFh[id][0] = EOS;
regJelszo[id][0] = EOS;
Felhasznalonev[id][0] = EOS;
Jelszo[id][0] = EOS;

Dollar[id] = 0;
Rang[id] = 0;
Oles[id] = 0;
Kulcs[id] = 0;
Kredit[id] = 0;
Masodpercek[id] = 0;
Regisztralt[id] = 0;
AutoB[id] = 0;

for(new i;i < MAX; i++)
OsszesSkin[i][id] = 0;

for(new i;i < LADA; i++)
Lada[i][id] = 0;

copy(name[id], charsmax(name[]), "");
}
public client_putinserver(id)
{
if(!is_user_bot(id))
{
	get_user_name(id, name[id], charsmax(name));
	Load(id);
}
Gun[id] = true;
Hud[id] = true;
Belepve[id] = false;
Felhasznalonev[id] = "";
Jelszo[id] = "";
}
public plugin_cfg()
{
	g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
	
	static Query[10048];
	new Len;
	
	Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `lbeneawpmod`");
	Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
	Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalonev` varchar(32) NOT NULL,");
	Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,");
	Len += formatex(Query[Len], charsmax(Query)-Len, "`Regisztralt` int(11) NOT NULL,");
	Len += formatex(Query[Len], charsmax(Query)-Len, "`Masodpercek` int(11) NOT NULL,");
	Len += formatex(Query[Len], charsmax(Query)-Len, "`Kredit` int(11) NOT NULL,");
	Len += formatex(Query[Len], charsmax(Query)-Len, "`AutoB` int(11) NOT NULL,");
	Len += formatex(Query[Len], charsmax(Query)-Len, "`Dollar` int(11) NOT NULL,");
	Len += formatex(Query[Len], charsmax(Query)-Len, "`Szint` int(11) NOT NULL,");
	Len += formatex(Query[Len], charsmax(Query)-Len, "`Oles` int(11) NOT NULL,");
	Len += formatex(Query[Len], charsmax(Query)-Len, "`DropOles` int(11) NOT NULL,");
	Len += formatex(Query[Len], charsmax(Query)-Len, "`Vip` int(11) NOT NULL,");
	
	for(new i;i < MAX; i++)
		Len += formatex(Query[Len], charsmax(Query)-Len, "`F%d` int(11) NOT NULL,", i);
	for(new i;i < LADA; i++)
		Len += formatex(Query[Len], charsmax(Query)-Len, "`L%d` int(11) NOT NULL,", i);
	for(new i;i < 2; i++)
		Len += formatex(Query[Len], charsmax(Query)-Len, "`S%d` int(11) NOT NULL,", i);
	
	Len += formatex(Query[Len], charsmax(Query)-Len, "`Kulcs` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
	
	SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
}
public Load(id) {
	static Query[10048];
	new Data[1], Name[32];
	get_user_name(id, Name, 31);
	Data[0] = id;

	formatex(Query, charsmax(Query), "SELECT * FROM `lbeneawpmod` WHERE Nev = ^"%s^";", name[id]);
	SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
}
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) {
			Rang[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Szint"));
			Dollar[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Dollar"));
			Kredit[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kredit"));
			AutoB[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AutoB"));
			Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles"));
			D_Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "DropOles"));
			Vip[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Vip"));
			Masodpercek[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Masodpercek"));
			SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Felhasznalonev"), regFh[id], charsmax(regFh[]));
			SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Jelszo"), regJelszo[id], charsmax(regJelszo[]));
			Regisztralt[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Regisztralt"));
			
			for(new i;i < MAX; i++)
			{
				new String[64];
				formatex(String, charsmax(String), "F%d", i);
				OsszesSkin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
			}
			for(new i;i < LADA; i++)
			{
				new String[64];
				formatex(String, charsmax(String), "L%d", i);
				Lada[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
			}
			for(new i;i < 2; i++)
			{
				new String[64];
				formatex(String, charsmax(String), "S%d", i);
				Skin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
			}
			
			Kulcs[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kulcs"));
		}
		else
		{
			Save(id);
		}
	}
}
public Save(id)
{
static Query[256];
 
formatex(Query, charsmax(Query), "INSERT INTO `lbeneawpmod` (`Nev`) VALUES (^"%s^");", name[id]);
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public SQL_Update_Reg(id)
{
static Query[10048];
new Len;

Len += formatex(Query[Len], charsmax(Query), "UPDATE `lbeneawpmod` SET Felhasznalonev = ^"%s^", ", regFh[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", regJelszo[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Regisztralt = ^"%i^" WHERE Nev = ^"%s^";", Regisztralt[id], name[id]);

SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public Update(id)
{
	static Query[10048];
	new Len;
	
	Len += formatex(Query[Len], charsmax(Query), "UPDATE `lbeneawpmod` SET Dollar = ^"%i^", ",Dollar[id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "Szint = ^"%i^", ", Rang[id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^", ", Oles[id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "DropOles = ^"%i^", ", D_Oles[id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "AutoB = ^"%i^", ", AutoB[id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "Masodpercek = ^"%i^", ", Masodpercek[id]+get_user_time(id));
	Len += formatex(Query[Len], charsmax(Query)-Len, "Kredit = ^"%i^", ", Kredit[id]);
	Len += formatex(Query[Len], charsmax(Query)-Len, "Vip = ^"%i^", ", Vip[id]-get_user_time(id));
	
	for(new i=0;i < MAX; i++)
		Len += formatex(Query[Len], charsmax(Query)-Len, "F%d = ^"%i^", ", i, OsszesSkin[i][id]);
		
	for(new i;i < LADA; i++)
		Len += formatex(Query[Len], charsmax(Query)-Len, "L%d = ^"%i^", ", i, Lada[i][id]);
		
	for(new i;i < 2; i++)
		Len += formatex(Query[Len], charsmax(Query)-Len, "S%d = ^"%i^", ", i, Skin[i][id]);
	
	Len += formatex(Query[Len], charsmax(Query)-Len, "Kulcs = ^"%i^" WHERE Nev = ^"%s^";", Kulcs[id], name[id]);
	
	SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
	if(FailState == TQUERY_CONNECT_FAILED)
		set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
	else if(FailState == TQUERY_QUERY_FAILED)
		set_fail_state("Query Error");
	if(Errcode)
		log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
}
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;
	}
}
public plugin_end() {
	SQL_FreeHandle(g_SqlTuple);
}
public sayhook(id)
{
	new message[192], Name[32], none[2][32], chat[192];
	read_args(message, 191);
	remove_quotes(message);
	
	formatex(none[0], 31, ""), formatex(none[1], 31, " ");
	
	if (message[0] == '@' || message[0] == '/' || message[0] == '#' || message[0] == '!' || equal (message, ""))
		return PLUGIN_HANDLED;
	
	if(!equali(message, none[0]) && !equali(message, none[1]))
	{
		get_user_name(id, Name, 31);
		if(is_user_alive(id))
		{
			if(Regisztralt[id] == 0)
				formatex(chat, 191, "^x04[Nem Regisztrált]^x03%s^x01: %s", Name, message);
			else if(get_user_flags(id) & TULAJ && Belepve[id] == true)
				formatex(chat, 191, "^x04[Tulajdonos][%s]^3%s^x04: %s", Rangok[Rang[id]][Szint], Name, message);
			else if(get_user_flags(id) & ADMIN && Belepve[id] == true)
				formatex(chat, 191, "^x04[Admin][%s]^x03%s^x04: %s", Rangok[Rang[id]][Szint], Name, message);
			else if(get_user_flags(id) & VIP && Belepve[id] == true)
				formatex(chat, 191, "^x04[VIP][%s]^x03%s^x04: %s", Rangok[Rang[id]][Szint], Name, message);
			else if(Belepve[id] == true)
				formatex(chat, 191, "^x04[%s]^x03%s^x01: %s", Rangok[Rang[id]][Szint], Name, message);
			else if(Regisztralt[id] == 1)
				formatex(chat, 191, "^x04[Kijelentkezve]^x03 %s^x01: %s", Name, message);
		}
		else {
			get_user_team(id, color, 9);
			if(Regisztralt[id] == 0)
				formatex(chat, 191, "^x01*Halott*^x04[Nincs Regisztrálva]^x03 %s^x01: %s", Name, message);
			else if(get_user_flags(id) & TULAJ && Belepve[id] == true)
				formatex(chat, 191, "^x01*Halott*^x04[Tulajdonos][%s]^3 %s^x04: %s", Rangok[Rang[id]][Szint], Name, message);
			else if(get_user_flags(id) & ADMIN && Belepve[id] == true)
				formatex(chat, 191, "^x01*Halott*^x04[Admin][%s]^x03 %s^x04: %s", Rangok[Rang[id]][Szint], Name, message);
			else if(get_user_flags(id) & VIP && Belepve[id] == true)
				formatex(chat, 191, "^x01*Halott*^x04[VIP][%s]^x03 %s^x04: %s", Rangok[Rang[id]][Szint], Name, message);
			else if(Belepve[id] == true)
				formatex(chat, 191, "^x01*Halott*^x04[%s]^x03 %s^x01: %s", Rangok[Rang[id]][Szint], Name, message);
			else if(Regisztralt[id] == 1)
				formatex(chat, 191, "^x01*Halott*^x04[Kijelentkezve]^x03 %s^x01: %s", Name, message);
		}
		
		
		switch(cs_get_user_team(id))
		{
			case 1: ColorChat(0, RED, chat);
			case 2: ColorChat(0, BLUE, chat);
		}
		if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
			ColorChat(0, GREY, chat);
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}
public sendmessage(color[])
{
	new teamName[10];
	for(new player = 1; player < get_maxplayers(); player++)
	{
		get_user_team (player, teamName, 9);
		teamf (player, color);
		elkuldes(player, Temp);
		teamf(player, teamName);
	}
}
public teamf(player, team[])
{
	message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, player);
	write_byte(player);
	write_string(team);
	message_end();
}
public elkuldes(player, Temp[])
{
	message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, player);
	write_byte( player );
	write_string( Temp );
	message_end();
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
