#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <colorchat>
#include <fun>
 
new const PLUGIN[] = "Global Offensive";
new const VERSION[] = "1.1p";
new const AUTHOR[] = "DeR0iD";
 
#define MAX 500
#define LADAESELY 98
 
#define PointsMin 3
#define PointsMax 8
#define Drop 5
#define MarkMin 1
 
#pragma semicolon 1
 
#define ADMINRANG ADMIN_KICK
new bool: skinek[33];
new message[192];
new teamInfo;
new maxPlayers;
new strName[191];
new strText[191];
new alive[11];
 
new WeaponNames[MAX][32], WeaponMdls[MAX][48], Weapons[MAX], WeaponDrop[MAX], AllWeapon;
new UsingWeapon[9][33], uWeapon[MAX][33], Chest[33], pKey[33], Points[33], Rang[33], Kills[33],
aThing[33], aTarget[33], aPoints[33], Prefix[32];
new Folder[48], SkinFile[48], SaveFile[48], RegisterFile[48], DefaultSkinFile[48], RangFile[48], MenuMod[33], SayText;
new WeaponinMarket[33], bool: inMarket[33], MarketPoints[33], Choosen[33];
new SavedPassword[33][32], bool:Loged[33], Password[33][32], probalkozasok[33] = 0;
new DefaultSkin[31][32], NeedKills[30], Rangs[30][32];
new Selected[33];
 
new const eWeapon[][] =
{
    "weapon_famas", "weapon_usp", "weapon_awp", "weapon_scout", "weapon_glock18", "weapon_fiveseven", "weapon_xm1014", "weapon_mac10", "weapon_sg550", "weapon_m249", "weapon_tmp", "weapon_sg552", "weapon_galil", "weapon_p90", "weapon_aug", "weapon_p228", "weapon_ump45", "weapon_mp5navy", "weapon_m3", "weapon_m4a1",
    "weapon_deagle", "weapon_ak47", "weapon_knife", "weapon_flashbang", "weapon_hegrenade",
    "weapon_smokegrenade", "weapon_c4"
};
 
enum _:Fegyver{ uzi[64], nev[20], csw[20], golyo };
new const fegyverek[9][Fegyver] =
{
    { "AK47",   "weapon_ak47",      CSW_AK47,       90 },
    { "M4A1",   "weapon_m4a1",      CSW_M4A1,       90 },
    { "AWP",    "weapon_awp",       CSW_AWP,        30 },
    { "FAMAS",  "weapon_famas",     CSW_FAMAS,      90 },
    { "MP5",    "weapon_mp5navy",   CSW_MP5NAVY,        120 },
    { "M3",     "weapon_m3",        CSW_M3,         32 },
    { "DEAGLE",     "weapon_deagle",    CSW_DEAGLE,     35 },
    { "USP",    "weapon_usp",       CSW_USP,        100 },
    { "GLOCK",  "weapon_glock18",       CSW_GLOCK18,        100 }
};
 
