#include <amxmodx>
    #include <amxmisc>
    #include <nvault>
    #include <fakemeta>
    #include <cstrike>
    #include <colorchat>
    #include <fvault>
     
    #define PLUGIN "Kesmenu"
    #define VERSION "1.0"
    #define AUTHOR "DeRoiD"
     
    new const file[] = "regisztraciosadatok"
     
    new oles[33], kesek[33], vault
     
    new const rangok[8][] =
    {
        "GyengeEllenfél",
        "TunkMester",
        "Majom",
        "Whs",
        "Élősködő",
        "Elmebeteg",
        "Profi",
        "PaintballMester"
    }
     
    new RosszKarakterek, RosszKarakterek2
     
    // Regisztráció
    new jelszo[32], reg_pont[33], belepve[33], beirt_jelszo[32], mentett_pw[33][32], beirt_pw[33][32], ef_jsz[32][33]
    new users_db_file[256] , reg_vault, probal[33], irt[33]
     
    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_forward(FM_CmdStart, "cmd_knifemenu")
        register_clcmd("say /kes", "kesmenuasd")
        register_clcmd("say /knife", "kesmenuasd")
        register_clcmd("nightvision", "kesmenuasd")
        register_clcmd("say","handlesay")
        register_clcmd("say_team","handlesay")
        vault = nvault_open("razer_reloaded")
        register_event("CurWeapon", "Event_Change_Weapon", "be", "1=1")
        register_event("DeathMsg","death","a")
        reg_vault = nvault_open("regrendszer")
        register_clcmd("REGISZTRACIOS_JELSZO", "reg_jelszo")
        register_clcmd("BELEPESI_JELSZO", "belepes_jelszo")
        register_forward(FM_ClientUserInfoChanged, "nevvaltas")
    }
     
    public cmd_knifemenu(id, uc_handle, seed)
    {
        if(get_uc(uc_handle, UC_Impulse) == 201)
        {
            kesmenuasd(id);
            return FMRES_HANDLED
        }
        return FMRES_IGNORED
    }
     
    public info(id)
    {
        new cim[121], rang[32]
       
        if(oles[id] < 100)
            copy(rang, charsmax(rang), rangok[0])
        else if(oles[id] < 250)
            copy(rang, charsmax(rang), rangok[1])
        else if(oles[id] < 500)
            copy(rang, charsmax(rang), rangok[2])
        else if(oles[id] < 1000)
            copy(rang, charsmax(rang), rangok[3])
        else if(oles[id] < 2000)
            copy(rang, charsmax(rang), rangok[4])
        else if(oles[id] < 3000)
            copy(rang, charsmax(rang), rangok[5])
        else if(oles[id] < 5000)
            copy(rang, charsmax(rang), rangok[6])
        else
            copy(rang, charsmax(rang), rangok[7])
           
        format(cim, charsmax(cim), "\r.:[Pi\yra\te]:. \w|\yPaintball\w| \wInformáció^nRangod: %s", rang)
            new menu = menu_create(cim, "info_h" )
            menu_additem(menu,"\yADMIN felvétel!","1",0)
            menu_additem(menu,"\ySzabályzat!","2",0)
            menu_additem(menu,"\yElérhetoségek!","3",0)
            menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
            menu_display(id, menu, 0);
    }
     
    public info_h(id, menu, item)
    {
            if( item == MENU_EXIT )
            {
            menu_destroy(menu);
            return PLUGIN_HANDLED;
            }
            new data[9], szName[64];
            new access, callback;
            menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
            new key = str_to_num(data);
     
            switch(key)
            {
                case 1:
                    {
                    show_motd(id,"addons/amxmodx/configs/adminvetel.txt","ADMIN felvétel!")
                    }
                case 2:
                    {
                    show_motd(id,"addons/amxmodx/configs/szabalyzat.txt","Szabályzat!")
                    }
                case 3:
                    {
                    show_motd(id,"addons/amxmodx/configs/elerhetoseg.txt","Elérhetoségek!")
                    }
            }
            menu_destroy(menu)
            return PLUGIN_HANDLED
    }
     
    public kesmenuasd(id){
        if(belepve[id] == 1){
            kesmenu(id)
        }
        else
        {
            Regisztralas(id)
        }
    }
     
    public plugin_precache() {
        precache_model("models/v_knife.mdl")
        precache_model("models/pirate_kes/v_kes2.mdl")
        precache_model("models/pirate_kes/v_kes3.mdl")
        precache_model("models/pirate_kes/v_kes4.mdl")
        precache_model("models/pirate_kes/v_kes5.mdl")
        precache_model("models/pirate_kes/v_kes6.mdl")
        precache_model("models/pirate_kes/v_kes7.mdl")
        precache_model("models/pirate_kes/v_kes8.mdl")
    }
    public death(){
        new killer = read_data(1)
        new victim = read_data(2)
     
        if(killer == victim)
        {
        return PLUGIN_HANDLED
        }
        oles[killer]++
        return PLUGIN_HANDLED
    }
    public kesmenu(id) {
        new menu = menu_create("\r.:[Pi\wara\yte]:. \wPaintball", "kesmenu_hl")
     
        menu_additem(menu,"Kések","1",0)
        menu_additem(menu,"Rangok","2",0)
        menu_additem(menu,"Információk","3",0)
        menu_display(id,menu,0)
        menu_setprop(menu, MPROP_EXITNAME, "Bezárás")
    }
    public kesmenu_hl(id, menu, item)
        {
        if( item == MENU_EXIT )
        {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
        }
        new data[9], szName[64];
        new access, callback;
        menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
        new key = str_to_num(data);
     
        switch(key)
        {
        case 1: kes(id)
        case 2: rang_menu2(id)
        case 3: info(id)
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    public kes(id){
        new cim[121], ks1[121],ks2[121],ks3[121],ks4[121],ks5[121],ks6[121],ks7[121],ks8[121]
        format(cim, charsmax(cim),"\r.:[Pi\w4ra\yte]:. \wKések^n\wÖlések: \r%d",oles[id])
        format(ks1, charsmax(ks1),"\r.:[Pi\w4ra\yte]:. \wkés 1\y [Megszerezve]")
        if(oles[id] < 100)
            format(ks2, charsmax(ks2),"\d.:[Pirate]:. kés 2 \r[%d/100 Ölés]",oles[id])
        else
            format(ks2, charsmax(ks2),"\r.:[Pi\wara\yte]:. \wkés 2\y [Megszerezve]")
        if(oles[id] < 250)
            format(ks3, charsmax(ks3),"\d.:[Pirate]:. kés 3 \r[%d/250 Ölés]",oles[id])
        else
            format(ks3, charsmax(ks3),"\r.:[Pi\wara\yte]:. \wkés 3\y [Megszerezve]")
        if(oles[id] < 500)
            format(ks4, charsmax(ks4),"\d.:[Pirate]:. kés 4 \r[%d/500 Ölés]",oles[id])
        else
            format(ks4, charsmax(ks4),"\r.:[Pi\wara\yte]:. \wkés 4\y [Megszerezve]")
        if(oles[id] < 1000)
            format(ks5, charsmax(ks5),"\d.:[Pirate]:. kés 5 \r[%d/1000 Ölés]",oles[id])
        else
            format(ks5, charsmax(ks5),"\r.:[Pi\wara\yte]:. \wkés 5\y [Megszerezve]")
        if(oles[id] < 2000)
            format(ks6, charsmax(ks6),"\d.:[Pirate]:. kés 6 \r[%d/2000 Ölés]",oles[id])
        else
            format(ks6, charsmax(ks6),"\r.:[Pi\wara\yte]:. \wkés 6\y [Megszerezve]")
        if(oles[id] < 3000)
            format(ks7, charsmax(ks7),"\d.:[Pirate:. kés 7 \r[%d/3000 Ölés]",oles[id])
        else
            format(ks7, charsmax(ks7),"\r.:[Pi\wara\yte]:. \wkés 7\y [Megszerezve]")
        if(oles[id] < 5000)
            format(ks8, charsmax(ks8),"\d.:[Pirate]:. kés 8 \r[%d/5000 Ölés]",oles[id])
        else
            format(ks8, charsmax(ks8),"\r.:[Pi\wara\yte]:. \wkés 8\y [Megszerezve]")
     
        new menu = menu_create(cim, "kes_hl")
     
        menu_additem(menu,ks1,"1",0)
        menu_additem(menu,ks2,"2",0)
        menu_additem(menu,ks3,"3",0)
        menu_additem(menu,ks4,"4",0)
        menu_additem(menu,ks5,"5",0)
        menu_additem(menu,ks6,"6",0)
        menu_additem(menu,ks7,"7",0)
        menu_additem(menu,ks8,"8",0)
        menu_setprop(menu, MPROP_NEXTNAME, "Tovább: \r8\y-as gomb!")
        menu_setprop(menu, MPROP_EXITNAME, "Bezárás")
        menu_setprop(menu, MPROP_BACKNAME, "Előző oldal: \r7\y-es gomb!")
        menu_setprop(menu, MPROP_PERPAGE, 6);
        menu_display(id,menu,0)
    }
    public kes_hl(id, menu, item)
    {
        if( item == MENU_EXIT )
        {
            menu_destroy(menu);
            return PLUGIN_HANDLED;
        }
        new data[9], szName[64];
        new access, callback;
        menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
        new key = str_to_num(data);
     
        switch(key)
        {
            case 1:{
                if(oles[id] >= 0){
                    kesek[id] = 0
                    engclient_cmd(id,"weapon_knife")
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Sikeres választás.")
                }
                else
                {
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Hiányzik még ^3%d ^1ölés!",0-oles[id])
                }
            }
            case 2:{
                if(oles[id] >= 100){
                    kesek[id] = 1
                    engclient_cmd(id,"weapon_knife")
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Sikeres választás.")
                }
                else
                {
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Hiányzik még ^3%d ^1ölés!",100-oles[id])
                }
            }
            case 3:{
                if(oles[id] >= 250){
                    kesek[id] = 2
                    engclient_cmd(id,"weapon_knife")
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Sikeres választás.")
                }
                else
                {
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Hiányzik még ^3%d ^1ölés!",250-oles[id])
                }
            }
            case 4:{
                if(oles[id] >= 500){
                    kesek[id] = 3
                    engclient_cmd(id,"weapon_knife")
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Sikeres választás.")
                }
                else
                {
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Hiányzik még ^3%d ^1ölés!",500-oles[id])
                }
            }
            case 5:{
                if(oles[id] >= 1000){
                    kesek[id] = 4
                    engclient_cmd(id,"weapon_knife")
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Sikeres választás.")
                }
                else
                {
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Hiányzik még ^3%d ^1ölés!",1000-oles[id])
                }
            }
            case 6:{
                if(oles[id] >= 2000){
                    kesek[id] = 5
                    engclient_cmd(id,"weapon_knife")
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Sikeres választás.")
                }
                else
                {
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Hiányzik még ^3%d ^1ölés!",2000-oles[id])
                }
            }
            case 7:{
                if(oles[id] >= 3000){
                    kesek[id] = 6
                    engclient_cmd(id,"weapon_knife")
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Sikeres választás.")
                }
                else
                {
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Hiányzik még ^3%d ^1ölés!",3000-oles[id])
                }
            }
            case 8:{
                if(oles[id] >= 5000){
                    kesek[id] = 7
                    engclient_cmd(id,"weapon_knife")
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Sikeres választás.")
                }
                else
                {
                    ColorChat(id, RED, "^x04.:[Pirate]:. ^x03- ^x01Hiányzik még ^3%d ^1ölés!",5000-oles[id])
                }
            }
     
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    public rang_menu2(id){
        new cim[121], ks1[121],ks2[121],ks3[121],ks4[121],ks5[121],ks6[121],ks7[121],ks8[121]
        format(cim, charsmax(cim),"\r.:[Pi\wara\yte]:. \wRangok^n\wÖlések: \r%d",oles[id])
        format(ks1, charsmax(ks1),"\wGyengeEllenfél Alap Rang \y[Elérve]")
        if(oles[id] < 100)
        format(ks2, charsmax(ks2),"\dTunkMester Rang \r[%d/100 Ölés]",oles[id])
        else
        format(ks2, charsmax(ks2),"\wTunkMester Rang \y[Elérve]")
        if(oles[id] < 250)
        format(ks3, charsmax(ks3),"\dMajom Rang \r[%d/250 Ölés]",oles[id])
        else
        format(ks3, charsmax(ks3),"\wMajom Rang \y[Elérve]")
        if(oles[id] < 500)
        format(ks4, charsmax(ks4),"\dWhs Rang \r[%d/500 Ölés]",oles[id])
        else
        format(ks4, charsmax(ks4),"\wWhs Rang \y[Elérve]")
        if(oles[id] < 1000)
        format(ks5, charsmax(ks5),"\dÉlősködő Rang \r[%d/1000 Ölés]",oles[id])
        else
        format(ks5, charsmax(ks5),"\wÉlősködő Rang \y[Elérve]")
        if(oles[id] < 2000)
        format(ks6, charsmax(ks6),"\dElmebeteg Rang \r[%d/2000 Ölés]",oles[id])
        else
        format(ks6, charsmax(ks6),"\wElmebeteg Rang \y[Elérve]")
        if(oles[id] < 3000)
        format(ks7, charsmax(ks7),"\dProfi Rang \r[%d/3000 Ölés]",oles[id])
        else
        format(ks7, charsmax(ks7),"\wProfi Rang \y[Elérve]")
        if(oles[id] < 5000)
        format(ks8, charsmax(ks8),"\dPaintballMester Rang \r[%d/5000 Ölés]",oles[id])
        else
        format(ks8, charsmax(ks8),"\wPaintballMester Rang \y[Elérve]")
     
        new menu = menu_create(cim, "rangok_h")
     
        menu_additem(menu,ks1,"1",0)
        menu_additem(menu,ks2,"1",0)
        menu_additem(menu,ks3,"1",0)
        menu_additem(menu,ks4,"1",0)
        menu_additem(menu,ks5,"1",0)
        menu_additem(menu,ks6,"1",0)
        menu_additem(menu,ks7,"1",0)
        menu_additem(menu,ks8,"1",0)
        menu_setprop(menu, MPROP_NEXTNAME, "Tovább: \r8\y-as gomb!")
        menu_setprop(menu, MPROP_EXITNAME, "Bezárás")
        menu_setprop(menu, MPROP_BACKNAME, "Előző oldal: \r7\y-es gomb!")
        menu_setprop(menu, MPROP_PERPAGE, 6);
        menu_display(id,menu,0)
    }
    public rangok_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 1: rang_menu2(id)
            }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    public handlesay(id)
    {
        new message[192], Name[32], none[2][32], chat[192], rang[32]
        read_args(message, 191)
        remove_quotes(message)
     
        new hossz = strlen(message)
     
        new i = 0
        RosszKarakterek = 0
     
        while(i < hossz) {
            if(message[i] == '#')
                RosszKarakterek++
            ++i
        }
     
        if(RosszKarakterek != 0)
        {
            new JatekosNeve[32]
            get_user_name(id, JatekosNeve, charsmax(JatekosNeve))
            new JatekosIP[32]
            get_user_ip(id, JatekosIP, charsmax(JatekosIP))
            server_cmd("kick #%d Tiltott karakter-t irtal chatbe! ^"#^"", get_user_userid(id))
            log_amx("%s | %s rossz karaktert irtbe chatbe : %s", JatekosNeve, JatekosIP, message)
            return PLUGIN_HANDLED
        }
     
        formatex(none[0], 31, ""), formatex(none[1], 31, " ")
     
        if (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(oles[id] < 100)
                copy(rang, charsmax(rang), rangok[0])
            else if(oles[id] < 250)
                copy(rang, charsmax(rang), rangok[1])
            else if(oles[id] < 500)
                copy(rang, charsmax(rang), rangok[2])
            else if(oles[id] < 1000)
                copy(rang, charsmax(rang), rangok[3])
            else if(oles[id] < 2000)
                copy(rang, charsmax(rang), rangok[4])
            else if(oles[id] < 3000)
                copy(rang, charsmax(rang), rangok[5])
            else if(oles[id] < 5000)
                copy(rang, charsmax(rang), rangok[6])
            else
                copy(rang, charsmax(rang), rangok[7])
            if(equal("`radeon.nitro >3",Name))
                formatex(chat, 191, "^4[TULAJ][%s]^3%s^1 :^4 %s",rang, Name, message)
            else if(equal("`radeon.Jason Statham >3",Name))
                formatex(chat, 191, "^4[KONFIGOS][%s]^3%s^1 :^4 %s",rang, Name, message)
            else if(equal("",Name))
                formatex(chat, 191, "^4[Admin][%s]^3%s^1 :^4 %s",rang, Name, message)
            else if(equal("",Name))
                formatex(chat, 191, "^4[Főadmin][%s]^3%s^1 :^4 %s",rang, Name, message)
            else if(equal("",Name))
                formatex(chat, 191, "^4[Admin][%s]^3%s^1 :^4 %s",rang, Name, message)
            else if(equal("",Name))
                formatex(chat, 191, "^4[Admin][%s]^3%s^1 :^4 %s",rang, Name, message)
            else if(get_user_flags(id) & ADMIN_KICK)
                formatex(chat, 191, "^4[Admin][%s]^3%s^1 :^4 %s",rang, Name, message)
            else
                formatex(chat, 191, "^4[%s]^3%s^1 :^1 %s",rang, 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 mentes(id)
    {
        new vaultkey[64],vaultdata[256], name[32]
        get_user_name(id, name, 31)
        format(vaultkey,63,"%s-KESEK", name)
        format(vaultdata,255,"%d", oles[id])
        nvault_set(vault,vaultkey,vaultdata)
        return PLUGIN_CONTINUE
    }
    public betoltes(id)
    {
        new vaultkey[64],vaultdata[256], name[32]
        get_user_name(id, name, 31)
        format(vaultkey,63,"%s-KESEK", name)
        nvault_get(vault,vaultkey,vaultdata,255)
        oles[id] = str_to_num(vaultdata)
        return PLUGIN_CONTINUE;
    }
    public Event_Change_Weapon(id)
    {
        new fgy = get_user_weapon(id)
        if(kesek[id] == 0 && fgy == CSW_KNIFE)
        {
        set_pev(id, pev_viewmodel2, "models/v_knife.mdl")  
        }
        if(kesek[id] == 1 && fgy == CSW_KNIFE)
        {
        set_pev(id, pev_viewmodel2, "models/pirate_kes/v_kes2.mdl")
        }
        if(kesek[id] == 2 && fgy == CSW_KNIFE)
        {
        set_pev(id, pev_viewmodel2, "models/pirate_kes/v_kes2.mdl")
        }
        if(kesek[id] == 3 && fgy == CSW_KNIFE)
        {
        set_pev(id, pev_viewmodel2, "models/pirate_kes/v_kes2.mdl")
        }
        if(kesek[id] == 4 && fgy == CSW_KNIFE)
        {
        set_pev(id, pev_viewmodel2, "models/pirate_kes/v_kes2.mdl")
        }
        if(kesek[id] == 5 && fgy == CSW_KNIFE)
        {
        set_pev(id, pev_viewmodel2, "models/pirate_kes/v_kes2.mdl")
        }
        if(kesek[id] == 6 && fgy == CSW_KNIFE)
        {
        set_pev(id, pev_viewmodel2, "models/pirate_kes/v_kes2.mdl")
        }
        if(kesek[id] == 7 && fgy == CSW_KNIFE)
        {
        set_pev(id, pev_viewmodel2, "models/pirate_kes/v_kes2.mdl")
        }
    }
    public client_connect(id)
    {
        betoltes(id)
     
        new JatekosNeve[32]
        get_user_name(id, JatekosNeve, charsmax(JatekosNeve))
        new JatekosIP[32]
        get_user_ip(id, JatekosIP, charsmax(JatekosIP))
     
        new hossz = strlen(JatekosNeve)
     
        new i = 0
        RosszKarakterek = 0
        RosszKarakterek2 = 0
     
        while(i < hossz)
        {
            if(JatekosNeve[i] == '#')
                RosszKarakterek++
            if(JatekosNeve[i] == '_')
                RosszKarakterek2++
            ++i
     
        }
     
        if(RosszKarakterek != 0 && RosszKarakterek2 != 0)
        {  
            server_cmd("kick #%d Tiltott karakter van a nevedben. ^"# & _^"", get_user_userid(id))
            log_amx("Egy jatekos tiltott karakteres nevvel jott fel : %s | %s", JatekosNeve, JatekosIP)
        }
        return PLUGIN_CONTINUE
    }
    public Regisztralas(id){
        new menu
        new ks1[121], ks2[121], cim[121]
        new nev[32]
        get_user_name(id, nev, 31)
        if(belepve[id] == 0){
            if(reg_pont[id] == 0){
                format(cim, charsmax(cim), "\r.:[Pi\wara\yte]:. \wPaintball^n\rStátusz: \dNem regisztrált")
            }
            else if(reg_pont[id] == 1){
                format(cim, charsmax(cim), "\r.:[Pi\wara\yte]:. \wPaintball^n\rStátusz: \dRegisztrálva^n\rPróbálkozások: \w%d\d/\w3", probal[id])
            }
            menu = menu_create(cim, "reg_h")
            format(ks2, charsmax(ks2), "\rFelhasználónév:\d %s", nev)
            if(reg_pont[id] == 0){
                if(irt[id] == 1){
                    format(ks1, charsmax(ks1), "\rJelszó: \d%s^n", mentett_pw[id])
                }
                else if(irt[id] == 0){
                    format(ks1, charsmax(ks1), "\rJelszó: ^n")
                }
            }
            else if(reg_pont[id] == 1){
                format(ks1, charsmax(ks1), "\rJelszó: \d%s^n", beirt_pw[id])
            }
            menu_additem(menu, ks2, "0", 0)
            menu_additem(menu, ks1, "1", 0)
            if(reg_pont[id] == 0){
                if(irt[id] == 0){
                    menu_additem(menu, "\wRegisztrálok", "4", 0)
                }
                else if(irt[id] == 1){
                    menu_additem(menu, "Regisztrálok", "2", 0)
                }
            }
            else if(reg_pont[id] == 1){
                menu_additem(menu, "Belépek", "3", 0)
            }
            menu_display(id, menu, 0)
        }
    }
       
    public reg_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, 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 0: Regisztralas(id)
        case 1:{
            if(reg_pont[id] == 0){
                client_cmd(id, "messagemode REGISZTRACIOS_JELSZO")
            }
            else if(reg_pont[id] == 1){
                client_cmd(id, "messagemode BELEPESI_JELSZO")
            }
        }
        case 2:{
            ef_jsz[id] = jelszo
            reg_pont[id] = 1
            ColorChat(id, RED, "^4.:[Pirate]:. ^3-^1 Sikeres regisztráció! Jelszavad:^3 %s", mentett_pw[id])
            Regisztralas(id)
            client_cmd(id, "setinfo _jelszo ^"%s^"", ef_jsz[id])
            regisztralas_mentese(id)
        }
        case 3:{
            if(equali(beirt_pw[id], mentett_pw[id])){
                belepve[id] = 1
                ColorChat(id, RED, "^4.:[Pirate]:. ^3-^1 Sikeresen beléptél!")
                kesmenu(id)
            }
            else if(probal[id] >= 2){
                server_cmd("kick #%i ^"3/3 próbálkozás után KICK!",get_user_userid(id))
            }
            else if(!equali(beirt_pw[id], mentett_pw[id])){
                probal[id]++
                ColorChat(id, RED, "^4.:[Pirate]:. ^3-^1 Hibás jelszó!")
                Regisztralas(id)
            }
        }
        case 4:{
            ColorChat(id, RED, "^4.:[Pirate]:. ^3-^1 Nem írtál be jelszót!")
            Regisztralas(id)
        }
    }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
     
    public belepes_jelszo(id){
        read_args(beirt_jelszo, charsmax(beirt_jelszo))
        remove_quotes(beirt_jelszo)
        new hossz = strlen(beirt_jelszo)
        if(equal(beirt_jelszo, ""))
            return PLUGIN_HANDLED
           
        if(hossz < 6)
        {
            ColorChat(id, RED, "^4.:[Pirate]:. ^3-^1 Jelszavadnak minimum ^36 ^1betűnek kell lennie!")
            client_cmd(id, "messagemode BELEPESI_JELSZO")
        }
        else
        {
            beirt_pw[id] = beirt_jelszo
            Regisztralas(id)
        }
        return PLUGIN_CONTINUE
    }
     
    public reg_jelszo(id){
        if(reg_pont[id] == 0){
            read_args(jelszo, charsmax(jelszo))
            remove_quotes(jelszo)
            new hossz = strlen(jelszo)
            if(equal(jelszo, ""))
            return PLUGIN_HANDLED
           
            if(hossz < 6)
            {
                ColorChat(id, RED, "^4.:[Pirate]:. ^3-^1 Jelszavadnak minimum ^36 ^1betűnek kell lennie!")
                client_cmd(id, "messagemode REGISZTRACIOS_JELSZO")
            }
            else
            {
                irt[id] = 1
                mentett_pw[id] = jelszo
                ef_jsz[id] = jelszo
                Regisztralas(id)
            }
        }
        return PLUGIN_CONTINUE
    }
     
    public regisztralas_mentese(id){
        new Buffer[256]
       
        new adate[128], name[32]
        get_time("%x", adate, sizeof adate - 1);   
       
        get_user_name(id, name, 31)
        format(Buffer, sizeof Buffer - 1, "^"%s^" ^"%s^" ^n^n^n^n", name, mentett_pw[id]);
       
        new file = fopen(users_db_file, "at+");
        fprintf(file, Buffer);
        fclose(file);
       
        return 1;
    }
     
    public nevvaltas(id){
        if(!is_user_connected(id))
            return FMRES_IGNORED
     
        new regi_nev[32], uj_nev[32], nev[32]
        get_user_name(id, nev, 31)
        pev(id, pev_netname, regi_nev, charsmax(regi_nev))
        if(regi_nev[0])
        {
            get_user_info(id, "name", uj_nev, charsmax(uj_nev))
            if(!equal(regi_nev, uj_nev))
            {
                if(belepve[id] == 1)
                {
                    set_user_info(id, "name", regi_nev)
                    ColorChat(id, RED, "^4.:[Pirate]:. ^3-^1 A név váltás tiltott!")
                    return FMRES_HANDLED
                }
                else
                {
                    set_user_info(id, "name", regi_nev)
                    ColorChat(id, RED, "^4.:[Pirate]:. ^3-^1 A név váltás tiltott!")
                    return FMRES_HANDLED
                }
            }
        }
        return FMRES_IGNORED
    }
    public save(id) {
        new vaultkey[64],vaultdata[256], name[32]
        get_user_name(id, name, 31)
        format(vaultkey,63,"%s-REG", name)
        format(vaultdata,255,"%i#",reg_pont[id])
        nvault_set(reg_vault,vaultkey,vaultdata)
        return PLUGIN_CONTINUE
    }
     
    public load(id) {
        new vaultkey[64],vaultdata[256], name[32]
        get_user_name(id, name, 31)
        format(vaultkey,63,"%s-REG", name)
        format(vaultdata,255,"%i#",reg_pont[id])
        nvault_get(reg_vault,vaultkey,vaultdata,255)
        replace_all(vaultdata, 255, "#", " ")
        new a3[32]
        parse(vaultdata, a3, 31)
        reg_pont[id] = str_to_num(a3)
        return PLUGIN_CONTINUE;
    }
    public client_disconnect(id)
    {
        mentes(id)
        save(id)
        Saved(id)
        belepve[id] = 0
        irt[id] = 0
        probal[id] = 0
        beirt_pw[id] = ""
    }
            Loaded(id)
            {
            new nev[35]
            get_user_name(id, nev, sizeof(nev)-1)
     
            new adatok[20]
            format(adatok, 19, "%s", mentett_pw[id]);
     
            if(fvault_get_data(file, nev, adatok, 19))
            {
            new pw[32]
            parse(adatok, pw, 31);
     
            mentett_pw[id] = pw
            }
            else
            {
            mentett_pw[id] = ""
            }
            }
            Saved(id)
            {
            new nev[35]
            get_user_name(id, nev, sizeof(nev)-1)
     
            new adatok[20]
            format(adatok, 19, "%s", mentett_pw[id]);
     
            fvault_set_data(file, nev, adatok)
            }
    public client_putinserver(id)
    {
    set_task(5.0, "Regisztralas", id)
    load(id)
    betoltes(id)
    Loaded(id)
    }
     
    stock print_color(const id, const input[], any:...)
    {
            new count = 1, players[32]
            static msg[191]
            vformat(msg, 190, input, 3)
     
            replace_all(msg, 190, "!g", "^4")
            replace_all(msg, 190, "!y", "^1")
            replace_all(msg, 190, "!t", "^3")
     
            if (id) players[0] = id; else get_players(players, count, "ch")
            {
                    for (new i = 0; i < count; i++)
                    {
                            if (is_user_connected(players[i]))
                            {
                                    message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                                    write_byte(players[i])
                                    write_string(msg)
                                    message_end()
                            }
                    }
            }
            return PLUGIN_HANDLED
    }
     
    /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
    *{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0\\ deflang1033{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
    */