#include <amxmodx>
#include <engine>
#include <hamsandwich>
#include <cstrike>
#include <sqlx>
 
#define PLUGIN "Weap kills"
#define VERSION "1.666"
#define AUTHOR "mforce"
 
new const PREFIX[] = "WorldSniper";
 
#define KILL_POINT 1
#define HEADSHOT_POINT 2
 
new const SQL_INFO[][] = {
    "127.0.0.1",    // HOST
    "username",     // USERNAME
    "password",     // PASSWORD
    "database"      // DATABASE
}
 
new Handle:g_SqlTuple;
 
new const POINTS[] = {
    500,        // Rusty Snipers,   0. elem
    1000,       // Silver Snipers,  1.
    2000,       // Gold Snipers,    2.
    100,        // Rusty Pistols,   3.
    200,        // Silver Pistols,  4.
    300,        // Gold Pistols,    5.
    50,     // Rusty Knife,     6.
    100,        // Silver Knife,    7.
    150     // Gold Knife,      8.
};
 
enum _:PLAYER_DATABASE
{
    USERNAME[32],
    AWP_KILLS,
    SCOUT_KILLS,
    DEAGLE_KILLS,
    USP_KILLS,
    GLOCK_KILLS,
    KNIFE_KILLS,
    AWP_MENU,
    SCOUT_MENU,
    DEAGLE_MENU,
    USP_MENU,
    GLOCK_MENU,
    KNIFE_MENU
}
 
new player_data[33][PLAYER_DATABASE];
 
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("weap_kills", AUTHOR, FCVAR_SERVER | FCVAR_SPONLY);
    register_clcmd("say /menu", "ShowMenu")
    register_event("DeathMsg", "halal", "a")
    new const WEAPONENTNAMES[][] = {"weapon_awp", "weapon_scout", "weapon_deagle", "weapon_usp", "weapon_glock18", "weapon_knife"};
    for(new i; i < sizeof(WEAPONENTNAMES); i++) {
        RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "OnItemDeployPost", 1);
    }
    set_task(172.0, "pontrendszerfut", 0, _, _, "b");
}
 
new const fegyverek[][] = {
    "models/weap_skins/p_rozsdas_awp.mdl",      // 0. elem
    "models/weap_skins/v_rozsdas_awp.mdl",      // 1
    "models/weap_skins/p_silver_awp.mdl",       // 2
    "models/weap_skins/v_silver_awp.mdl",       // 3
    "models/weap_skins/p_arany_awp.mdl",        // 4
    "models/weap_skins/v_arany_awp.mdl",        // 5
    "models/weap_skins/p_rozsdas_scout.mdl",    // 6
    "models/weap_skins/v_rozsdas_scout.mdl",    // 7
    "models/weap_skins/p_silver_scout.mdl",     // 8
    "models/weap_skins/v_silver_scout.mdl",     // 9
    "models/weap_skins/p_arany_scout.mdl",      // 10
    "models/weap_skins/v_arany_scout.mdl",      // 11
    "models/weap_skins/p_rozsdas_deagle.mdl",   // 12
    "models/weap_skins/v_rozsdas_deagle.mdl",   // 13
    "models/weap_skins/p_silver_deagle.mdl",    // 14
    "models/weap_skins/v_silver_deagle.mdl",    // 15
    "models/weap_skins/p_arany_deagle.mdl",     // 16
    "models/weap_skins/v_arany_deagle.mdl",     // 17
    "models/weap_skins/p_rozsdas_usp.mdl",      // 18
    "models/weap_skins/v_rozsdas_usp.mdl",      // 19
    "models/weap_skins/p_silver_usp.mdl",       // 20
    "models/weap_skins/v_silver_usp.mdl",       // 21
    "models/weap_skins/p_arany_usp.mdl",        // 22
    "models/weap_skins/v_arany_usp.mdl",        // 23
    "models/weap_skins/p_rozsdas_glock.mdl",    // 24
    "models/weap_skins/v_rozsdas_glock.mdl",    // 25
    "models/weap_skins/p_silver_glock.mdl",     // 26
    "models/weap_skins/v_silver_glock.mdl",     // 27
    "models/weap_skins/p_arany_glock.mdl",      // 28
    "models/weap_skins/v_arany_glock.mdl",      // 29
    "models/weap_skins/p_rozsdas_knife.mdl",    // 30
    "models/weap_skins/v_rozsdas_knife.mdl",    // 31
    "models/weap_skins/p_silver_knife.mdl",     // 32
    "models/weap_skins/v_silver_knife.mdl",     // 33
    "models/weap_skins/p_arany_knife.mdl",      // 34
    "models/weap_skins/v_arany_knife.mdl"       // 35
};
 