public plugin_precache() {
    new Line[128], Data[4][48], Len;
    AllWeapon++;
    get_configsdir(Folder, 47);
    format(Folder, 47, "%s/rzglobal", Folder);
 
    format(SkinFile, 47, "%s/skins.cfg", Folder);
    format(SaveFile, 47, "%s/save.ini", Folder);
    format(RangFile, 47, "%s/rangs.cfg", Folder);
    format(RegisterFile, 47, "%s/reg.ini", Folder);
    format(DefaultSkinFile, 47, "%s/dskins.cfg", Folder);
    format(Prefix, 31, "[rezidencia Global Offensive]");
 
    if(file_exists(RangFile))
    {
        for(new i; i < file_size(RangFile, 1); i++)
        {
            read_file(RangFile, i, Line, 127, Len);
            parse(Line, Data[0], 31, Data[1], 31);
 
            copy(Rangs[i], 31, Data[0]);
            NeedKills[i] = str_to_num(Data[1]);
        }
    }
    if(file_exists(SkinFile))
    {
        for(new i; i < file_size(SkinFile, 1); i++)
        {
            if(AllWeapon >= MAX-1) break;
            read_file(SkinFile, i, Line, 127, Len);
 
            if(!strlen(Line) || Line[0] == ';')
                continue;
 
            parse(Line, Data[0], 31, Data[1], 31, Data[2], 47, Data[3], 31);
 
            Weapons[AllWeapon] = str_to_num(Data[0]);
            copy(WeaponNames[AllWeapon], 31, Data[1]);
 
            if(ValidMdl(Data[2])) {
                precache_model(Data[2]);
                copy(WeaponMdls[AllWeapon], 47, Data[2]);
            }
 
            WeaponDrop[AllWeapon] = str_to_num(Data[3]);
            AllWeapon++;
        }
    }
    if(file_exists(DefaultSkinFile))
    {
        for(new i; i < file_size(DefaultSkinFile, 1); i++)
        {
            read_file(DefaultSkinFile, i, Line, 127, Len);
 
            if(!strlen(Line) || Line[0] == ';')
                continue;
 
            parse(Line, Data[0], 31, Data[1], 47);
 
            if(ValidMdl(Data[1])) {
                precache_model(Data[1]);
                copy(DefaultSkin[str_to_num(Data[0])], 47, Data[1]);
            }
        }
    }
}
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_cvar(PLUGIN, VERSION, FCVAR_SERVER);
    
    register_clcmd("say /menu", "MenuOpen");
    register_clcmd("say /reg", "RegMenu");
    register_clcmd("say /gun", "Guns");
    register_clcmd("say /guns", "Guns");
 
    register_concmd("Cost", "MarketCost");
    register_concmd("Gift", "GiftPoint");
    register_concmd("UserPassword", "PlayerPassword");
 
    register_forward(FM_CmdStart, "CmdStart" );
 
    SayText = get_user_msgid("SayText");
    teamInfo = get_user_msgid ("TeamInfo");
    maxPlayers = get_maxplayers();
 
    register_message (SayText, "avoid_duplicated");
 
    register_forward(FM_ClientUserInfoChanged, "ClientInfoChanged");
    RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1);
 
    for(new i; i < sizeof(eWeapon); i++)
        RegisterHam(Ham_Item_Deploy, eWeapon[i], "WeaponSwitch", 1);
 
    register_clcmd ("say", "hook_say");
    register_clcmd ("say_team", "hook_teamsay");
}
public client_connect(id)
{
    skinek[id]=true;
    probalkozasok[id] = 0;
    Selected[id] = 0;
    for(new i; i<9; i++)
        UsingWeapon[i][id]=0;
    for(new i = 1; i < AllWeapon; i++)
        uWeapon[i][id]=0;
}
public CmdStart(id, uc_handle, seed) 
{ 
    if(get_uc(uc_handle, UC_Impulse) == 201) 
    MenuOpen(id);
} 
public Guns(id) 
{
    if(Choosen[id] < 1)
    {
        Choosen[id] = 0;
        WeaponMenu(id);
    }
}
public PlayerSpawn(id) 
{
    if(is_user_alive(id))
    {
        Choosen[id] = 0;
        cs_set_user_money(id, 0, 0);
        if(user_has_weapon(id, CSW_C4))
        {
            strip_user_weapons(id);
            give_item(id, "weapon_c4");
            give_item(id, "weapon_knife");
            WeaponMenu(id);
            return PLUGIN_HANDLED;
        }
 
        strip_user_weapons(id);
        give_item(id, "weapon_knife");
        WeaponMenu(id);
 
        if(cs_get_user_team(id) == CS_TEAM_CT)
            cs_set_user_defuse(id, 1);
    }
    return PLUGIN_CONTINUE;
}
public MenuOpen(id)
{
    if(!Loged[id])
    {
        RegMenu(id);
        return PLUGIN_HANDLED;
    }
 
    MenuMod[id] = 0;
    Menu(id);
    return PLUGIN_CONTINUE;
}
public client_death(Killer, Victim)
{
    if(Killer == Victim)
        return PLUGIN_HANDLED;
 
    Kills[Killer]++;
 
    if(Rang[Killer] < sizeof(Rangs) && Rang[Killer] < file_size(RangFile, 1)-1)
        if(Kills[Killer] >= NeedKills[Rang[Killer]])
            Rang[Killer]++;
 
    new pPont, Name[32];
 
    pPont += random_num(PointsMin, PointsMax);
    Points[Killer] += pPont;
 
    set_hudmessage(255, 255, 255, -1.0, 0.15, 0, 6.0, 2.0);
    show_hudmessage(Killer, "+%d Euro", pPont);
 
 
    if(Drop >= random_num(1, 100))
    {
        get_user_name(Killer, Name, 31);
        new x = random_num(1, 4);
        if(x == 1)
        {
            pKey[Killer]++;
            print_color(0, "!g%s!t %s !y talált egy!g Kulcsot!y!", Prefix, Name);
        }
        if(x == 2 || x == 3)
        {
            Chest[Killer]++;
            print_color(0, "!g%s!t %s!y talált egy!g Ládát!y!", Prefix, Name);
        }
    }
    Save(Killer);
    return PLUGIN_CONTINUE;
}
public MarketCost(id)
{
    if(inMarket[id] || !Loged[id])
        return PLUGIN_HANDLED;
 
    new Data[32], Cost;
    read_args(Data, 31);
    remove_quotes(Data);
 
    Cost = str_to_num(Data);
 
    if(Cost < 0)
    {
        client_cmd(id, "messagemode Cost");
        return PLUGIN_CONTINUE;
    }
    else if(MarkMin >= Cost)
    {
        print_color(id, "%s!t %d!y euro alatt nem tudsz eladni semmit!", Prefix, MarkMin);
        client_cmd(id, "messagemode Cost");
        return PLUGIN_CONTINUE;
    }
    else
    {
        MarketPoints[id] = Cost;
        MenuMod[id] = 3;
        Menu(id);
        return PLUGIN_CONTINUE;
    }
    return PLUGIN_CONTINUE;
}
public GiftPoint(id)
{
    if(inMarket[id] || !Loged[id])
        return PLUGIN_HANDLED;
 
    new Data[32], Cost;
    read_args(Data, 31);
    remove_quotes(Data);
 
    Cost = str_to_num(Data);
 
    if(Cost < 0 || Points[id] < Cost)
    {
        client_cmd(id, "messagemode Gift");
        return PLUGIN_CONTINUE;
    }
    else
    {
        aPoints[id] = Cost;
        MenuMod[id] = 5;
        Menu(id);
        return PLUGIN_CONTINUE;
    }
    return PLUGIN_CONTINUE;
}
public WeaponSwitch(Weapon) {
    new id = get_pdata_cbase(Weapon, 41, 4);
    new wid = cs_get_weapon_id(Weapon);
 
    if(id > 32 || id < 1)
    {
        return HAM_SUPERCEDE;
    }
 
    if(skinek[id])
    {
        for(new j; j<9; j++)
        {
            if(wid == Weapons[UsingWeapon[j][id]])
            {
                set_pev(id, pev_viewmodel2, WeaponMdls[UsingWeapon[j][id]]);
                return HAM_SUPERCEDE;
            }
        }
        if(ValidMdl(DefaultSkin[wid]))
            set_pev(id, pev_viewmodel2, DefaultSkin[wid]);
    }
    return HAM_IGNORED;
}
public ChestOpen(id)
{
    new rWeapon, rNum = random_num(1, 100);
    if(LADAESELY >= rNum)
    {
        do
        {
            rWeapon = random_num(1, (AllWeapon-1));
            rNum = random_num(1, 100);
        }
        while(WeaponDrop[rWeapon] < rNum);
 
        new Name[32];
        get_user_name(id, Name, 31);
        print_color(0, "!g%s!t %s!y talált egy!t %s!y-t.", Prefix, Name, WeaponNames[rWeapon]);
        uWeapon[rWeapon][id]++;
        Save(id);
    }
    else
        print_color(id, "!g%s!y Sajnos ebben a ládában nem volt semmi!", Prefix);
}
public Menu(id)
{
    if(!Loged[id])
    {
        RegMenu(id);
        return PLUGIN_CONTINUE;
    }
 
    new sMenu, Line[128];
 
    if(MenuMod[id] == -2)
    {
        formatex(Line, 127, "\r%s\y Válassz valamit! \d[Euro: \y%d\d]", Prefix, Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        new String[32], All;
        for(new i = 1; i < AllWeapon; i++)
        {
            if(uWeapon[i][id] == 0)
                continue;
 
            num_to_str(i, String, 31);
            formatex(Line, 127, "\r%s \d|\y %d darab", WeaponNames[i], uWeapon[i][id]);
            menu_additem(sMenu, Line, String);
            All++;
        }
        if(Chest[id] > 0)
        {
            formatex(Line, 127, "\rLáda \d|\y %d darab", Chest[id]);
            menu_additem(sMenu, Line, "101");
            All++;
        }
        if(pKey[id] > 0)
        {
            formatex(Line, 127, "\rKulcs \d|\y %d darab", pKey[id]);
            menu_additem(sMenu, Line, "102");
            All++;
        }
        if(Points[id] > 0)
        {
            formatex(Line, 127, "\rEuro \d|\y %d", Points[id]);
            menu_additem(sMenu, Line, "103");
            All++;
        }
        if(All == 0)
        {
            MenuMod[id] = 0;
            Menu(id);
            return PLUGIN_CONTINUE;
        }
    }
    else if(MenuMod[id] == -1)
    {
        formatex(Line, 127, "\r%s\y Válassz valamit! \d[Euro: \y%d\d]", Prefix, Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        new String[32], All;
        for(new i = 1; i < AllWeapon; i++)
        {
            if(uWeapon[i][id] == 0)
                continue;
 
            num_to_str(i, String, 31);
            formatex(Line, 127, "\r%s \d|\y %d darab", WeaponNames[i], uWeapon[i][id]);
            menu_additem(sMenu, Line, String);
            All++;
        }
        if(Chest[id] > 0)
        {
            formatex(Line, 127, "\rLáda \d|\y %d darab", Chest[id]);
            menu_additem(sMenu, Line, "101");
            All++;
        }
        if(pKey[id] > 0)
        {
            formatex(Line, 127, "\rKulcs \d|\y %d darab", pKey[id]);
            menu_additem(sMenu, Line, "102");
            All++;
        }
        if(All == 0)
        {
            MenuMod[id] = 0;
            Menu(id);
            return PLUGIN_CONTINUE;
        }
    }
    else if(MenuMod[id] == 0)
    {
        formatex(Line, 127, "\r%s\y Fõ menü \d[Euro: \y%d\d]", Prefix, Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        formatex(Line, 127, "Felszerelés");
        menu_additem(sMenu, Line, "1");
 
        if(!inMarket[id])
        {
            formatex(Line, 127, "Láda nyitás");
            menu_additem(sMenu, Line, "2");
        }
        else
        {
            formatex(Line, 127, "Láda nyitás \d[Piacozás közben nem engedélyezett]");
            menu_additem(sMenu, Line, "0");
        }
        formatex(Line, 127, "Piac");
        menu_additem(sMenu, Line, "3");
 
        if(!inMarket[id])
        {
            formatex(Line, 127, "Ajándékozás^n");
            menu_additem(sMenu, Line, "5"); 
            if(Rang[id] == file_size(RangFile, 1) -1)
                formatex(Line, 127, "\wSkinek:\d %s^n\rRangod:\d %s \y[Ölés: \r%d]", skinek[id] ? "\yBekapcsolva" : "\rKikapcsolva", Rangs[Rang[id]], Kills[id]);
            else
                formatex(Line, 127, "\wSkinek:\d %s^n\rKövetkezõ Rangod:\d %s \y[Ölés: \r%d\d/\r%d]", skinek[id] ? "\yBekapcsolva" : "\rKikapcsolva", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]);
            menu_additem(sMenu, Line, "6");
        }
        else
        {
            formatex(Line, 127, "Ajándékozás \d[Piacozás közben nem engedélyezett]^n");
            menu_additem(sMenu, Line, "0");
            if(Rang[id] == file_size(RangFile, 1) -1)
                formatex(Line, 127, "\wSkinek:\d %s^n\rRangod:\d %s \y[Ölés: \r%d]", skinek[id] ? "\yBekapcsolva" : "\rKikapcsolva", Rangs[Rang[id]], Kills[id]);
            else
                formatex(Line, 127, "\wSkinek:\d %s^n\rKövetkezõ Rangod:\d %s \y[Ölés: \r%d\d/\r%d]", skinek[id] ? "\yBekapcsolva" : "\rKikapcsolva", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]);
            menu_additem(sMenu, Line, "6");
        }
    }
    else if(MenuMod[id] == 1)
    {
        formatex(Line, 127, "\r%s\y Felszerelés \d[Euro: \y%d\d]", Prefix, Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        new String[32], All;
        for(new i = 1; i < AllWeapon; i++)
        {
            if(uWeapon[i][id] == 0)
                continue;
 
            formatex(String, 31, "%d %d", i, Weapons[i]);
            formatex(Line, 127, "\r%s \d|\y %d darab", WeaponNames[i], uWeapon[i][id]);
            menu_additem(sMenu, Line, String);
            All++;
        }
        if(All == 0)
        {
            MenuMod[id] = 0;
            Menu(id);
            return PLUGIN_CONTINUE;
        }
    }
    else if(MenuMod[id] == 2)
    {
        formatex(Line, 127, "\r%s\y Láda nyitás ^n\rLáda:\y %d \w| \rKulcs:\y %d", Prefix, Chest[id], pKey[id]);
        sMenu = menu_create(Line, "MenuHandler");
        formatex(Line, 127, "Láda nyitás \d[1 láda és 1 kulcs]");
        menu_additem(sMenu, Line, "1");
    }
    else if(MenuMod[id] == 3)
    {
        formatex(Line, 127, "\r%s\y Piac \d[Euro: \y%d\d]", Prefix, Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        new String[32], All;
        if(!inMarket[id])
        {
            for(new i = 1; i < AllWeapon; i++)
            {
                if(i == WeaponinMarket[id] && uWeapon[i][id] > 0)
                {
                    formatex(Line, 127, "\rStandod:\d %s^n\yÁra:\d %d", WeaponNames[i], MarketPoints[id]);
                    All++;
                }
            }
 
            if(101 == WeaponinMarket[id] && Chest[id] > 0)
            {
                formatex(Line, 127, "\rStandod:\d Láda^n\yÁra:\d %d", MarketPoints[id]);
                All++;
            }
            if(102 == WeaponinMarket[id] && pKey[id] > 0)
            {
                formatex(Line, 127, "\rStandod:\d Kulcs^n\yÁra:\d %d", MarketPoints[id]);
                All++;
            }
 
            if(All == 0)
                formatex(Line, 127, "\dVálasz valamit!");
            menu_additem(sMenu, Line, "-1");
        }
 
        if(!inMarket[id])
            formatex(Line, 127, "\rMehet^n");
        else
            formatex(Line, 127, "\dVissza^n");
        menu_additem(sMenu, Line, "0");
 
        new Name[32];
        for(new x; x < 32; x++)
        {
            if(!is_user_connected(x))
                continue;
 
            if(inMarket[x] && MarketPoints[x] > 0)
            {
                num_to_str(x, String, 31);
                get_user_name(x, Name, 31);
                if(101 == WeaponinMarket[x])
                {
                    formatex(Line, 127, "\r%s \d|\y Láda \d| \rÁra:\y %d", Name, MarketPoints[x]);
                    menu_additem(sMenu, Line, String);
                }
                else if(102 == WeaponinMarket[x])
                {
                    formatex(Line, 127, "\r%s \d|\y Kulcs \d| \rÁra:\y %d", Name, MarketPoints[x]);
                    menu_additem(sMenu, Line, String);
                }
                else
                {
                    formatex(Line, 127, "\r%s \d|\y %s \d| \rÁra:\y %d", Name, WeaponNames[WeaponinMarket[x]], MarketPoints[x]);
                    menu_additem(sMenu, Line, String);
                }
            }
        }
    }
    else if(MenuMod[id] == 5)
    {
        formatex(Line, 127, "\r%s\y Ajándékozás \d[Arany: \y%d\d]", Prefix, Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        new All, Name[32], String[32];
        get_user_name(aTarget[id], Name, 31);
 
        if(aTarget[id] > 0)
        {
            if(aPoints[id] == 0)
                aPoints[id] = 1;
            formatex(Line, 127, "Játékos: \d%s", Name);
            menu_additem(sMenu, Line, "-1");
            for(new i = 1; i < AllWeapon; i++)
            {
                if(i == aThing[id] && uWeapon[i][id] > 0)
                {
                    formatex(Line, 127, "Ajándék:\d %s^n", WeaponNames[i]);
                    menu_additem(sMenu, Line, "-2");
                    All++;
                }
            }
 
            if(aThing[id] == 0 && All == 0)
            {
                formatex(Line, 127, "Válasz valamit!^n");
                menu_additem(sMenu, Line, "-2");
            }
            else if(aThing[id] > 100)
            {
                if(101 == aThing[id])
                {
                    formatex(Line, 127, "Ajándék:\d Láda");
                }
                if(102 == aThing[id])
                {
                    formatex(Line, 127, "Ajándék:\d Kulcs");
                }
                if(103 == aThing[id])
                {
                    formatex(Line, 127, "Ajándék:\d Arany");
                }
                menu_additem(sMenu, Line, "-2");
            }
            formatex(Line, 127, "Mennyiség:\d %d^n", aPoints[id]);
            menu_additem(sMenu, Line, "-4");
            formatex(Line, 127, "\yKüldés!");
            menu_additem(sMenu, Line, "-3");
        }
        else
        {
            for(new i; i < 32; i++)
            {
                if(is_user_connected(i) && i != id)
                {
                    get_user_name(i, Name, 31);
                    num_to_str(i, String, 31);
                    menu_additem(sMenu, Name, String);
                }
            }
        }
    }
    menu_display(id, sMenu);
    return PLUGIN_CONTINUE;
}
 
public MenuHandler(id, gMenu, Key)
{   
    if(Key == MENU_EXIT)
    {
        MenuMod[id] = 0;
        menu_destroy(gMenu);
        return PLUGIN_HANDLED;
    }
    new aMenu[2], Data[4][32], sKey[32], Name[32], mName[32];
    menu_item_getinfo(gMenu, Key, aMenu[0], Data[0], 31, Data[1], 31, aMenu[1]);
 
    parse(Data[0], sKey, 31);
    Key = str_to_num(sKey);
 
    if(MenuMod[id] == -2)
    {
        aThing[id] = Key;
        MenuMod[id] = 5;
        Menu(id);
        return PLUGIN_CONTINUE;
    }
    else if(MenuMod[id] == -1)
    {
        WeaponinMarket[id] = Key;
        client_cmd(id, "messagemode Cost");
        return PLUGIN_CONTINUE;
    }
    else if(MenuMod[id] == 0)
    {
        if(Key==6)
        {
            if(skinek[id]) skinek[id]=false;
            else skinek[id]=true;
            MenuMod[id] = 0;
        }   
        else
            MenuMod[id] = Key;
        Menu(id);
        return PLUGIN_CONTINUE;
    }
    else if(MenuMod[id] == 1)
    {
        parse(Data[0], Data[2], 31, Data[3], 31);
 
        if(str_to_num(Data[3]) == 28)
            UsingWeapon[0][id] = str_to_num(Data[2]);
        else if(str_to_num(Data[3]) == 18)
            UsingWeapon[1][id] = str_to_num(Data[2]);
        else if(str_to_num(Data[3]) == 15)
            UsingWeapon[2][id] = str_to_num(Data[2]);
        else if(str_to_num(Data[3]) == 29)
            UsingWeapon[3][id] = str_to_num(Data[2]);
        else if(str_to_num(Data[3]) == 21)
            UsingWeapon[4][id] = str_to_num(Data[2]);
        else if(str_to_num(Data[3]) == 22)
            UsingWeapon[5][id] = str_to_num(Data[2]);
        else if(str_to_num(Data[3]) == 19)
            UsingWeapon[6][id] = str_to_num(Data[2]);
        else if(str_to_num(Data[3]) == 16)
            UsingWeapon[7][id] = str_to_num(Data[2]);
        else if(str_to_num(Data[3]) == 26)
            UsingWeapon[8][id] = str_to_num(Data[2]);
        return PLUGIN_CONTINUE;
    }
    else if(MenuMod[id] == 2)
    {
        if(Key == 1)
        {
            if(Chest[id] > 0 && pKey[id] > 0)
            {
                Chest[id]--;
                pKey[id]--;
                ChestOpen(id);
                Menu(id);
                return PLUGIN_CONTINUE;
            }
        }
        return PLUGIN_CONTINUE;
    }
    else if(MenuMod[id] == 3)
    {
        if(Key == -1)
        {
            MenuMod[id] = -1;
            Menu(id);
            return PLUGIN_CONTINUE;
        }
        else if(Key == 0)
        {
            if(inMarket[id])
                inMarket[id] = false;
            else if(MarketPoints[id] > 0)
            {
                get_user_name(id, Name, 31);
                if(WeaponinMarket[id] > 100)
                    print_color(0, "!g%s!t %s!y kirakott egy !t%s!g %d!y Euroért!",Prefix, Name, (WeaponinMarket[id] == 101) ? "Ládát" : "Kulcsot", MarketPoints[id]);
                else
                    print_color(0, "!g%s!t %s!y kirakott egy !t%s !y-t!g %d!y Euroért!",Prefix, Name, WeaponNames[WeaponinMarket[id]], MarketPoints[id]);
                inMarket[id] = true;
            }
            Menu(id);
            return PLUGIN_CONTINUE;
        }
        else if(inMarket[Key] && Points[id] >= MarketPoints[Key])
        {
            get_user_name(Key, Name, 31);
            get_user_name(id, mName, 31);
            if(WeaponinMarket[Key] < 101)
            {
                print_color(0, "!g%s!t %s!y vásárolt egy!t %s!y-t!g %d!y Euroért !t%s!y-tól/tõl!", Prefix, mName, WeaponNames[WeaponinMarket[Key]], MarketPoints[Key], Name);
                uWeapon[WeaponinMarket[Key]][id]++;
                uWeapon[WeaponinMarket[Key]][Key]--;
            }
            else if(WeaponinMarket[Key] == 101)
            {
                print_color(0, "!g%s!t %s!y vásárolt egy!t ládát!g %d!y Euroért !t%s!y-tól/tõl!", Prefix, mName, MarketPoints[Key], Name);
                Chest[id]++;
                Chest[Key]--;
            }
            else if(WeaponinMarket[Key] == 102)
            {
                print_color(0, "!g%s!t %s!y vásárolt egy!t kulcsot!g %d!y Euroért !t%s!y-tól/tõl!", Prefix, mName, MarketPoints[Key], Name);
                pKey[id]++;
                pKey[Key]--;
            }
            Points[Key] += MarketPoints[Key];
            Points[id] -= MarketPoints[Key];
            Save(Key);
            Save(id);
            inMarket[Key] = false;
            MarketPoints[Key] = 0;
            WeaponinMarket[Key] = 0;
            MenuMod[id] = 0;
        }
        return PLUGIN_CONTINUE;
    }
    else if(MenuMod[id] == 5)
    {
        if(Key == -1)
        {
            aTarget[id] = 0;
        }
        if(Key == -2)
        {
            MenuMod[id] = -2;
        }
        if(Key == -3)
        {
            if(aThing[id] < 100)
            {
                if(uWeapon[aThing[id]][id] > 0)
                {
                    if(uWeapon[aThing[id]][id]<aPoints[id])
                    {
                        client_cmd(id, "messagemode Gift");
                        print_color(id, "!g%s !yNincs !g%d !t%s!y fegyvered.", Prefix, aPoints[id], WeaponNames[aThing[id]]);
                        return PLUGIN_CONTINUE;
                    }
                    uWeapon[aThing[id]][aTarget[id]]+=aPoints[id];
                    uWeapon[aThing[id]][id]-=aPoints[id];
                    new Name[32], Name2[32];
                    get_user_name(id, Name, 31);
                    get_user_name(aTarget[id], Name2, 31);
                    print_color(id, "!g%s !yKüldtél !t%s!y-nak/nek !g%d !t%s!y-t", Prefix, Name2, aPoints[id], WeaponNames[aThing[id]]);
                    print_color(aTarget[id], "!g%s !t%s !yküldött !g%d !t%s!y-t.", Prefix, Name, aPoints[id], WeaponNames[aThing[id]]);
                    Save(aTarget[id]);
                    Save(id);
                    MenuMod[id] = 0;
                    aThing[id] = 0;
                    aTarget[id] = 0;
                    aPoints[id] = 0;
 
                }
            }
            else
            {
                new Name[32], Name2[32];
                get_user_name(id, Name, 31);
                get_user_name(aTarget[id], Name2, 31);
                if(101 == aThing[id])
                {
                    if(Chest[id]<aPoints[id])
                    {
                        client_cmd(id, "messagemode Gift");
                        print_color(id, "!g%s !yNincs !g%d !tládád!y.", Prefix, aPoints[id]);
                        return PLUGIN_CONTINUE;
                    }
                    Chest[aTarget[id]]+=aPoints[id];
                    Chest[id]-=aPoints[id];
                    print_color(id, "!g%s !yKüldtél !t%s!y-nak/nek!g %d!t Ládát!y.", Prefix, Name2, aPoints[id]);
                    print_color(aTarget[id], "!g%s !t%s !yküldött!g %d!t Ládát!y.", Prefix, Name, aPoints[id]);
                }
                else if(102 == aThing[id])
                {
                    if(pKey[id]<aPoints[id])
                    {
                        client_cmd(id, "messagemode Gift");
                        print_color(id, "!g%s !yNincs !g%d!t kulcsod!y.", Prefix, aPoints[id]);
                        return PLUGIN_CONTINUE;
                    }
                    pKey[aTarget[id]]+=aPoints[id];
                    pKey[id]-=aPoints[id];
                    print_color(id, "!g%s !yKüldtél !t%s!y-nak/nek!g %d!t Kulcsot!y.", Prefix, Name2, aPoints[id]);
                    print_color(aTarget[id], "!g%s !t%s !yküldött!g %d!t Kulcsot!y.", Prefix, Name, aPoints[id]);
                }
                else if(103 == aThing[id])
                {
                    if(Points[id]<aPoints[id])
                    {
                        client_cmd(id, "messagemode Gift");
                        print_color(id, "!g%s !yNincs !g%d aranyad.", Prefix, aPoints[id]);
                        return PLUGIN_CONTINUE;
                    }
                    Points[aTarget[id]] += aPoints[id];
                    Points[id] -= aPoints[id];
                    print_color(id, "!g%s !yKüldtél !t%s!y-nak/nek !g%d!t Eurot!y.", Prefix, Name2, aPoints[id]);
                    print_color(aTarget[id], "!g%s !t%s !yküldött !g%d!t Eurot!y.", Prefix, Name, aPoints[id]);
                }
                Save(aTarget[id]);
                Save(id);
                MenuMod[id] = 0;
                aThing[id] = 0;
                aTarget[id] = 0;
                aPoints[id] = 0;
            }
        }
        if(Key == -4)
        {
            client_cmd(id, "messagemode Gift");
            return PLUGIN_CONTINUE;
        }
        if(Key > 0)
            aTarget[id] = Key;
        Menu(id);
        return PLUGIN_CONTINUE;
    }
    MenuMod[id] = 0;
    return PLUGIN_CONTINUE;
}
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, SayText, _, Players[i]);
                write_byte(Players[i]);
                write_string(Msg);
                message_end();
            }
        }
    }
    return PLUGIN_HANDLED;
}
public client_putinserver(id)
{
    Kills[id] = 0, Rang[id] = 0, Points[id] = 0, Choosen[id] = 0, pKey[id] = 0, Chest[id] = 0;
    for(new i; i < AllWeapon; i++)
        uWeapon[i][id] = 0;
    Load(id);
    Password[id] = "";
    SavedPassword[id] = "";
    Loged[id] = false;
}
public Load(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;
 
    new pFile, Name[32];
    pFile = fopen(SaveFile, "rt");
    get_user_name(id, Name, 31);
 
    if(pFile)
    {
        new Line[1024];
        new LineName[32];
        new data[16];
 
        while(!feof(pFile))
        {
            fgets(pFile, Line, 1023);
 
            if(Line[0] == ';' || !strlen(Line))
                continue;
 
            strbreak(Line, LineName, 31, Line, 1023);
 
            if(equal(LineName, Name))
            {
                strbreak(Line, data, 15, Line, 1023); Kills[id] = str_to_num(data);
                strbreak(Line, data, 15, Line, 1023); Points[id] = str_to_num(data);
                strbreak(Line, data, 15, Line, 1023); pKey[id] = str_to_num(data);
                strbreak(Line, data, 15, Line, 1023); Chest[id] = str_to_num(data);
                strbreak(Line, data, 15, Line, 1023); Rang[id] = str_to_num(data);
                for(new i; i < MAX; i++)
                {
                    strbreak(Line, data, 15, Line, 1023);
                    uWeapon[i][id] = str_to_num(data);
                }
                fclose(pFile);
                return PLUGIN_HANDLED;
            }
        }
        fclose(pFile);
    }
    return PLUGIN_CONTINUE;
}
public Save(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;
 
    new pFile, Name[32];
    pFile = fopen(SaveFile, "rt");
    get_user_name(id, Name, 31);
 
    if(pFile)
    {
        new Line[192], Lines;
        new LineName[32], bool:Found;
        new mLine[1024], LoadWeapon[1024], String[16];
 
        format(String, 15, "^"%i^" ", Kills[id]);
        add(LoadWeapon, 1023, String);
 
        format(String, 15, "^"%i^" ", Points[id]);
        add(LoadWeapon, 1023, String);
 
        format(String, 15, "^"%i^" ", pKey[id]);
        add(LoadWeapon, 1023, String);
 
        format(String, 15, "^"%i^" ", Chest[id]);
        add(LoadWeapon, 1023, String);
 
        format(String, 15, "^"%i^" ", Rang[id]);
        add(LoadWeapon, 1023, String);
 
        for(new i; i < MAX; i++)
        {
            format(String, 15, "^"%i^" ", uWeapon[i][id]);
            add(LoadWeapon, 1023, String);
        }
 
        formatex(mLine, 1023, "^"%s^" %s", Name, LoadWeapon);
        while(!feof(pFile))
        {
            fgets(pFile, Line, 191);
 
            if(Line[0] == ';' || strlen(Line) < 2)
                continue;
 
            parse(Line, LineName, 31);
 
            if(equal(LineName, Name) && !Found)
            {
                write_file(SaveFile, mLine, Lines);
                fclose(pFile);
                Found = true;
                return PLUGIN_HANDLED;
            }
 
            Lines++;
        }
 
        if(!Found)
        {
            write_file(SaveFile, mLine);
            fclose(pFile);
            return PLUGIN_HANDLED;
        }
        fclose(pFile);
    }
    return PLUGIN_CONTINUE;
}
public WeaponMenu(id)
{
    if(Choosen[id] >= 2)
        return PLUGIN_HANDLED;
    new String[128];
    format(String, 127, "\r%s\y Fegyvermenü", Prefix);
    new wMenu = menu_create(String, "wMenuHandler");
    new szid[10];
    if(Choosen[id] == 0)
    {
        for(new i=0; i < 6; i++)
        {
            num_to_str(i, szid, charsmax(szid));
            format(String, 127, "%s", fegyverek[i][uzi]);
            menu_additem(wMenu, String, szid);
        }
    }
    if(Choosen[id] == 1)
    {
        for(new i=6; i < 8; i++)
        {
            num_to_str(i, szid, charsmax(szid));
            format(String, 127, "%s", fegyverek[i][uzi]);
            menu_additem(wMenu, String, szid);
        }
    }
 
    menu_display(id, wMenu);
    return PLUGIN_CONTINUE;
}
public wMenuHandler(id, gMenu, item)
{   
    if(item == MENU_EXIT)
    {
        menu_destroy(gMenu);
        return;
    }
    new data[32], name[64];
    new access, callback;
    menu_item_getinfo(gMenu, item, access, data, charsmax(data), name, charsmax(name), callback);
 
    new szam = str_to_num(data);
    give_item(id, fegyverek[szam][nev]);
    cs_set_user_bpammo(id, fegyverek[szam][csw], fegyverek[szam][golyo]);
    Choosen[id]++;
 
    if(Choosen[id] >= 2)
        Grenades(id);
 
    WeaponMenu(id);
}
public RegMenu(id)
{
    new String[128], Name[32];
    if(Registered(id))
        format(String, 127, "\r%s\y Regisztrációs Menü^n\rStátusz: \dRegisztrálva^n\rPróbálkozások:\d %d/3", Prefix, probalkozasok[id]);
    else
        format(String, 127, "\r%s\y Regisztrációs Menü^n\rStátusz: \dNem regisztrált", Prefix);
    new rMenu = menu_create(String, "rMenuHandler");
    get_user_name(id, Name, 31);
 
    format(String, 127, "\wFelhasznaló:\d %s", Name);
    menu_additem(rMenu, String, "0");
 
    if(!Registered(id))
    {
        format(String, 127, "\wJelszó:\d %s^n", Password[id]);
        menu_additem(rMenu, String, "1");
 
        if(strlen(Password[id]) > 4)
        {
            format(String, 127, "Regisztrálok");
            menu_additem(rMenu, String, "2");
        }
        else
        {
            format(String, 127, "\dRegisztrálok");
            menu_additem(rMenu, String, "0");
        }
    }
    else
    {
        if(!Loged[id])
        {
            format(String, 127, "\wJelszó:\d %s^n", Password[id]);
            menu_additem(rMenu, String, "1");
 
            format(String, 127, "Bejelentkezés!");
            menu_additem(rMenu, String, "3");
        }
        else
        {
            format(String, 127, "Kijelentkezés!");
            menu_additem(rMenu, String, "-1");
        }
    }
 
    menu_display(id, rMenu);
}
public rMenuHandler(id, gMenu, item)
{   
    if(item == MENU_EXIT)
    {
        menu_destroy(gMenu);
        return;
    }
    new data[9], name[64], Key;
    new access, callback;
    menu_item_getinfo(gMenu, item, access, data, charsmax(data), name, charsmax(name), callback);
 
    Key = str_to_num(data);
 
    if(Key == -1)
        ToLogout(id);
    if(Key == 0)
        RegMenu(id);
    if(Key == 1)
    {
        client_cmd(id, "messagemode UserPassword");
        RegMenu(id);
    }
    if(Key == 2)
    {
        print_color(id, "!g%s!y Sikeres regisztráció! [Jelszavad: !t%s!y]", Prefix, Password[id]);
        Register(id, Password[id]);
        copy(SavedPassword[id], 31, Password[id]);
        Loged[id] = true;
        Menu(id);
    }
    if(Key == 3)
    {
        if(equal(SavedPassword[id], Password[id])) {
            Loged[id] = true;
            print_color(id, "!g%s!y Sikeresen beléptél!", Prefix);
            Menu(id);
        }
        else
        {
            probalkozasok[id]++;
            if(probalkozasok[id] >= 3)
            {
                server_cmd("kick #%i ^"3x elrotottad a jelszot. Ezert kickelve lettel.^"", get_user_userid(id));
                probalkozasok[id]=0;
                return;
            }
            client_cmd(id, "messagemode UserPassword");
            print_color(id, "!g%s !yHibás jelszó. 3. sikertelen probálkozás utan kick jár. Probálkozások: %d/3", Prefix, probalkozasok[id]);
            RegMenu(id);
        }
    }
}
public ToLogout(id)
{
    if(Loged[id])
    {
        Loged[id] = false;
        Password[id] = "";
        print_color(id, "!g%s!y Sikeresen kiléptél!", Prefix);
    }
}
public PlayerPassword(id)
{
    new Data[32];
    read_args(Data, 31);
    remove_quotes(Data);
 
    if(strlen(Data) < 5)
    {
        print_color(id, "!g%s!y Túl rövid a jelszó!", Prefix);
        client_cmd(id, "messagemode UserPassword");
        return PLUGIN_HANDLED;
    }
 
    if(Loged[id])
        return PLUGIN_HANDLED;
 
    copy(Password[id], 31, Data);
    RegMenu(id);
    return PLUGIN_CONTINUE;
}
 
