#include <amxmodx>
    #include <amxmisc>
    #include <hamsandwich>
    #include <cstrike>
    #include <engine>
    #include <fun>
    #include <fakemeta>
    #include <sqlx>
     
    #define PLUGIN  "New Plugin"
    #define AUTHOR  "Unknown"
    #define VERSION "1.0"
     
    #define MAXPLAYERS 33
    #define TULAJ ADMIN_IMMUNITY
    #define ADMIN ADMIN_BAN
    #define VIP ADMIN_LEVEL_H
     
    new const SQL_INFO[][] = {"","","",""};
     
    enum eCvar{eCpref,eMpref,};
    new cvarS[eCvar];
    enum ePlayer{eKills, eUnclockedSkin};
    new Player[ePlayer][MAXPLAYERS];
    enum _:eWData {eWName[64],eWFile[64],eWKill,eWType[64],};
    new iActiveSkin[13][33], iWeaponKills[13][33], iLoadedSkins, iTempID, iMaxPlayers, iChoosedMode, gSteamID[128], SyncHud;
    new Handle:SqlTuple;
    new Array: aWSkins;
     
    public plugin_init(){
        register_plugin(PLUGIN, VERSION, AUTHOR);
       
        register_impulse(201, "main_menu");
        register_clcmd("say /menu", "main_menu");
       
        cvarS[eCpref] = register_cvar("C_Pref", "^4[.:White*_*Fire:.]^3");
        cvarS[eMpref] = register_cvar("M_Pref", "\y[.:White*_*Fire:.]\y");
       
        register_clcmd("type_itemremoveoradd", "type_itemammount");
       
        RegisterHam(Ham_Killed, "player", "PlayerKilled_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_m4a1", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_ak47", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_awp", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_scout", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_famas", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_galil", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_aug", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_m3", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_xm1014", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_knife", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_deagle", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_usp", "WeaponChange_p", 1);
        RegisterHam(Ham_Item_Deploy, "weapon_glock18", "WeaponChange_p", 1);
       
        register_clcmd("say", "sayhook");
        register_clcmd("say_team", "sayteamhook");
       
        iMaxPlayers = get_maxplayers();
        SyncHud = CreateHudSyncObj();
    }
    public InfoHud(id)
    {
        new eData[eWData];
        new idT;
        new Target = pev(id, pev_iuser1) == 4 ? pev(id, pev_iuser2) : id;
        idT = is_user_alive(id) ? id:Target;
        new iWeapon = get_user_weapon(idT);
        set_hudmessage(0, 255, 0, -1.0, 0.80, 0, 6.0, 1.1, 0.1, 0.2, -1);
       
        set_task(1.0, "InfoHud", id);
       
        switch(iWeapon){
            case CSW_M4A1: {if(iActiveSkin[0][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;} ArrayGetArray(aWSkins, iActiveSkin[0][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[0][id]);}
            case CSW_AK47: {if(iActiveSkin[1][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[1][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[1][id]);}
            case CSW_AWP: {if(iActiveSkin[2][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[2][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[2][id]);}
            case CSW_SCOUT: {if(iActiveSkin[3][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[3][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[3][id]);}
            case CSW_FAMAS: {if(iActiveSkin[4][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[4][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[4][id]);}
            case CSW_GALIL: {if(iActiveSkin[5][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[5][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[5][id]);}
            case CSW_AUG: {if(iActiveSkin[6][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[6][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[6][id]);}
            case CSW_M3: {if(iActiveSkin[7][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[7][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[7][id]);}
            case CSW_XM1014: {if(iActiveSkin[8][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[8][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[8][id]);}
            case CSW_KNIFE: {if(iActiveSkin[9][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[9][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[9][id]);}
            case CSW_DEAGLE: {if(iActiveSkin[10][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[10][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[10][id]);}
            case CSW_USP: {if(iActiveSkin[11][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[11][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[11][id]);}
            case CSW_GLOCK18:{if(iActiveSkin[12][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[12][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[12][id]);}
        }
    }
    public plugin_precache(){
        LoadSkins();
    }
    public LoadSkins(){
        aWSkins = ArrayCreate(eWData);
        new sPath[40];
        get_configsdir(sPath, charsmax(sPath));
        format(sPath, charsmax(sPath), "%s/skins.ini", sPath);
       
        if(!file_exists(sPath)){
            log_amx("[HIBA]: Ez a f??jl nem l??tezik: (%s).", sPath);
            return;
        }
       
        if(file_exists(sPath)){
            enum aDatas{eName[64],eFile[64],eKill2[64],eType[64],};
            new sData[aDatas];
           
            new sLineData[512], iLine;
            new iFile = fopen(sPath, "rt");
           
            while(!feof(iFile)){
                fgets(iFile, sLineData, charsmax(sLineData));
                replace(sLineData, charsmax(sLineData), "^n", "");
               
                if(sLineData[0] == ';' || !sLineData[0]) continue;
               
                parse(sLineData, sData[eName], charsmax(sData), sData[eFile], charsmax(sData), sData[eKill2], charsmax(sData),
                sData[eType], charsmax(sData));
               
                remove_quotes(sData[eName]);remove_quotes(sData[eFile]);
                remove_quotes(sData[eKill2]);remove_quotes(sData[eType]);
               
                new eData[eWData];
                copy(eData[eWName], sizeof(eData[eWName]) - 1, sData[eName]);
                copy(eData[eWFile], sizeof(eData[eWFile]) - 1, sData[eFile]);
                eData[eWKill] = str_to_num(sData[eKill2]);        
                copy(eData[eWType], sizeof(sData[eWType])- 1, sData[eType]);
               
                ArrayPushArray(aWSkins, eData);
                precache_model(eData[eWFile]);
                iLine++;
            }
            fclose(iFile);
            iLoadedSkins = iLine;
        }
    }
    public WeaponChange_p(iEnt){
        if(!pev_valid(iEnt))
            return HAM_IGNORED
       
        new id = get_pdata_cbase(iEnt, 41, 4);
       
        if(!is_user_alive(id) || !is_user_connected(id))
            return HAM_IGNORED;
       
        new eData[eWData];
        new iWeapon = cs_get_weapon_id(iEnt);
        switch(iWeapon){
            case CSW_M4A1: {if(iActiveSkin[0][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[0][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_AK47: {if(iActiveSkin[1][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[1][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_AWP: {if(iActiveSkin[2][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[2][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_SCOUT: {if(iActiveSkin[3][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[3][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_FAMAS: {if(iActiveSkin[4][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[4][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_GALIL: {if(iActiveSkin[5][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[5][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_AUG: {if(iActiveSkin[6][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[6][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_M3: {if(iActiveSkin[7][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[7][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_XM1014: {if(iActiveSkin[8][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[8][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_KNIFE: {if(iActiveSkin[9][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[9][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_DEAGLE: {if(iActiveSkin[10][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[10][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_USP: {if(iActiveSkin[11][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[11][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
            case CSW_GLOCK18: {if(iActiveSkin[12][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[12][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
        }
        return HAM_IGNORED;
    }
    public PlayerKilled_p(iVictim, iKiller){
        if(iVictim == iKiller || !iKiller || !iVictim)
            return PLUGIN_HANDLED;
       
        new iWeapon = get_user_weapon(iKiller);
       
        Player[eKills][iKiller]++;
        hp_up(iKiller);
       
        switch(iWeapon){
            case CSW_M4A1:{
                iWeaponKills[0][iKiller] += 2;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[M4a1 fegyver]^1 Jutalom ^3[ +2 M4a1 Pont]", get_prefix(0));
            }
            case CSW_AK47:{
                iWeaponKills[1][iKiller] += 2;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[AK47 fegyver]^1 Jutalom ^3[ +2 AK47 Pont]", get_prefix(0));
            }
            case CSW_AWP:{
                iWeaponKills[2][iKiller] += 2;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[AWP fegyver]^1 Jutalom ^3[ +2 AWP Pont]", get_prefix(0));
            }
            case CSW_SCOUT:{
                iWeaponKills[3][iKiller] += 2;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[SCOUT fegyver]^1 Jutalom ^3[ +2 SCOUT Pont]", get_prefix(0));
            }
            case CSW_FAMAS:{
                iWeaponKills[4][iKiller] += 2;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[FAMAS fegyver]^1 Jutalom ^3[ +2 FAMAS Pont]", get_prefix(0));
            }
            case CSW_GALIL:{
                iWeaponKills[5][iKiller] += 3;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[GALIL fegyver]^1 Jutalom ^3[ +2 GALIL Pont]", get_prefix(0));
            }
            case CSW_AUG:{
                iWeaponKills[6][iKiller] += 3;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[AUG fegyver]^1 Jutalom ^3[ +2 AUG Pont]", get_prefix(0));
            }
            case CSW_M3:{
                iWeaponKills[7][iKiller] += 3;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[M3 fegyver]^1 Jutalom ^3[ +2 M3 Pont]", get_prefix(0));
            }
            case CSW_XM1014:{
                iWeaponKills[8][iKiller] += 2;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[XM1014 fegyver]^1 Jutalom ^3[ +2 XM1014 Pont]", get_prefix(0));
            }
            case CSW_KNIFE:{
                iWeaponKills[9][iKiller] += 3;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[KNIFE fegyver]^1 Jutalom ^3[ +2 KNIFE Pont]", get_prefix(0));
            }
            case CSW_DEAGLE:{
                iWeaponKills[10][iKiller] += 2;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[DEAGLE fegyver]^1 Jutalom ^3[ +2 DEAGLE Pont]", get_prefix(0));
            }
            case CSW_USP:{
                iWeaponKills[11][iKiller] += 2;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[USP fegyver]^1 Jutalom ^3[ +2 USP Pont]", get_prefix(0));
            }
            case CSW_GLOCK18:{
                iWeaponKills[12][iKiller] += 3;
                client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[GLOCK18 fegyver]^1 Jutalom ^3[ +2 GLOCK18 Pont]", get_prefix(0));
            }
        }
        return PLUGIN_HANDLED;
    }
    public hp_up(id)
    {
        new iHealth = get_user_health(id);
       
        if(iHealth < 100)
            set_user_health(id, iHealth + 5);
        if(iHealth > 100)
            set_user_health(id, 110);
    }
    public main_menu(id){
        new sTitle[128];
        format(sTitle, charsmax(sTitle), "%s \dFőmenü", get_prefix(1));
        new iMenu = menu_create(sTitle, "menu_main_h");
       
        formatex(sTitle, charsmax(sTitle), "\wFegyver Skinek");
        menu_additem(iMenu, sTitle, "1", 0);
        menu_additem(iMenu, "\wAdatkezelő", "2", 0);
       
        menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
        menu_display(id, iMenu, 0);
    }
    public menu_main_h(id, iMenu, iItem){
        if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
       
        new sData[10], sName[64];
        new iAccess, iCallback;
        menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
        new iKey = str_to_num(sData);
       
        switch(iKey)
        {
            case 1:  menu_storage(id);
                case 2: adminmenuopen(id);
            }
        playspk(id);
    }
    public menu_storage(id){
        new sTitle[128];
        format(sTitle, charsmax(sTitle), "%s \dVálassz fegyvert", get_prefix(1));
        new iMenu = menu_create(sTitle, "menu_storage_h");
       
        menu_additem(iMenu, "\rM4A1 \ySkinek", "0", 0);
        menu_additem(iMenu, "\rAK47 \ySkinek", "1", 0);
        menu_additem(iMenu, "\rAWP \ySkinek", "2", 0);
        menu_additem(iMenu, "\rSCOUT \ySkinek", "3", 0);
        menu_additem(iMenu, "\rFAMAS \ySkinek", "4", 0);
        menu_additem(iMenu, "\rGALIL  \ySkinek", "5", 0);
        menu_additem(iMenu, "\rAUG \ySkinek", "6", 0);
        menu_additem(iMenu, "\rM3 \ySkinek", "7", 0);
        menu_additem(iMenu, "\rXM1014 \ySkinek", "8", 0);
        menu_additem(iMenu, "\rKNIFE \ySkinek", "9", 0);
        menu_additem(iMenu, "\rDEAGLE \ySkinek", "10", 0);
        menu_additem(iMenu, "\rUSP \ySkinek", "11", 0);
        menu_additem(iMenu, "\rGLOCK18 \ySkinek", "12", 0);
       
        menu_setprop(iMenu, MPROP_EXITNAME, "Kilepes");
        menu_setprop(iMenu, MPROP_BACKNAME, "Vissza");
        menu_setprop(iMenu, MPROP_NEXTNAME, "Tovabb");
        menu_display(id, iMenu, 0);
    }
    public menu_storage_h(id, iMenu, iItem){
        if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
       
        new sData[10], sName[64];
        new iAccess, iCallback;
        menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
        new iKey = str_to_num(sData);
       
        switch(iKey){
            case 0..12:  WeaponSkins(id, iKey);
            }
        playspk(id);
    }
    public WeaponSkins(id, iWhich){
        new sTitle[128], sRow[8];
        new eData[eWData];
        format(sTitle, charsmax(sTitle), "%s \dFegyver Skinek", get_prefix(1));
        new iMenu = menu_create(sTitle, "WeaponSkins_h");
       
        switch(iWhich){
            case 0:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "M4A1")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 1:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "AK47")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 2:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "AWP")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 3:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "SCOUT")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 4:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "FAMAS")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 5:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "GALIL")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 6:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "AUG")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 7:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "M3")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 8:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "XM1014")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 9:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "KNIFE")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 10:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "DEAGLE")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 11:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "USP")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
            case 12:{
                for(new i; i < iLoadedSkins; i++)
                {
                    ArrayGetArray(aWSkins, i, eData);
                    if(equali(eData[eWType], "GLOCK18")){
                        num_to_str(i, sRow, 7);
                        if(Player[eKills][id] < eData[eWKill])
                            formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
                        else
                            formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
                        menu_additem(iMenu, sTitle, sRow);
                    }
                }
            }
        }
        menu_setprop(iMenu, MPROP_EXITNAME, "Kil??p??s");
        menu_setprop(iMenu, MPROP_BACKNAME, "Vissza");
        menu_setprop(iMenu, MPROP_NEXTNAME, "Tov??bb");
        menu_display(id, iMenu, 0);
    }
    public WeaponSkins_h(id, iMenu, iItem){
        if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
       
        new sData[10], sName[64];
        new iAccess, iCallback;
        new eData[eWData];
        menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
        new iKey = str_to_num(sData);
       
        ArrayGetArray(aWSkins, iKey, eData);
       
        if(equali(eData[eWType], "M4A1")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[0][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "Ak47")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[1][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "AWP")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[2][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "SCOUT")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[3][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "FAMAS")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[4][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "GALIL")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[5][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "AUG")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[6][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "M3")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[7][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "XM1014")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[8][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "KNIFE")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[9][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "DEAGLE")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[10][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "USP")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[11][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        else if(equali(eData[eWType], "GLOCK18")){
            if(Player[eKills][id] < eData[eWKill])
                client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
            else{
                iActiveSkin[12][id] = iKey;
                client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
            }
        }
        playspk(id);
    }
    public adminmenuopen(id){
        new sTitle[128];
        format(sTitle, charsmax(sTitle), "%s \dJátékosok kezelése", get_prefix(1));
        new iMenu = menu_create(sTitle, "adminmenuopen_h");
       
        menu_additem(iMenu, "\wPont adás", "1", 0);
        menu_additem(iMenu, "\wPont elvétel", "2", 0);
       
        menu_setprop(iMenu, MPROP_EXITNAME, "Kil??p??s");
        menu_display(id, iMenu, 0);
    }
    public adminmenuopen_h(id, iMenu, iItem){
        if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
       
        new sData[10], sName[64];
        new iAccess, iCallback;
        menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
        new iKey = str_to_num(sData);
       
        switch(iKey){
            case 1:  {menu_chooseplayer(id); iChoosedMode = 0;}
            case 2: {menu_chooseplayer(id); iChoosedMode = 1;}
        }
        playspk(id);
    }
    public menu_chooseplayer(id){
        new sTitle[128], iPlayers[32], iPNum, iId, sName[64], sId[10];
        format(sTitle, charsmax(sTitle), "%s \dVálassz játékost", get_prefix(1));
        new iMenu = menu_create(sTitle, "menu_chooseplayer_h");
       
        get_players(iPlayers, iPNum);
       
        for(new i; i < iPNum; i++)
        {
            iId = iPlayers[i];
            if(is_user_bot(iId) || !is_user_connected(iId))
                continue;
           
            get_user_name(iId, sName, charsmax(sName));
            num_to_str(iId, sId, charsmax(sId));    
            menu_additem(iMenu, sName, sId, 0);          
        }
       
        menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
        menu_display(id, iMenu, 0);
    }
    public menu_chooseplayer_h(id, iMenu, iItem){
        if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
       
        new sData[10], sName[64];
        new iAccess, iCallback;
        menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
        iTempID = str_to_num(sData);
       
        client_cmd(id, "messagemode type_itemremoveoradd");
        playspk(id);
    }
    public type_itemammount(id){
        new sItem[128], iItemAmmount, sSenderName[64], sTargetName[64];
        read_args(sItem, charsmax(sItem));
        remove_quotes(sItem);
       
        get_user_name(id, sSenderName, charsmax(sSenderName));
        get_user_name(iTempID, sTargetName, charsmax(sTargetName));
       
        iItemAmmount = str_to_num(sItem);
       
        if(iItemAmmount < 0){
            client_print_color(id, print_team_blue, "%s ^1Nem írhasz nulla értéket!.", get_prefix(0));
            return PLUGIN_HANDLED;
        }
       
        switch(iChoosedMode){
            case 0:{
               
                for(new i = 0; i < 13; i++)
                    iWeaponKills[i][iTempID] += iItemAmmount;
               
                client_print_color(id, print_team_blue, "%s ^1Sikeresen jóváírtak:^4 %d ^1t, neki:^4 %s", get_prefix(0), iItemAmmount, sTargetName);
                client_print_color(iTempID, print_team_blue, "%s ^1Jóváírtak neked^4 %d ^1pontot! BY:^4 %s", get_prefix(0), iItemAmmount, sTargetName);
                client_print_color(id, print_team_blue, "^3 Admin: %s | Játékos: %s | összeg: %d | Tíus: pont jóváírás", sSenderName, sTargetName, iItemAmmount);
                return PLUGIN_HANDLED;
            }
            case 1:{
                for(new i = 0; i < 13; i++)
                    iWeaponKills[i][iTempID] -= iItemAmmount;
               
                client_print_color(id, print_team_blue, "%s ^1Sikeresen elvettek:^4 %d ^1, t?e:^4 %s", get_prefix(0), iItemAmmount, sTargetName);
                client_print_color(iTempID, print_team_blue, "%s ^1Elvettek tőled^4 %d ^1pontot! BY:^4 %s", get_prefix(0), iItemAmmount, sTargetName);
                client_print_color(id, print_team_blue, "^3 Admin: %s | Játékos: %s | összeg: %d | Tius: Pont elvétel", sSenderName, sTargetName, iItemAmmount);
                return PLUGIN_HANDLED;
            }
        }  
        return PLUGIN_HANDLED;
    }
    public client_disconnected(id){
        if(is_user_bot(id))
            return;
       
        Update(id);
       
        Player[eKills][id] = 0;
        Player[eUnclockedSkin][id] = 0;
       
        for(new i = 0; i < 13; i++)
            iActiveSkin[i][id] = -1;
        for(new i = 0; i < 13; i++)
            iWeaponKills[i][id] = 0;
    }
    public client_putinserver(id){
        if(is_user_bot(id))
            return;
       
        for(new i = 0; i < 13; i++)
            iActiveSkin[i][id] = -1;
        for(new i = 0; i < 13; i++)
            iWeaponKills[i][id] = 0;
       
        SQL_load(id);
        InfoHud(id);
    }
    public plugin_cfg(){
        new iLen, sQuery[2048];
        SqlTuple = SQL_MakeDbTuple(SQL_INFO[0], SQL_INFO[1], SQL_INFO[2], SQL_INFO[3])
        iLen += formatex(sQuery[iLen], charsmax(sQuery), "CREATE TABLE IF NOT EXISTS `SkinMenu`")
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "(`Steamid` varchar(128) NOT NULL, ")
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`UnlockedSkin` int(11) NOT NULL,");
       
        for(new i = 0; i < 13; i++)
            iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`WK%d` int(11) NOT NULL,", i);
       
        for(new i = 0; i < 13; i++)
            iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`MentettSkin_%d` int(11) NOT NULL,", i);
       
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`Olesek` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
        SQL_ThreadQuery(SqlTuple, "createTableThread", sQuery);
    }
    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 SQL_load(id){
        new Data[1], sQuery[2048];
        Data[0] = id;
        get_user_authid(id, gSteamID, charsmax(gSteamID))
       
        formatex(sQuery, charsmax(sQuery), "SELECT * FROM `SkinMenu` WHERE Steamid = ^"%s^";", gSteamID);
        SQL_ThreadQuery(SqlTuple, "SQL_load_thr", sQuery, Data, 1)
    }
    public SQL_load_thr(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime){
        if(FailState == TQUERY_CONNECT_FAILED)
            set_fail_state("[*HIBA*] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!");
        else if(FailState == TQUERY_QUERY_FAILED)
            set_fail_state("[*HIBA*] A LEKERDEZES MEGSZAKADT!");
        if(Errcode)
            log_amx("[*HIBA*] PROBLEMA A LEKERDEZESNEL! ( %s )",Error);
       
        new id = Data[0];
       
        if(SQL_NumRows(Query) > 0){
            Player[eUnclockedSkin][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "UnlockedSkin"));
            for(new i = 0; i < 13; i++){
                new sString[64];
                formatex(sString, charsmax(sString), "WK%d", i);
                iWeaponKills[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, sString));
            }
            for(new i = 0; i < 13; i++){
                new sString[64];
                formatex(sString, charsmax(sString), "MentettSkin_%d", i);
                iActiveSkin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, sString));
            }
            Player[eKills][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Olesek"));
        }
        else
            SQL_Save(id);
    }
    public Update(id){
        new iLen, sQuery[2048];
        get_user_authid(id, gSteamID, charsmax(gSteamID))
       
        iLen += formatex(sQuery[iLen], charsmax(sQuery), "UPDATE `SkinMenu` SET UnlockedSkin = ^"%i^", ", Player[eUnclockedSkin][id]);
       
        for(new i = 0; i < 13; i++)
            iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "WK%d = ^"%i^", ", i, iWeaponKills[i][id]);
       
        for(new i = 0; i < 13; i++)
            iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "MentettSkin_%d = ^"%i^", ", i, iActiveSkin[i][id]);
       
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "Olesek = ^"%i^" WHERE Steamid = ^"%s^";", Player[eKills][id], gSteamID);
       
        SQL_ThreadQuery(SqlTuple, "QuerySetData", sQuery)
    }
    public SQL_Save(id){
        new sQuery[2048]
        get_user_authid(id, gSteamID, charsmax(gSteamID))
       
        formatex(sQuery, charsmax(sQuery), "INSERT INTO `SkinMenu` (`Steamid`) VALUES (^"%s^");", gSteamID);
        SQL_ThreadQuery(SqlTuple, "QuerySetData", sQuery);
    }
    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(SqlTuple);
    }
    public sayhook(id){
        new Message[192];
        read_args(Message, charsmax(Message))
        remove_quotes(Message)
       
        if(strlen(Message) == 0 || Message[0] == '/')
            return PLUGIN_HANDLED_MAIN;
       
        new Death[16], sName[MAX_NAME_LENGTH];
        get_user_name(id, sName, charsmax(sName));
       
        new sRank[64], sColor[16];
       
        switch(get_user_flags(id)){
            case TULAJ:{ sRank = "^4[^3Tulajdonos^4]"; sColor = "^4";}
            case ADMIN:{ sRank = "^4[^3Admin^4]"; sColor = "^4";}
            case VIP:{ sRank = "^4[^3VIP^4]"; sColor = "^3";}
            default:{ sRank = "^4[^3Játékos^4]"; sColor = "^1";}
        }
        for(new i = 1; i <= iMaxPlayers; i++){
            if(is_user_connected(i) && !is_user_bot(i)){
                formatex(Death, charsmax(Death), is_user_alive(id) ? "":"*Halott*");
                client_print_color(i, print_team_default, "%s%s^3%s: %s%s", Death, sRank, sName, sColor, Message);
            }
        }
        return PLUGIN_HANDLED_MAIN;
    }
    public sayteamhook(id){
        new Message[192];
        read_args(Message, charsmax(Message))
        remove_quotes(Message)
       
        if(strlen(Message) == 0 || Message[0] == '/')
            return PLUGIN_HANDLED_MAIN;
       
        new Death[16], sName[MAX_NAME_LENGTH];
        get_user_name(id, sName, charsmax(sName));
       
        new iTeam, sTeam[32];
        iTeam = get_user_team(id, sTeam, charsmax(sTeam));
       
        switch(iTeam){
            case CS_TEAM_CT: sTeam = "CT";
                case CS_TEAM_T: sTeam = "T";
                case CS_TEAM_SPECTATOR: sTeam = "SPEC";
            }
        for(new i = 1; i <=  iMaxPlayers; i++){
            if(is_user_connected(i) && !is_user_bot(i) || get_user_flags(id) & ADMIN_BAN){
                formatex(Death, charsmax(Death), is_user_alive(id) ? "":"*Halott*");
                client_print_color(i, print_team_default, "%s^3(%s)^1%s: ^3%s", Death, sTeam, sName, Message);
            }
        }
        return PLUGIN_HANDLED_MAIN;
    }
    stock get_prefix(which){
        new sPrefix[32];
        if(which == 0)
            get_pcvar_string(cvarS[eCpref], sPrefix, charsmax(sPrefix));
        else if(which == 1)
            get_pcvar_string(cvarS[eMpref], sPrefix, charsmax(sPrefix));
       
        return sPrefix;
    }
    public playspk(id){
        client_cmd(id, "spk buttons/lightswitch2");
    }