public OnItemDeployPost(ent) {
    new id = entity_get_edict(ent, EV_ENT_owner);
   
    if(id) {
        new weap = cs_get_weapon_id(ent);
       
        switch(weap) {
            case CSW_AWP: {
                switch(player_data[id][AWP_MENU]) {
                    case 1: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[0])  // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[1])    // v_modell
                    }
                    case 2: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[2])  // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[3])    // v_modell
                    }
                    case 3: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[4])  // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[5])    // v_modell
                    }
                }
            }
            case CSW_SCOUT: {
                switch(player_data[id][SCOUT_MENU]) {
                    case 1: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[6])  // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[7])    // v_modell
                    }
                    case 2: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[8])  // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[9])    // v_modell
                    }
                    case 3: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[10]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[11])   // v_modell
                    }
                }
            }
            case CSW_DEAGLE: {
                switch(player_data[id][DEAGLE_MENU]) {
                    case 1: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[12]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[13])   // v_modell
                    }
                    case 2: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[14]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[15])   // v_modell
                    }
                    case 3: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[16]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[17])   // v_modell
                    }
                }
            }
            case CSW_USP: {
                switch(player_data[id][USP_MENU]) {
                    case 1: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[18]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[19])   // v_modell
                    }
                    case 2: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[20]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[21])   // v_modell
                    }
                    case 3: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[22]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[23])   // v_modell
                    }
                }
            }
            case CSW_GLOCK18: {
                switch(player_data[id][GLOCK_MENU]) {
                    case 1: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[24]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[25])   // v_modell
                    }
                    case 2: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[26]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[27])   // v_modell
                    }
                    case 3: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[28]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[29])   // v_modell
                    }
                }
            }
            case CSW_KNIFE: {
                switch(player_data[id][KNIFE_MENU]) {
                    case 1: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[30]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[31])   // v_modell
                    }
                    case 2: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[32]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[33])   // v_modell
                    }
                    case 3: {
                        entity_set_string(id, EV_SZ_weaponmodel, fegyverek[34]) // p_modell
                        entity_set_string(id, EV_SZ_viewmodel, fegyverek[35])   // v_modell
                    }
                }
            }
        }
    }
}
 
public plugin_precache() {
    for(new i; i<sizeof(fegyverek);i++) precache_model(fegyverek[i]);
}
 
public halal() {
    new killer = read_data(1);
    new victim = read_data(2);
    new headshot = read_data(3);
 
    if(killer != victim) {
        new points = (headshot ? HEADSHOT_POINT:KILL_POINT);
        new weapon[32]; read_data(4, weapon, charsmax(weapon));
        new weapid = get_weaponid(weapon);
       
        switch(weapid) {
            case CSW_AWP: player_data[killer][AWP_KILLS] += points;
            case CSW_SCOUT: player_data[killer][SCOUT_KILLS] += points;
            case CSW_DEAGLE: player_data[killer][DEAGLE_KILLS] += points;
            case CSW_USP: player_data[killer][USP_KILLS] += points;
            case CSW_GLOCK18:  player_data[killer][GLOCK_KILLS] += points;
            case CSW_KNIFE: player_data[killer][KNIFE_KILLS] += points;
        }
       
        set_hudmessage(0, 255, 0, -0.9, 0.15, 0, 6.0, 1.0);
        show_hudmessage(killer, "+%i Ölés", points);
    }
}
 
public pontrendszerfut() ChatColor(0, "^4[%s]^1 Szerverünkön ^3Skincsomag Rendszer^1 fut, írd be: ^3/menu", PREFIX)
 