public ClientInfoChanged(id)
    set_task(1.0, "NameConrol",id);
public NameConrol(id){
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE;
    new name[31];
    get_user_name(id, name, 30);
    new userid = get_user_userid(id);
    if (contain(name, "#Spec_Help_Text") != -1 || contain(name, "#Cstrike_Spetsnaz_Label") != -1 || contain(name, "#Buy") != -1 || contain(name, "#Cstrike_GIGN_Label") != -1 || contain(name, "#Spec_Duck") != -1)
    {
        server_cmd("kick #%d Ilyent nem szabad!",userid);
        return PLUGIN_HANDLED;
    }
    new Bnum = strlen(name);
    new i=0;
    new Nnum=0;
    while(i < Bnum)
    {
        if(name[i] == '1' || name[i] == '2' || name[i] == '3' || name[i] == '4' || name[i] == '5' || name[i] == '6' || name[i] == '7' || name[i] == '8' || name[i] == '9' || name[i] == '0')
            Nnum++;
        ++i;
    }
    if( Nnum >= 7)
    {
        client_cmd(id, "name ^"Hirdetes Tiltott!^"");
        client_cmd(id, "retry");
        return PLUGIN_CONTINUE;
    }
    return PLUGIN_CONTINUE;
}
 
public avoid_duplicated (msgId, msgDest, receiver)
{
    return PLUGIN_HANDLED;
}
 
public hook_say(id)
{
    read_args (message, 191);
    remove_quotes (message);
 
    new Bnum = strlen(message);
    new Nnum = 0;
    new i = 0;
    while(i < Bnum)
    {
        if(message[i] == '1' || message[i] == '2' || message[i] == '3' || message[i] == '4' || message[i] == '5' || message[i] == '6' || message[i] == '7' || message[i] == '8' || message[i] == '9' || message[i] == '0')
            Nnum++;
        ++i;
    }
    if( Nnum >= 7)
    {
        ColorChat(id, BLUE,"^3A szerveren tilos a hírdetés!");
        return PLUGIN_HANDLED;
    }
 
    if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
        return PLUGIN_CONTINUE;
 
 
    new name[192];
    name = message;
    if (contain(name, "#Spec_Help_Text") != -1 || contain(name, "#Cstrike_Spetsnaz_Label") != -1 || contain(name, "#Buy") != -1 || contain(name, "#Cstrike_GIGN_Label") != -1 || contain(name, "#Spec_Duck") != -1)
    {
        ColorChat(id, BLUE,"^3HAHAHA:)");
        return PLUGIN_HANDLED;
    }
    get_user_name (id, name, 31);
 
    new bool:admin = false;
 
    if (get_user_flags(id) & ADMINRANG)
        admin = true;
 
    new isAlive;
 
    if (is_user_alive (id))
        {
            isAlive = 1;
            alive = "^x01";
        }
    else
        {
            isAlive = 0;
            alive = "^x01*Halott*";
        }
 
    static color[10];
 
    if (admin)
    {
        get_user_team (id, color, 9);
        format (strName, 191, "%s^x04[Admin][%s]^x03%s", alive, Rangs[Rang[id]], name);
        format (strText, 191, "^x04%s", message);
    }
    else
    {
        get_user_team (id, color, 9);
        format (strName, 191, "%s^x04[%s]^x03%s", alive, Rangs[Rang[id]], name);
        format (strText, 191, "%s", message);
    }
 
    format (message, 191, "%s^x01 : %s", strName, strText);
 
    sendMessage (color, isAlive);
 
    return PLUGIN_CONTINUE;
}
 
 
public hook_teamsay(id)
{
    new playerTeam = get_user_team(id);
    new playerTeamName[19];
 
    switch (playerTeam)
    {
        case 1:
            copy (playerTeamName, 11, "*Te*");
        case 2:
            copy (playerTeamName, 18, "*Ct*");
        default:
            copy (playerTeamName, 9, "*Néző*");
    }
 
    read_args (message, 191);
    remove_quotes (message);
 
    new Bnum = strlen(message);
    new Nnum = 0;
    new i = 0;
    while(i < Bnum)
    {
        if(message[i] == '1' || message[i] == '2' || message[i] == '3' || message[i] == '4' || message[i] == '5' || message[i] == '6' || message[i] == '7' || message[i] == '8' || message[i] == '9' || message[i] == '0')
            Nnum++;
        ++i;
    }
    if( Nnum >= 7)
    {
        ColorChat(id, BLUE,"^3A szerveren tilos a hirdetes!");
        return PLUGIN_HANDLED;
    }
 
    if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
        return PLUGIN_CONTINUE;
 
 
    new name[192];
    name = message;
    if (contain(name, "#Spec_Help_Text") != -1 || contain(name, "#Cstrike_Spetsnaz_Label") != -1 || contain(name, "#Buy") != -1 || contain(name, "#Cstrike_GIGN_Label") != -1 || contain(name, "#Spec_Duck") != -1)
    {
        ColorChat(id, BLUE,"^3HAHAHA:)");
        return PLUGIN_HANDLED;
    }
    get_user_name (id, name, 31);
 
    new bool:admin = false;
 
    if (get_user_flags(id) & ADMINRANG)
        admin = true;
 
    new isAlive;
 
    if (is_user_alive (id))
        {
            isAlive = 1;
            alive = "^x01";
        }
    else
        {
            isAlive = 0;
            alive = "^x01*Halott*";
        }
 
    static color[10];
 
    if (admin)
    {
        get_user_team (id, color, 9)    ;
        format (strName, 191, "%s(%s)^x04[Admin][%s]^x03%s", alive, playerTeamName, Rangs[Rang[id]], name);
        format (strText, 191, "^x04%s", message);
    }
    else
    {
        get_user_team (id, color, 9);
        format (strName, 191, "%s(%s)^x04[%s]^x03%s", alive, playerTeamName, Rangs[Rang[id]], name);
        format (strText, 191, "%s", message);
    }
 
    format (message, 191, "%s^x01 : %s", strName, strText);
 
    sendTeamMessage (color, isAlive, playerTeam);
 
    return PLUGIN_CONTINUE;
}
 