public ShowMenu(id) {
    new temp[128];
    formatex(temp, charsmax(temp), "\r[%s] \wFegyver Skinek", PREFIX);
    new menu = menu_create(temp, "mh_MyMenu");
 
    formatex(temp, charsmax(temp), "AWP Skinek");
    menu_additem(menu, temp, "0", 0);
    formatex(temp, charsmax(temp), "Scout Skinek");
    menu_additem(menu, temp, "1", 0);
    formatex(temp, charsmax(temp), "Deagle Skinek");
    menu_additem(menu, temp, "2", 0);
    formatex(temp, charsmax(temp), "USP Skinek");
    menu_additem(menu, temp, "3", 0);
    formatex(temp, charsmax(temp), "Glock Skinek");
    menu_additem(menu, temp, "4", 0);
    formatex(temp, charsmax(temp), "Kés Skinek");
    menu_additem(menu, temp, "5", 0);
 
 
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_setprop(menu, MPROP_BACKNAME, "Vissza");
    menu_setprop(menu, MPROP_NEXTNAME, "Előre");
    menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
 
    menu_display(id, menu, 0);
    return PLUGIN_HANDLED;
}
 
public mh_MyMenu(id, menu, item) {
    if(item == MENU_EXIT) {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
 
    switch(item) {
        case 0: awp_menu(id);
        case 1: scout_menu(id);
        case 2: deagle_menu(id);
        case 3: usp_menu(id);
        case 4: glock_menu(id);
        case 5: knife_menu(id);
    }
   
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}
 
public awp_menu(id) {
        new temp[128], temp2[64];
        formatex(temp, charsmax(temp), "\r[%s] \wAWP Skinek ^nÖlések: \y%d", PREFIX, player_data[id][AWP_KILLS]);
        new menu = menu_create(temp, "awp_handler");
 
        formatex(temp, charsmax(temp), "Alap AWP %s", player_data[id][AWP_MENU] == 0 ? "\y|AKTÍV|":"");
        menu_additem(menu, temp, "0", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[0]);
        formatex(temp, charsmax(temp), "Rozsdás AWP %s", player_data[id][AWP_MENU] == 1 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "1", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[1]);
        formatex(temp, charsmax(temp), "Ezüst AWP %s", player_data[id][AWP_MENU] == 2 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "2", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[2]);
        formatex(temp, charsmax(temp), "Arany AWP %s", player_data[id][AWP_MENU] == 3 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "3", 0);
 
        menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
        menu_setprop(menu, MPROP_BACKNAME, "Vissza");
        menu_setprop(menu, MPROP_NEXTNAME, "Előre");
        menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
 
        menu_display(id, menu, 0);
        return PLUGIN_HANDLED;
}
public awp_handler(id, menu, item) {
        if(item == MENU_EXIT) {
                menu_destroy(menu);
                return PLUGIN_HANDLED;
        }
 
        switch(item)
        {
                case 0: {
                        player_data[id][AWP_MENU] = 0;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                }
                case 1: {
                        if(player_data[id][AWP_KILLS] >= POINTS[0]) {
                        player_data[id][AWP_MENU] = 1;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 2: {
                        if(player_data[id][AWP_KILLS] >= POINTS[1]) {
                        player_data[id][AWP_MENU] = 2;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 3: {
                        if(player_data[id][AWP_KILLS] >= POINTS[2]) {
                        player_data[id][AWP_MENU] = 3;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
}
 
public scout_menu(id) {
        new temp[128], temp2[64];
        formatex(temp, charsmax(temp), "\r[%s] \wScout Skinek ^nÖlések: \y%d", PREFIX, player_data[id][SCOUT_KILLS]);
        new menu = menu_create(temp, "scout_handler");
 
        formatex(temp, charsmax(temp), "Alap Scout %s", player_data[id][SCOUT_MENU] == 0 ? "\y|AKTÍV|":"");
        menu_additem(menu, temp, "0", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[0]);
        formatex(temp, charsmax(temp), "Rozsdás Scout %s", player_data[id][SCOUT_MENU] == 1 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "1", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[1]);
        formatex(temp, charsmax(temp), "Ezüst Scout %s", player_data[id][SCOUT_MENU] == 2 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "2", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[2]);
        formatex(temp, charsmax(temp), "Arany Scout %s", player_data[id][SCOUT_MENU] == 3 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "3", 0);
 
        menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
        menu_setprop(menu, MPROP_BACKNAME, "Vissza");
        menu_setprop(menu, MPROP_NEXTNAME, "Előre");
        menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
 
        menu_display(id, menu, 0);
        return PLUGIN_HANDLED;
}
public scout_handler(id, menu, item) {
        if(item == MENU_EXIT)
        {
                menu_destroy(menu);
                return PLUGIN_HANDLED;
        }
 
        switch(item)
        {
                case 0: {
                        player_data[id][SCOUT_MENU] = 0;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                }
                case 1: {
                        if(player_data[id][SCOUT_KILLS] >= POINTS[0]) {
                        player_data[id][SCOUT_MENU] = 1;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 2: {
                        if(player_data[id][SCOUT_KILLS] >= POINTS[1]) {
                        player_data[id][SCOUT_MENU] = 2;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 3: {
                        if(player_data[id][SCOUT_KILLS] >= POINTS[2]) {
                        player_data[id][SCOUT_MENU] = 3;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
}
 
public deagle_menu(id) {
        new temp[128], temp2[64];
        formatex(temp, charsmax(temp), "\r[%s] \wDeagle Skinek ^nÖlések: \y%d", PREFIX, player_data[id][DEAGLE_KILLS]);
        new menu = menu_create(temp, "deagle_handler");
 
        formatex(temp, charsmax(temp), "Alap Deagle %s", player_data[id][DEAGLE_MENU] == 0 ? "\y|AKTÍV|":"");
        menu_additem(menu, temp, "0", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[3]);
        formatex(temp, charsmax(temp), "Rozsdás Deagle %s", player_data[id][DEAGLE_MENU] == 1 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "1", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[4]);
        formatex(temp, charsmax(temp), "Ezüst Deagle %s", player_data[id][DEAGLE_MENU] == 2 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "2", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[5]);
        formatex(temp, charsmax(temp), "Arany Deagle %s", player_data[id][DEAGLE_MENU] == 3 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "3", 0);
 
        menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
        menu_setprop(menu, MPROP_BACKNAME, "Vissza");
        menu_setprop(menu, MPROP_NEXTNAME, "Előre");
        menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
 
        menu_display(id, menu, 0);
        return PLUGIN_HANDLED;
}
public deagle_handler(id, menu, item) {
        if(item == MENU_EXIT)
        {
                menu_destroy(menu);
                return PLUGIN_HANDLED;
        }
 
        switch(item)
        {
                case 0: {
                        player_data[id][DEAGLE_MENU] = 0;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                }
                case 1: {
                        if(player_data[id][DEAGLE_KILLS] >= POINTS[3]) {
                        player_data[id][DEAGLE_MENU] = 1;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 2: {
                        if(player_data[id][DEAGLE_KILLS] >= POINTS[4]) {
                        player_data[id][DEAGLE_MENU] = 2;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 3: {
                        if(player_data[id][DEAGLE_KILLS] >= POINTS[5]) {
                        player_data[id][DEAGLE_MENU] = 3;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
}
 
public usp_menu(id) {
        new temp[128], temp2[64];
        formatex(temp, charsmax(temp), "\r[%s] \wUSP Skinek ^nÖlések: \y%d", PREFIX, player_data[id][USP_KILLS]);
        new menu = menu_create(temp, "usp_handler");
 
        formatex(temp, charsmax(temp), "Alap USP %s", player_data[id][USP_MENU] == 0 ? "\y|AKTÍV|":"");
        menu_additem(menu, temp, "0", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[3]);
        formatex(temp, charsmax(temp), "Rozsdás USP %s", player_data[id][USP_MENU] == 1 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "1", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[4]);
        formatex(temp, charsmax(temp), "Ezüst USP %s", player_data[id][USP_MENU] == 2 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "2", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[5]);
        formatex(temp, charsmax(temp), "Arany USP %s", player_data[id][USP_MENU] == 3 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "3", 0);
 
        menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
        menu_setprop(menu, MPROP_BACKNAME, "Vissza");
        menu_setprop(menu, MPROP_NEXTNAME, "Előre");
        menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
 
        menu_display(id, menu, 0);
        return PLUGIN_HANDLED;
}
public usp_handler(id, menu, item) {
        if(item == MENU_EXIT)
        {
                menu_destroy(menu);
                return PLUGIN_HANDLED;
        }
 
        switch(item)
        {
                case 0: {
                        player_data[id][USP_MENU] = 0;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                }
                case 1: {
                        if(player_data[id][USP_KILLS] >= POINTS[3]) {
                        player_data[id][USP_MENU] = 1;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 2: {
                        if(player_data[id][USP_KILLS] >= POINTS[4]) {
                        player_data[id][USP_MENU] = 2;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 3: {
                        if(player_data[id][USP_KILLS] >= POINTS[5]) {
                        player_data[id][USP_MENU] = 3;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
}
 
public glock_menu(id) {
        new temp[128], temp2[64];
        formatex(temp, charsmax(temp), "\r[%s] \wGlock Skinek ^nÖlések: \y%d", PREFIX, player_data[id][GLOCK_KILLS]);
        new menu = menu_create(temp, "glock_handler");
 
        formatex(temp, charsmax(temp), "Alap Glock %s", player_data[id][GLOCK_MENU] == 0 ? "\y|AKTÍV|":"");
        menu_additem(menu, temp, "0", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[3]);
        formatex(temp, charsmax(temp), "Rozsdás Glock %s", player_data[id][GLOCK_MENU] == 1 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "1", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[4]);
        formatex(temp, charsmax(temp), "Ezüst Glock %s", player_data[id][GLOCK_MENU] == 2 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "2", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[5]);
        formatex(temp, charsmax(temp), "Arany Glock %s", player_data[id][GLOCK_MENU] == 3 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "3", 0);
 
        menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
        menu_setprop(menu, MPROP_BACKNAME, "Vissza");
        menu_setprop(menu, MPROP_NEXTNAME, "Előre");
        menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
 
        menu_display(id, menu, 0);
        return PLUGIN_HANDLED;
}
public glock_handler(id, menu, item) {
        if(item == MENU_EXIT)
        {
                menu_destroy(menu);
                return PLUGIN_HANDLED;
        }
 
        switch(item)
        {
                case 0: {
                        player_data[id][GLOCK_MENU] = 0;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                }
                case 1: {
                        if(player_data[id][GLOCK_KILLS] >= POINTS[3]) {
                        player_data[id][GLOCK_MENU] = 1;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 2: {
                        if(player_data[id][GLOCK_KILLS] >= POINTS[4]) {
                        player_data[id][GLOCK_MENU] = 2;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 3: {
                        if(player_data[id][GLOCK_KILLS] >= POINTS[5]) {
                        player_data[id][GLOCK_MENU] = 3;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
}
 
public knife_menu(id) {
        new temp[128], temp2[64];
        formatex(temp, charsmax(temp), "\r[%s] \wKés Skinek ^nÖlések: \y%d", PREFIX, player_data[id][KNIFE_KILLS]);
        new menu = menu_create(temp, "knife_handler");
 
        formatex(temp, charsmax(temp), "Alap Kés %s", player_data[id][KNIFE_MENU] == 0 ? "\y|AKTÍV|":"");
        menu_additem(menu, temp, "0", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[6]);
        formatex(temp, charsmax(temp), "Rozsdás Kés %s", player_data[id][KNIFE_MENU] == 1 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "1", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[7]);
        formatex(temp, charsmax(temp), "Ezüst Kés %s", player_data[id][KNIFE_MENU] == 2 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "2", 0);
        formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[8]);
        formatex(temp, charsmax(temp), "Arany Kés %s", player_data[id][KNIFE_MENU] == 3 ? "\y|AKTÍV|":temp2);
        menu_additem(menu, temp, "3", 0);
 
        menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
        menu_setprop(menu, MPROP_BACKNAME, "Vissza");
        menu_setprop(menu, MPROP_NEXTNAME, "Előre");
        menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
 
        menu_display(id, menu, 0);
        return PLUGIN_HANDLED;
}
public knife_handler(id, menu, item) {
        if(item == MENU_EXIT)
        {
                menu_destroy(menu);
                return PLUGIN_HANDLED;
        }
 
        switch(item)
        {
                case 0: {
                        player_data[id][KNIFE_MENU] = 0;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                }
                case 1: {
                        if(player_data[id][KNIFE_KILLS] >= POINTS[6]) {
                        player_data[id][KNIFE_MENU] = 1;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 2: {
                        if(player_data[id][KNIFE_KILLS] >= POINTS[7]) {
                        player_data[id][KNIFE_MENU] = 2;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
                case 3: {
                        if(player_data[id][KNIFE_KILLS] >= POINTS[8]) {
                        player_data[id][KNIFE_MENU] = 3;
                        ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
                        }
                        else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
                }
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
}
 
public plugin_cfg() {
    new Query[512], Len;
    g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
 
    Len += formatex(Query[Len], charsmax(Query)-Len, "CREATE TABLE IF NOT EXISTS `worldsniper` (`username` varchar(32) NOT NULL,`AWP_KILLS` int(11) NOT NULL,`SCOUT_KILLS` int(11) NOT NULL,`DEAGLE_KILLS` int(11) NOT NULL,`USP_KILLS` int(11) NOT NULL,`GLOCK_KILLS` int(11) NOT NULL,`KNIFE_KILLS` int(11) NOT NULL, ")
    Len += formatex(Query[Len], charsmax(Query)-Len, "`AWP_MENU` int(11) NOT NULL,`SCOUT_MENU` int(11) NOT NULL,`DEAGLE_MENU` int(11) NOT NULL,`USP_MENU` int(11) NOT NULL,`GLOCK_MENU` int(11) NOT NULL,`KNIFE_MENU` int(11) NOT NULL,`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
    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 client_putinserver(id) {
    if(!is_user_bot(id)) {
        get_user_name(id, player_data[id][USERNAME], 31)
        load(id);
    }
}
 
public load(id) {
    new Query[512], Data[1];
    Data[0] = id;
    formatex(Query, charsmax(Query), "SELECT * FROM `worldsniper` WHERE username = ^"%s^";", player_data[id][USERNAME])
    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) {
            player_data[id][AWP_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AWP_KILLS"));
            player_data[id][SCOUT_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "SCOUT_KILLS"));
            player_data[id][DEAGLE_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "DEAGLE_KILLS"))
            player_data[id][USP_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "USP_KILLS"))
            player_data[id][GLOCK_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "GLOCK_KILLS"))
            player_data[id][KNIFE_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "KNIFE_KILLS"))
            player_data[id][AWP_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AWP_MENU"))
            player_data[id][SCOUT_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "SCOUT_MENU"))
            player_data[id][DEAGLE_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "DEAGLE_MENU"))
            player_data[id][USP_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "USP_MENU"))
            player_data[id][GLOCK_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "GLOCK_MENU"))
            player_data[id][KNIFE_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "KNIFE_MENU"))
        }
        else {
            save(id)
        }
    }
}
 
public save(id) {
    new text[512];
    formatex(text, charsmax(text), "INSERT INTO `worldsniper` (`username`, `AWP_KILLS`, `SCOUT_KILLS`, `DEAGLE_KILLS`, `USP_KILLS`, `GLOCK_KILLS`, `KNIFE_KILLS`, `AWP_MENU`, `SCOUT_MENU`, `DEAGLE_MENU`, `USP_MENU`, `GLOCK_MENU`, `KNIFE_MENU`) VALUES (^"%s^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^");", player_data[id][USERNAME])
    SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
}
 
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 update(id) {
    new text[1024], Len;
    Len += formatex(text[Len], charsmax(text)-Len, "UPDATE `worldsniper` SET AWP_KILLS = ^"%i^", SCOUT_KILLS = ^"%i^", DEAGLE_KILLS = ^"%i^", USP_KILLS = ^"%i^", GLOCK_KILLS = ^"%i^", KNIFE_KILLS = ^"%i^", ", player_data[id][AWP_KILLS], player_data[id][SCOUT_KILLS], player_data[id][DEAGLE_KILLS], player_data[id][USP_KILLS], player_data[id][GLOCK_KILLS], player_data[id][KNIFE_KILLS])
    Len += formatex(text[Len], charsmax(text)-Len, "AWP_MENU = ^"%i^", SCOUT_MENU = ^"%i^", DEAGLE_MENU = ^"%i^", USP_MENU = ^"%i^", GLOCK_MENU = ^"%i^", KNIFE_MENU = ^"%i^" WHERE username = ^"%s^";", player_data[id][AWP_MENU], player_data[id][SCOUT_MENU], player_data[id][DEAGLE_MENU], player_data[id][USP_MENU], player_data[id][GLOCK_MENU], player_data[id][KNIFE_MENU], player_data[id][USERNAME])
    SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
}
 
public client_disconnect(id) {
    if(!is_user_bot(id)) {
        update(id)
    }
    arrayset(player_data[id], 0, 12);
}
 
public plugin_end() {
    SQL_FreeHandle(g_SqlTuple);
}
stock ChatColor(const id, const szMessage[], any:...) {
        static pnum, players[32], szMsg[190], IdMsg;
        vformat(szMsg, charsmax(szMsg), szMessage, 3);
       
        if(!IdMsg) IdMsg = get_user_msgid("SayText");
       
        if(id) {
                if(!is_user_connected(id)) return;
                players[0] = id;
                pnum = 1;
        }
        else get_players(players, pnum, "ch");
       
        for(new i; i < pnum; i++) {
                message_begin(MSG_ONE, IdMsg, .player = players[i]);
                write_byte(players[i]);
                write_string(szMsg);
                message_end();
        }
}