public sendMessage (color[], alive)
{
    new teamName[10];
 
    for (new player = 1; player < maxPlayers; player++)
    {
        if (!is_user_connected(player))
            continue;
        get_user_team (player, teamName, 9);
        changeTeamInfo (player, color);
        writeMessage (player, message);
        changeTeamInfo (player, teamName);
    }
}
 
 
public sendTeamMessage (color[], alive, playerTeam)
{
    new teamName[10];
 
    for (new player = 1; player < maxPlayers; player++)
    {
        if (!is_user_connected(player))
            continue;
 
        if (get_user_team(player) == playerTeam || get_user_flags(player) & ADMIN_BAN)
        {
            get_user_team (player, teamName, 9);
            changeTeamInfo (player, color);
            writeMessage (player, message);
            changeTeamInfo (player, teamName);
        }
    }
}
 
 
public changeTeamInfo (player, team[])
{
    message_begin (MSG_ONE, teamInfo, _, player);
    write_byte (player);
    write_string (team);
    message_end();
}
 
 
public writeMessage (player, message[])
{
    message_begin (MSG_ONE, SayText, {0, 0, 0}, player);
    write_byte (player);
    write_string (message);
    message_end ();
}
 
stock bool:ValidMdl(Mdl[])
{
    if(containi(Mdl, ".mdl") != -1)
    {
        return true;
    }
    return false;
}
stock bool:Registered(id)
{
    new pFile, Data[2][32], Line[64], Name[32];
    get_user_name(id, Name, 31);
    pFile = fopen(RegisterFile, "rt");
 
    while(!feof(pFile))
    {
        fgets(pFile, Line, 63);
 
        parse(Line, Data[0], 31, Data[1], 31);
 
        if(equal(Data[0], Name))
        {
            copy(SavedPassword[id], 31, Data[1]);
            return true;
        }
    }
 
    fclose(pFile);
 
    return false;
}
stock Register(id, const rSavedPassword[])
{
    new pFile, Line[64], Name[32];
    get_user_name(id, Name, 31);
    pFile = fopen(RegisterFile, "at+");
    format(Line, 63, "^"%s^" ^"%s^"", Name, rSavedPassword);
    write_file(RegisterFile, Line);
    fclose(pFile);
}
stock Grenades(id)
{
    give_item(id, "weapon_hegrenade");
    give_item(id, "weapon_smokegrenade");
    give_item(id, "weapon_flashbang");
}