Raised This Month: $ Target: $400
 0% 

[HELP]


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
ganjastyleizhigh
Junior Member
Join Date: Mar 2016
Old 04-14-2016 , 06:29   [HELP]
Reply With Quote #1

Knows someone help me for a change ?
I want to know what change to add more than 50 weapons
can someone help me please?

Code:
#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[] = "DeRoiD";

#define MAX 50

#define PointsMin 3
#define PointsMax 8
#define Drop 10
#define MarkMin 25

#pragma semicolon 1

new WeaponNames[MAX][32], WeaponMdls[MAX][48], Weapons[MAX], WeaponDrop[MAX], AllWeapon;
new UsingWeapon[3][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], inMarket[33], MarketPoints[33], Choosen[33];
new SavedPassword[33][32], bool:Loged[33], Password[33][32];
new DefaultSkin[31][32], NeedKills[30], Rangs[30][32];

new const eWeapon[][] =
{
    "weapon_famas", "weapon_usp", "weapon_awp", "weapon_mp5navy", "weapon_m3", "weapon_m4a1",
    "weapon_deagle", "weapon_ak47", "weapon_knife", "weapon_flashbang", "weapon_hegrenade",
    "weapon_smokegrenade", "weapon_c4"
};

new const FirstWeaponNames[][][] =
{
    { "AK47", "weapon_ak47" },
    { "M4A1", "weapon_m4a1" },
    { "AWP", "weapon_awp" },
    { "FAMAS", "weapon_famas" },
    { "MP5", "weapon_mp5navy" },
    { "SHOTGUN", "weapon_mp3" }
};

new const SecondaryWeaponNames[][][] =
{
    { "DEAGLE", "weapon_deagle" },
    { "USP", "weapon_usp" }
};

public plugin_precache() {
    new Line[128], Data[4][48], Len;
    AllWeapon++;
    get_configsdir(Folder, 47);
    format(SkinFile, 47, "%s/csgo/skins.cfg", Folder);
    format(SaveFile, 47, "%s/csgo/save.ini", Folder);
    format(RangFile, 47, "%s/csgo/rangs.cfg", Folder);
    format(RegisterFile, 47, "%s/csgo/reg.ini", Folder);
    format(DefaultSkinFile, 47, "%s/csgo/dskins.cfg", Folder);
    format(Prefix, 31, "[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++)
        {
            read_file(SkinFile, i, Line, 127, Len);
            
            if(strlen(Line) < 5 || 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) < 5 || 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_dictionary("globaloffensive.txt");
    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_concmd("Cost", "MarketCost");
    register_concmd("Gift", "GiftPoint");
    register_concmd("UserPassword", "PlayerPassword");
    
    SayText = get_user_msgid("SayText");
    register_forward(FM_ClientUserInfoChanged, "NameChange");
    //RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1);
    
    for(new i; i < sizeof(eWeapon); i++)
    {
        RegisterHam(Ham_Item_Deploy, eWeapon[i], "WeaponSwitch", 1);
    }
    
    register_clcmd("say", "Say");
    register_clcmd("say_team", "Say");
    
    set_task(67.3, "Message", 7217, _, _, "b");
}
public Message() 
{
    print_color(0, "!g%s%L", Prefix, LANG_SERVER, "MSG", PLUGIN, VERSION, AUTHOR);
}
public Guns(id) 
{
    if(Choosen[id] < 1)
    {
        Choosen[id] = 0;
        WeaponMenu(id);
    }
}
public PlayerSpawn(id) 
{
    if(is_user_alive(id))
    {
        Choosen[id] = 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 Say(id)
{
    new Chat[256], Name[32], cChat[256];
    read_args(Chat, 255);
    remove_quotes(Chat);
    get_user_name(id, Name, 31);
    
    if(strlen(Chat) > 1)
    {
        formatex(cChat, 255, "^4[%s] ^3%s^1: %s", Rangs[Rang[id]], Name, Chat);
    }
    
    ColorChat(0, TEAM_COLOR, cChat);
    return PLUGIN_HANDLED;
}
public MenuOpen(id)
{
    if(!Loged[id])
    {
        RegMenu(id);
        return;
    }
    
    MenuMod[id] = 0;
    Menu(id);
}
public client_death(Killer, Victim)
{
    if(Killer == Victim)
    {
        return PLUGIN_HANDLED;
    }
    
    Kills[Killer]++;
    
    if(Rang[Killer] < sizeof(Rangs) && Rang[Killer] < file_size(RangFile, 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, "%L", LANG_SERVER, "POINT", pPont);
    
    
    if(Drop >= random_num(1, 100))
    {
        get_user_name(Killer, Name, 31);
        new x = random_num(1, 2);
        if(x == 1)
        {
            pKey[Killer]++;
            print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDKEY", Name);
        }
        if(x == 2)
        {
            Chest[Killer]++;
            print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDCHEST", 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_HANDLED;
    }
    else if(MarkMin >= Cost)
    {
        print_color(id, "%s %L", Prefix, LANG_SERVER, "NOTENOUGHTMARKET", MarkMin);
        client_cmd(id, "messagemode Cost");
        return PLUGIN_HANDLED;
    }
    else
    {
        MarketPoints[id] = Cost;
        Menu(id);
        MenuMod[id] = 3;
        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_HANDLED;
    }
    else
    {
        aPoints[id] = Cost;
        Menu(id);
        MenuMod[id] = 5;
        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;
    }
    
    for(new i = 1; i < AllWeapon; i++)
    {
        if(i == UsingWeapon[0][id])
        {
            if(wid == Weapons[i])
            {
                set_pev(id, pev_viewmodel2, WeaponMdls[i]);
                return HAM_SUPERCEDE;
            }
        }
        else if(i == UsingWeapon[1][id])
        {
            if(wid == Weapons[i])
            {
                set_pev(id, pev_viewmodel2, WeaponMdls[i]);
                return HAM_SUPERCEDE;
            }
        }
        else if(i == UsingWeapon[2][id])
        {
            if(wid == Weapons[i])
            {
                set_pev(id, pev_viewmodel2, WeaponMdls[i]);
                return HAM_SUPERCEDE;
            }
        }
        
    }
    if(ValidMdl(DefaultSkin[wid]))
    {
        set_pev(id, pev_viewmodel2, DefaultSkin[wid]);
    }
    return HAM_IGNORED;
}
public ChestOpen(id)
{
    new rWeapon = random_num(1, AllWeapon);
    new rNum = random_num(1, 100);
    
    if(WeaponDrop[rWeapon] >= rNum)
    {
        new Name[32];
        get_user_name(id, Name, 31);
        print_color(id, "!g[CSGO]%L", LANG_SERVER, "FOUNDITEM", Name, WeaponNames[rWeapon]);
        uWeapon[rWeapon][id]++;
        Save(id);
    }
    else
    {
        set_task(0.1, "ChestOpen", id);
    }
}
public Menu(id)
{
    if(!Loged[id])
    {
        RegMenu(id);
        return;
    }
    
    new sMenu, Line[128];
    
    if(MenuMod[id] == -2)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "GIFTCH", LANG_SERVER, "YPOINT", 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, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
            menu_additem(sMenu, Line, String);
            All++;
        }
        if(Chest[id] > 0)
        {
            formatex(Line, 127, "%L", LANG_SERVER, "CHESTPIECE", Chest[id]);
            menu_additem(sMenu, Line, "101");
            All++;
        }
        if(pKey[id] > 0)
        {
            formatex(Line, 127, "%L", LANG_SERVER, "KEYPIECE", pKey[id]);
            menu_additem(sMenu, Line, "102");
            All++;
        }
        if(All == 0)
        {
            MenuMod[id] = 0;
            Menu(id);
        }
    }
    else if(MenuMod[id] == -1)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "GIFTCH", LANG_SERVER, "YPOINT", 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, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
            menu_additem(sMenu, Line, String);
            All++;
        }
        if(Chest[id] > 0)
        {
            formatex(Line, 127, "%L", LANG_SERVER, "CHESTPIECE", Chest[id]);
            menu_additem(sMenu, Line, "101");
            All++;
        }
        if(pKey[id] > 0)
        {
            formatex(Line, 127, "%L", LANG_SERVER, "KEYPIECE", pKey[id]);
            menu_additem(sMenu, Line, "102");
            All++;
        }
        if(All == 0)
        {
            MenuMod[id] = 0;
            Menu(id);
        }
    }
    else if(MenuMod[id] == 0)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MAIN", LANG_SERVER, "YPOINT", Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        formatex(Line, 127, "%L", LANG_SERVER, "MENUTOSKINS");
        menu_additem(sMenu, Line, "1");
        
        if(!inMarket[id])
        {
            formatex(Line, 127, "%L", LANG_SERVER, "MENUTOCHESTOPEN");
            menu_additem(sMenu, Line, "2");
        }
        else
        {
            formatex(Line, 127, "%L %L",
            LANG_SERVER, "MENUTOCHESTOPEN", LANG_SERVER, "INMARKET");
            menu_additem(sMenu, Line, "0");
        }
        
        formatex(Line, 127, "%L", LANG_SERVER, "MENUTOMARKET");
        menu_additem(sMenu, Line, "3");
        
        if(!inMarket[id])
        {
            formatex(Line, 127, "%L", LANG_SERVER, "MENUTODUSTBIN");
            menu_additem(sMenu, Line, "4");
        }
        else
        {
            formatex(Line, 127, "%L %L",
            LANG_SERVER, "MENUTODUSTBIN", LANG_SERVER, "INMARKET");
            menu_additem(sMenu, Line, "0");
        }
        
        if(!inMarket[id])
        {
            formatex(Line, 127, "%L%L",
            LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "MRANG", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]);
            menu_additem(sMenu, Line, "5");
        }
        else
        {
            formatex(Line, 127, "%L %L%L",
            LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "INMARKET", LANG_SERVER, "MRANG", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]);
            menu_additem(sMenu, Line, "0");
        }
    }
    else if(MenuMod[id] == 1)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MENUTOSKINS", LANG_SERVER, "YPOINT", 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, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
            menu_additem(sMenu, Line, String);
            All++;
        }
        if(All == 0)
        {
            MenuMod[id] = 0;
            Menu(id);
        }
    }
    else if(MenuMod[id] == 2)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MENUTOCHESTOPEN", LANG_SERVER, "YPOINT", Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        formatex(Line, 127, "%L", LANG_SERVER, "CHESTSANDKEYS", Chest[id], pKey[id]);
        menu_additem(sMenu, Line, "1");
    }
    else if(MenuMod[id] == 3)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MENUTOMARKET", LANG_SERVER, "YPOINT", 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, "%L", LANG_SERVER, "MARKETPLACES", WeaponNames[i], MarketPoints[id]);
                    All++;
                }
            }
            
            if(101 == WeaponinMarket[id] && Chest[id] > 0)
            {
                formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACEC", MarketPoints[id]);
                All++;
            }
            if(102 == WeaponinMarket[id] && pKey[id] > 0)
            {
                formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACEK", MarketPoints[id]);
                All++;
            }
            
            if(All == 0)
                formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACECH");
            menu_additem(sMenu, Line, "-1");
        }
        
        if(!inMarket[id])
            formatex(Line, 127, "%L", LANG_SERVER, "TOMARKETM");
        else
            formatex(Line, 127, "%L", LANG_SERVER, "BACKMARKET");
        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, "%L", LANG_SERVER, "SELLERC", Name, MarketPoints[x]);
                    menu_additem(sMenu, Line, String);
                }
                else if(102 == WeaponinMarket[x])
                {
                    formatex(Line, 127, "%L", LANG_SERVER, "SELLERK", Name, MarketPoints[x]);
                    menu_additem(sMenu, Line, String);
                }
                else
                {
                    formatex(Line, 127, "%L", LANG_SERVER, "SELLERS", Name, WeaponNames[WeaponinMarket[x]], MarketPoints[x]);
                    menu_additem(sMenu, Line, String);
                }
            }
        }
    }
    else if(MenuMod[id] == 4)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MENUTODUSTBIN", LANG_SERVER, "YPOINT", 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, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
            menu_additem(sMenu, Line, String);
            All++;
        }
        if(All == 0)
        {
            MenuMod[id] = 0;
            Menu(id);
        }
    }
    else if(MenuMod[id] == 5)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "YPOINT", Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        new All, Name[32], String[32];
        get_user_name(aTarget[id], Name, 31);
        
        if(aTarget[id] > 0 && is_user_alive(aTarget[id]))
        {
            formatex(Line, 127, "%L", LANG_SERVER, "GIFTT", Name);
            menu_additem(sMenu, Line, "-1");
            for(new i = 1; i < AllWeapon; i++)
            {
                if(i == aThing[id] && uWeapon[i][id] > 0)
                {
                    formatex(Line, 127, "%L", LANG_SERVER, "GIFTS", WeaponNames[i]);
                    menu_additem(sMenu, Line, "-2");
                    All++;
                }
            }
            
            if(aThing[id] == 0 && All == 0)
            {
                formatex(Line, 127, "%L", LANG_SERVER, "GIFTCH");
                menu_additem(sMenu, Line, "-2");
            }
            else if(aThing[id] > 100)
            {
                if(101 == aThing[id])
                {
                    formatex(Line, 127, "%L", LANG_SERVER, "GIFTC");
                }
                if(102 == aThing[id])
                {
                    formatex(Line, 127, "%L", LANG_SERVER, "GIFTK");
                }
                menu_additem(sMenu, Line, "-2");
            }
            
            formatex(Line, 127, "%L", LANG_SERVER, "GIFTPOINTS", aPoints[id]);
            menu_additem(sMenu, Line, "-4");
            formatex(Line, 127, "%L", LANG_SERVER, "SENDGIFT");
            menu_additem(sMenu, Line, "-3");
        }
        else
        {
            for(new i; i < 32; i++)
            {
                if(is_user_connected(i))
                {
                    get_user_name(i, Name, 31);
                    num_to_str(i, String, 31);
                    menu_additem(sMenu, Name, String);
                }
            }
        }
    }
    menu_display(id, sMenu);
}
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_HANDLED;
    }
    if(MenuMod[id] == -1)
    {
        MenuMod[id] = 3;
        WeaponinMarket[id] = Key;
        client_cmd(id, "messagemode Cost");
        Menu(id);
        return PLUGIN_HANDLED;
    }
    else if(MenuMod[id] == 0)
    {
        MenuMod[id] = Key;
        Menu(id);
        return PLUGIN_HANDLED;
    }
    else if(MenuMod[id] == 1)
    {
        parse(Data[0], Data[2], 31, Data[3], 31);
        
        if(str_to_num(Data[3]) == 16 || str_to_num(Data[3]) == 26)
            UsingWeapon[1][id] = str_to_num(Data[2]);
        else if(str_to_num(Data[3]) == 29)
            UsingWeapon[2][id] = str_to_num(Data[2]);
        else
            UsingWeapon[0][id] = str_to_num(Data[2]);
        return PLUGIN_HANDLED;
    }
    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_HANDLED;
            }
        }
    }
    else if(MenuMod[id] == 3)
    {
        if(Key == -1)
        {
            MenuMod[id] = -1;
            Menu(id);
            return PLUGIN_HANDLED;
        }
        else if(Key == 0)
        {
            if(inMarket[id])
                inMarket[id] = false;
            else if(MarketPoints[id] > 0)
            {
                get_user_name(id, Name, 31);
                print_color(0, "!g%s%L",
                Prefix, LANG_SERVER, "TOMARKET", Name, WeaponNames[WeaponinMarket[id]], MarketPoints[id]);
                inMarket[id] = true;
            }
            Menu(id);
            return PLUGIN_HANDLED;
        }
        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%L",
                Prefix, LANG_SERVER, "BUYMARKETITEM",
                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%L",
                Prefix, LANG_SERVER, "BUYMARKETCHEST",
                mName, MarketPoints[Key], Name);
                Chest[id]++;
                Chest[Key]--;
            }
            else if(WeaponinMarket[Key] == 102)
            {
                print_color(0, "!g%s%L",
                Prefix, LANG_SERVER, "BUYMARKETKEY",
                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;
        }
    }
    else if(MenuMod[id] == 4)
    {
        uWeapon[Key][id]--;
        Menu(id);
        Save(id);
        return PLUGIN_HANDLED;
    }
    else if(MenuMod[id] == 5)
    {
        if(Key == -1)
        {
            aTarget[id] = 0;
        }
        if(Key == -2)
        {
            MenuMod[id] = -2;
        }
        if(Key == -3)
        {
            if(uWeapon[aThing[id]][id] > 0)
            {
                uWeapon[aThing[id]][aTarget[id]]++;
                uWeapon[aThing[id]][id]--;
                Points[aTarget[id]] += aPoints[id];
                Points[id] -= aPoints[id];
                Save(aTarget[id]);
                Save(id);
                MenuMod[id] = 0;
                aThing[id] = 0;
                aTarget[id] = 0;
                aPoints[id] = 0;
                print_color(id, "!g%s%L",
                Prefix, LANG_SERVER, "GIFTSUCCESS");
            }
        }
        if(Key == -4)
        {
            client_cmd(id, "messagemode Gift");
        }
        if(Key > 0)
            aTarget[id] = Key;
        Menu(id);
        return PLUGIN_HANDLED;
    }
    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[256];
        new LineName[32], tData[5][8], Data[MAX][8];
        
        while(!feof(pFile))
        {
            fgets(pFile, Line, 255);
            
            if(Line[0] == ';' || strlen(Line) < 2)
                continue;
                
            parse(Line, LineName, 31);
            
            if(equal(LineName, Name))
            {
                parse(Line, LineName, 31, tData[0], 7, tData[1], 7, tData[2], 7, tData[3], 7, tData[4], 7,
                Data[0], 7, Data[1], 7, Data[2], 7, Data[3], 7, Data[4], 7, Data[5], 7,
                Data[6], 7, Data[7], 7, Data[8], 7, Data[9], 7, Data[10], 7, Data[11], 7, Data[12], 7,
                Data[13], 7, Data[14], 7, Data[15], 7, Data[16], 7, Data[17], 7, Data[18], 7, Data[19], 7,
                Data[20], 7, Data[21], 7, Data[22], 7, Data[23], 7, Data[24], 7, Data[25], 7, Data[26], 7,
                Data[27], 7, Data[28], 7, Data[29], 7, Data[30], 7, Data[31], 7, Data[32], 7, Data[33], 7,
                Data[34], 7, Data[35], 7, Data[36], 7, Data[37], 7, Data[38], 7, Data[39], 7, Data[40], 7,
                Data[41], 7, Data[42], 7, Data[43], 7, Data[44], 7, Data[45], 7, Data[46], 7, Data[47], 7,
                Data[48], 7, Data[49], 7);
                
                Kills[id] = str_to_num(tData[0]);
                Points[id] = str_to_num(tData[1]);
                pKey[id] = str_to_num(tData[2]);
                Chest[id] = str_to_num(tData[3]);
                Rang[id] = str_to_num(tData[4]);
                
                for(new i; i < MAX; i++)
                {
                    uWeapon[i][id] = str_to_num(Data[i]);
                }
                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;
        
        while(!feof(pFile))
        {
            fgets(pFile, Line, 191);
            
            if(Line[0] == ';' || strlen(Line) < 2)
                continue;
                
            parse(Line, LineName, 31);
            
            if(equal(LineName, Name) && !Found)
            {
                new mLine[256], LoadWeapon[256], String[8];
                
                format(String, 7, "^"%i^" ", Kills[id]);
                add(LoadWeapon, 255, String);
                
                format(String, 7, "^"%i^" ", Points[id]);
                add(LoadWeapon, 255, String);
                
                format(String, 7, "^"%i^" ", pKey[id]);
                add(LoadWeapon, 255, String);
                
                format(String, 7, "^"%i^" ", Chest[id]);
                add(LoadWeapon, 255, String);
                
                format(String, 7, "^"%i^" ", Rang[id]);
                add(LoadWeapon, 255, String);
                    
                for(new i; i < MAX; i++)
                {
                    format(String, 7, "^"%i^" ", uWeapon[i][id]);
                    add(LoadWeapon, 255, String);
                }
                
                formatex(mLine, 255, "^"%s^" %s", Name, LoadWeapon);
                write_file(SaveFile, mLine, Lines);
                Found = true;
                return PLUGIN_HANDLED;
            }
            
            Lines++;
        }
        
        if(!Found)
        {
            new mLine[256], LoadWeapon[256], String[8];
            
            format(String, 7, "^"%i^" ", Kills[id]);
            add(LoadWeapon, 255, String);
            
            format(String, 7, "^"%i^" ", Points[id]);
            add(LoadWeapon, 255, String);
            
            format(String, 7, "^"%i^" ", pKey[id]);
            add(LoadWeapon, 255, String);
            
            format(String, 7, "^"%i^" ", Chest[id]);
            add(LoadWeapon, 255, String);
            
            format(String, 7, "^"%i^" ", Rang[id]);
            add(LoadWeapon, 255, String);
            
            for(new i; i < MAX; i++)
            {
                format(String, 7, "^"%i^" ", uWeapon[i][id]);
                add(LoadWeapon, 255, String);
            }
            
            formatex(mLine, 255, "^"%s^" %s", Name, LoadWeapon);
            write_file(SaveFile, mLine);
            return PLUGIN_HANDLED;
        }
        fclose(pFile);
    }
    return PLUGIN_CONTINUE;
}
public WeaponMenu(id)
{
    new String[128], Name[32];
    format(String, 127, "%s %L", Prefix, LANG_SERVER, "WPM");
    new wMenu = menu_create(String, "wMenuHandler");
    get_user_name(id, Name, 31);
    
    if(Choosen[id] == 0)
    {
        for(new i; i < sizeof(FirstWeaponNames); i++)
        {
            format(String, 127, "%s", FirstWeaponNames[i][0]);
            menu_additem(wMenu, String, FirstWeaponNames[i][1]);
        }
    }
    if(Choosen[id] == 1)
    {
        for(new i; i < sizeof(SecondaryWeaponNames); i++)
        {
            format(String, 127, "%s", SecondaryWeaponNames[i][0]);
            menu_additem(wMenu, String, SecondaryWeaponNames[i][1]);
        }
    }
    
    menu_display(id, wMenu);
}
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);
    
    give_item(id, data);
    Choosen[id]++;
    
    if(Choosen[id] >= 2)
        Grenades(id);
        
    WeaponMenu(id);
}
public RegMenu(id)
{
    new String[128], Name[32];
    format(String, 127, "%s %L", Prefix, LANG_SERVER, "RMMAIN");
    new rMenu = menu_create(String, "rMenuHandler");
    get_user_name(id, Name, 31);
    
    format(String, 127, "%L", LANG_SERVER, "RMACCOUNT", Name);
    menu_additem(rMenu, String, "0");
    
    if(!Registered(id))
    {
        format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]);
        menu_additem(rMenu, String, "1");
        
        if(strlen(Password[id]) > 4)
        {
            format(String, 127, "%L", LANG_SERVER, "RMR");
            menu_additem(rMenu, String, "2");
        }
        else
        {
            format(String, 127, "\d%L", LANG_SERVER, "RMR");
            menu_additem(rMenu, String, "0");
        }
    }
    else
    {
        if(!Loged[id])
        {
            format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]);
            menu_additem(rMenu, String, "1");
            
            if(equal(SavedPassword[id], Password[id]))
            {
                format(String, 127, "%L", LANG_SERVER, "RMLOGIN");
                menu_additem(rMenu, String, "3");
            }
            else
            {
                format(String, 127, "\d%L", LANG_SERVER, "RMLOGIN");
                menu_additem(rMenu, String, "0");
            }
        }
        else
        {
            format(String, 127, "%L", LANG_SERVER, "RMLOGOUT");
            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%L", Prefix, LANG_SERVER, "REGISTERSUCCESS", 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%L", Prefix, LANG_SERVER, "REGISTERLOGIN");
            Menu(id);
        }
    }
}
public ToLogout(id)
{
    if(Loged[id])
    {
        Loged[id] = false;
        Password[id] = "";
        print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERLOGOUT");
    }
}
public PlayerPassword(id)
{
    new Data[32];
    read_args(Data, 31);
    remove_quotes(Data);
    
    if(strlen(Data) < 5)
    {
        print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERSHORT");
        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 NameChange(id) 
{
    if(!is_user_connected(id))
        return FMRES_IGNORED;
        
    new OldName[32], NewName[32], Name[32];
    get_user_name(id, Name, 31);
    pev(id, pev_netname, OldName, charsmax(OldName));
    if(OldName[0])
    {
        get_user_info(id, "name", NewName, charsmax(NewName));
        if(!equal(OldName, NewName))
        {
            set_user_info(id, "name", OldName);
            print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERNAMECHANGE");
            return FMRES_HANDLED;
        }
    }
    return FMRES_IGNORED;
}
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, "^n^"%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");
}
#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[] = "DeRoiD";

#define MAX 50

#define PointsMin 3
#define PointsMax 8
#define Drop 10
#define MarkMin 25

#pragma semicolon 1

new WeaponNames[MAX][32], WeaponMdls[MAX][48], Weapons[MAX], WeaponDrop[MAX], AllWeapon;
new UsingWeapon[3][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], inMarket[33], MarketPoints[33], Choosen[33];
new SavedPassword[33][32], bool:Loged[33], Password[33][32];
new DefaultSkin[31][32], NeedKills[30], Rangs[30][32];

new const eWeapon[][] =
{
    "weapon_famas", "weapon_usp", "weapon_awp", "weapon_mp5navy", "weapon_m3", "weapon_m4a1",
    "weapon_deagle", "weapon_ak47", "weapon_knife", "weapon_flashbang", "weapon_hegrenade",
    "weapon_smokegrenade", "weapon_c4"
};

new const FirstWeaponNames[][][] =
{
    { "AK47", "weapon_ak47" },
    { "M4A1", "weapon_m4a1" },
    { "AWP", "weapon_awp" },
    { "FAMAS", "weapon_famas" },
    { "MP5", "weapon_mp5navy" },
    { "SHOTGUN", "weapon_mp3" }
};

new const SecondaryWeaponNames[][][] =
{
    { "DEAGLE", "weapon_deagle" },
    { "USP", "weapon_usp" }
};

public plugin_precache() {
    new Line[128], Data[4][48], Len;
    AllWeapon++;
    get_configsdir(Folder, 47);
    format(SkinFile, 47, "%s/csgo/skins.cfg", Folder);
    format(SaveFile, 47, "%s/csgo/save.ini", Folder);
    format(RangFile, 47, "%s/csgo/rangs.cfg", Folder);
    format(RegisterFile, 47, "%s/csgo/reg.ini", Folder);
    format(DefaultSkinFile, 47, "%s/csgo/dskins.cfg", Folder);
    format(Prefix, 31, "[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++)
        {
            read_file(SkinFile, i, Line, 127, Len);
            
            if(strlen(Line) < 5 || 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) < 5 || 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_dictionary("globaloffensive.txt");
    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_concmd("Cost", "MarketCost");
    register_concmd("Gift", "GiftPoint");
    register_concmd("UserPassword", "PlayerPassword");
    
    SayText = get_user_msgid("SayText");
    register_forward(FM_ClientUserInfoChanged, "NameChange");
    //RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1);
    
    for(new i; i < sizeof(eWeapon); i++)
    {
        RegisterHam(Ham_Item_Deploy, eWeapon[i], "WeaponSwitch", 1);
    }
    
    register_clcmd("say", "Say");
    register_clcmd("say_team", "Say");
    
    set_task(67.3, "Message", 7217, _, _, "b");
}
public Message() 
{
    print_color(0, "!g%s%L", Prefix, LANG_SERVER, "MSG", PLUGIN, VERSION, AUTHOR);
}
public Guns(id) 
{
    if(Choosen[id] < 1)
    {
        Choosen[id] = 0;
        WeaponMenu(id);
    }
}
public PlayerSpawn(id) 
{
    if(is_user_alive(id))
    {
        Choosen[id] = 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 Say(id)
{
    new Chat[256], Name[32], cChat[256];
    read_args(Chat, 255);
    remove_quotes(Chat);
    get_user_name(id, Name, 31);
    
    if(strlen(Chat) > 1)
    {
        formatex(cChat, 255, "^4[%s] ^3%s^1: %s", Rangs[Rang[id]], Name, Chat);
    }
    
    ColorChat(0, TEAM_COLOR, cChat);
    return PLUGIN_HANDLED;
}
public MenuOpen(id)
{
    if(!Loged[id])
    {
        RegMenu(id);
        return;
    }
    
    MenuMod[id] = 0;
    Menu(id);
}
public client_death(Killer, Victim)
{
    if(Killer == Victim)
    {
        return PLUGIN_HANDLED;
    }
    
    Kills[Killer]++;
    
    if(Rang[Killer] < sizeof(Rangs) && Rang[Killer] < file_size(RangFile, 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, "%L", LANG_SERVER, "POINT", pPont);
    
    
    if(Drop >= random_num(1, 100))
    {
        get_user_name(Killer, Name, 31);
        new x = random_num(1, 2);
        if(x == 1)
        {
            pKey[Killer]++;
            print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDKEY", Name);
        }
        if(x == 2)
        {
            Chest[Killer]++;
            print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDCHEST", 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_HANDLED;
    }
    else if(MarkMin >= Cost)
    {
        print_color(id, "%s %L", Prefix, LANG_SERVER, "NOTENOUGHTMARKET", MarkMin);
        client_cmd(id, "messagemode Cost");
        return PLUGIN_HANDLED;
    }
    else
    {
        MarketPoints[id] = Cost;
        Menu(id);
        MenuMod[id] = 3;
        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_HANDLED;
    }
    else
    {
        aPoints[id] = Cost;
        Menu(id);
        MenuMod[id] = 5;
        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;
    }
    
    for(new i = 1; i < AllWeapon; i++)
    {
        if(i == UsingWeapon[0][id])
        {
            if(wid == Weapons[i])
            {
                set_pev(id, pev_viewmodel2, WeaponMdls[i]);
                return HAM_SUPERCEDE;
            }
        }
        else if(i == UsingWeapon[1][id])
        {
            if(wid == Weapons[i])
            {
                set_pev(id, pev_viewmodel2, WeaponMdls[i]);
                return HAM_SUPERCEDE;
            }
        }
        else if(i == UsingWeapon[2][id])
        {
            if(wid == Weapons[i])
            {
                set_pev(id, pev_viewmodel2, WeaponMdls[i]);
                return HAM_SUPERCEDE;
            }
        }
        
    }
    if(ValidMdl(DefaultSkin[wid]))
    {
        set_pev(id, pev_viewmodel2, DefaultSkin[wid]);
    }
    return HAM_IGNORED;
}
public ChestOpen(id)
{
    new rWeapon = random_num(1, AllWeapon);
    new rNum = random_num(1, 100);
    
    if(WeaponDrop[rWeapon] >= rNum)
    {
        new Name[32];
        get_user_name(id, Name, 31);
        print_color(id, "!g[CSGO]%L", LANG_SERVER, "FOUNDITEM", Name, WeaponNames[rWeapon]);
        uWeapon[rWeapon][id]++;
        Save(id);
    }
    else
    {
        set_task(0.1, "ChestOpen", id);
    }
}
public Menu(id)
{
    if(!Loged[id])
    {
        RegMenu(id);
        return;
    }
    
    new sMenu, Line[128];
    
    if(MenuMod[id] == -2)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "GIFTCH", LANG_SERVER, "YPOINT", 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, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
            menu_additem(sMenu, Line, String);
            All++;
        }
        if(Chest[id] > 0)
        {
            formatex(Line, 127, "%L", LANG_SERVER, "CHESTPIECE", Chest[id]);
            menu_additem(sMenu, Line, "101");
            All++;
        }
        if(pKey[id] > 0)
        {
            formatex(Line, 127, "%L", LANG_SERVER, "KEYPIECE", pKey[id]);
            menu_additem(sMenu, Line, "102");
            All++;
        }
        if(All == 0)
        {
            MenuMod[id] = 0;
            Menu(id);
        }
    }
    else if(MenuMod[id] == -1)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "GIFTCH", LANG_SERVER, "YPOINT", 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, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
            menu_additem(sMenu, Line, String);
            All++;
        }
        if(Chest[id] > 0)
        {
            formatex(Line, 127, "%L", LANG_SERVER, "CHESTPIECE", Chest[id]);
            menu_additem(sMenu, Line, "101");
            All++;
        }
        if(pKey[id] > 0)
        {
            formatex(Line, 127, "%L", LANG_SERVER, "KEYPIECE", pKey[id]);
            menu_additem(sMenu, Line, "102");
            All++;
        }
        if(All == 0)
        {
            MenuMod[id] = 0;
            Menu(id);
        }
    }
    else if(MenuMod[id] == 0)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MAIN", LANG_SERVER, "YPOINT", Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        formatex(Line, 127, "%L", LANG_SERVER, "MENUTOSKINS");
        menu_additem(sMenu, Line, "1");
        
        if(!inMarket[id])
        {
            formatex(Line, 127, "%L", LANG_SERVER, "MENUTOCHESTOPEN");
            menu_additem(sMenu, Line, "2");
        }
        else
        {
            formatex(Line, 127, "%L %L",
            LANG_SERVER, "MENUTOCHESTOPEN", LANG_SERVER, "INMARKET");
            menu_additem(sMenu, Line, "0");
        }
        
        formatex(Line, 127, "%L", LANG_SERVER, "MENUTOMARKET");
        menu_additem(sMenu, Line, "3");
        
        if(!inMarket[id])
        {
            formatex(Line, 127, "%L", LANG_SERVER, "MENUTODUSTBIN");
            menu_additem(sMenu, Line, "4");
        }
        else
        {
            formatex(Line, 127, "%L %L",
            LANG_SERVER, "MENUTODUSTBIN", LANG_SERVER, "INMARKET");
            menu_additem(sMenu, Line, "0");
        }
        
        if(!inMarket[id])
        {
            formatex(Line, 127, "%L%L",
            LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "MRANG", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]);
            menu_additem(sMenu, Line, "5");
        }
        else
        {
            formatex(Line, 127, "%L %L%L",
            LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "INMARKET", LANG_SERVER, "MRANG", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]);
            menu_additem(sMenu, Line, "0");
        }
    }
    else if(MenuMod[id] == 1)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MENUTOSKINS", LANG_SERVER, "YPOINT", 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, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
            menu_additem(sMenu, Line, String);
            All++;
        }
        if(All == 0)
        {
            MenuMod[id] = 0;
            Menu(id);
        }
    }
    else if(MenuMod[id] == 2)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MENUTOCHESTOPEN", LANG_SERVER, "YPOINT", Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        formatex(Line, 127, "%L", LANG_SERVER, "CHESTSANDKEYS", Chest[id], pKey[id]);
        menu_additem(sMenu, Line, "1");
    }
    else if(MenuMod[id] == 3)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MENUTOMARKET", LANG_SERVER, "YPOINT", 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, "%L", LANG_SERVER, "MARKETPLACES", WeaponNames[i], MarketPoints[id]);
                    All++;
                }
            }
            
            if(101 == WeaponinMarket[id] && Chest[id] > 0)
            {
                formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACEC", MarketPoints[id]);
                All++;
            }
            if(102 == WeaponinMarket[id] && pKey[id] > 0)
            {
                formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACEK", MarketPoints[id]);
                All++;
            }
            
            if(All == 0)
                formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACECH");
            menu_additem(sMenu, Line, "-1");
        }
        
        if(!inMarket[id])
            formatex(Line, 127, "%L", LANG_SERVER, "TOMARKETM");
        else
            formatex(Line, 127, "%L", LANG_SERVER, "BACKMARKET");
        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, "%L", LANG_SERVER, "SELLERC", Name, MarketPoints[x]);
                    menu_additem(sMenu, Line, String);
                }
                else if(102 == WeaponinMarket[x])
                {
                    formatex(Line, 127, "%L", LANG_SERVER, "SELLERK", Name, MarketPoints[x]);
                    menu_additem(sMenu, Line, String);
                }
                else
                {
                    formatex(Line, 127, "%L", LANG_SERVER, "SELLERS", Name, WeaponNames[WeaponinMarket[x]], MarketPoints[x]);
                    menu_additem(sMenu, Line, String);
                }
            }
        }
    }
    else if(MenuMod[id] == 4)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MENUTODUSTBIN", LANG_SERVER, "YPOINT", 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, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
            menu_additem(sMenu, Line, String);
            All++;
        }
        if(All == 0)
        {
            MenuMod[id] = 0;
            Menu(id);
        }
    }
    else if(MenuMod[id] == 5)
    {
        formatex(Line, 127, "%s\r %L %L",
        Prefix, LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "YPOINT", Points[id]);
        sMenu = menu_create(Line, "MenuHandler");
        new All, Name[32], String[32];
        get_user_name(aTarget[id], Name, 31);
        
        if(aTarget[id] > 0 && is_user_alive(aTarget[id]))
        {
            formatex(Line, 127, "%L", LANG_SERVER, "GIFTT", Name);
            menu_additem(sMenu, Line, "-1");
            for(new i = 1; i < AllWeapon; i++)
            {
                if(i == aThing[id] && uWeapon[i][id] > 0)
                {
                    formatex(Line, 127, "%L", LANG_SERVER, "GIFTS", WeaponNames[i]);
                    menu_additem(sMenu, Line, "-2");
                    All++;
                }
            }
            
            if(aThing[id] == 0 && All == 0)
            {
                formatex(Line, 127, "%L", LANG_SERVER, "GIFTCH");
                menu_additem(sMenu, Line, "-2");
            }
            else if(aThing[id] > 100)
            {
                if(101 == aThing[id])
                {
                    formatex(Line, 127, "%L", LANG_SERVER, "GIFTC");
                }
                if(102 == aThing[id])
                {
                    formatex(Line, 127, "%L", LANG_SERVER, "GIFTK");
                }
                menu_additem(sMenu, Line, "-2");
            }
            
            formatex(Line, 127, "%L", LANG_SERVER, "GIFTPOINTS", aPoints[id]);
            menu_additem(sMenu, Line, "-4");
            formatex(Line, 127, "%L", LANG_SERVER, "SENDGIFT");
            menu_additem(sMenu, Line, "-3");
        }
        else
        {
            for(new i; i < 32; i++)
            {
                if(is_user_connected(i))
                {
                    get_user_name(i, Name, 31);
                    num_to_str(i, String, 31);
                    menu_additem(sMenu, Name, String);
                }
            }
        }
    }
    menu_display(id, sMenu);
}
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_HANDLED;
    }
    if(MenuMod[id] == -1)
    {
        MenuMod[id] = 3;
        WeaponinMarket[id] = Key;
        client_cmd(id, "messagemode Cost");
        Menu(id);
        return PLUGIN_HANDLED;
    }
    else if(MenuMod[id] == 0)
    {
        MenuMod[id] = Key;
        Menu(id);
        return PLUGIN_HANDLED;
    }
    else if(MenuMod[id] == 1)
    {
        parse(Data[0], Data[2], 31, Data[3], 31);
        
        if(str_to_num(Data[3]) == 16 || str_to_num(Data[3]) == 26)
            UsingWeapon[1][id] = str_to_num(Data[2]);
        else if(str_to_num(Data[3]) == 29)
            UsingWeapon[2][id] = str_to_num(Data[2]);
        else
            UsingWeapon[0][id] = str_to_num(Data[2]);
        return PLUGIN_HANDLED;
    }
    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_HANDLED;
            }
        }
    }
    else if(MenuMod[id] == 3)
    {
        if(Key == -1)
        {
            MenuMod[id] = -1;
            Menu(id);
            return PLUGIN_HANDLED;
        }
        else if(Key == 0)
        {
            if(inMarket[id])
                inMarket[id] = false;
            else if(MarketPoints[id] > 0)
            {
                get_user_name(id, Name, 31);
                print_color(0, "!g%s%L",
                Prefix, LANG_SERVER, "TOMARKET", Name, WeaponNames[WeaponinMarket[id]], MarketPoints[id]);
                inMarket[id] = true;
            }
            Menu(id);
            return PLUGIN_HANDLED;
        }
        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%L",
                Prefix, LANG_SERVER, "BUYMARKETITEM",
                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%L",
                Prefix, LANG_SERVER, "BUYMARKETCHEST",
                mName, MarketPoints[Key], Name);
                Chest[id]++;
                Chest[Key]--;
            }
            else if(WeaponinMarket[Key] == 102)
            {
                print_color(0, "!g%s%L",
                Prefix, LANG_SERVER, "BUYMARKETKEY",
                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;
        }
    }
    else if(MenuMod[id] == 4)
    {
        uWeapon[Key][id]--;
        Menu(id);
        Save(id);
        return PLUGIN_HANDLED;
    }
    else if(MenuMod[id] == 5)
    {
        if(Key == -1)
        {
            aTarget[id] = 0;
        }
        if(Key == -2)
        {
            MenuMod[id] = -2;
        }
        if(Key == -3)
        {
            if(uWeapon[aThing[id]][id] > 0)
            {
                uWeapon[aThing[id]][aTarget[id]]++;
                uWeapon[aThing[id]][id]--;
                Points[aTarget[id]] += aPoints[id];
                Points[id] -= aPoints[id];
                Save(aTarget[id]);
                Save(id);
                MenuMod[id] = 0;
                aThing[id] = 0;
                aTarget[id] = 0;
                aPoints[id] = 0;
                print_color(id, "!g%s%L",
                Prefix, LANG_SERVER, "GIFTSUCCESS");
            }
        }
        if(Key == -4)
        {
            client_cmd(id, "messagemode Gift");
        }
        if(Key > 0)
            aTarget[id] = Key;
        Menu(id);
        return PLUGIN_HANDLED;
    }
    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[256];
        new LineName[32], tData[5][8], Data[MAX][8];
        
        while(!feof(pFile))
        {
            fgets(pFile, Line, 255);
            
            if(Line[0] == ';' || strlen(Line) < 2)
                continue;
                
            parse(Line, LineName, 31);
            
            if(equal(LineName, Name))
            {
                parse(Line, LineName, 31, tData[0], 7, tData[1], 7, tData[2], 7, tData[3], 7, tData[4], 7,
                Data[0], 7, Data[1], 7, Data[2], 7, Data[3], 7, Data[4], 7, Data[5], 7,
                Data[6], 7, Data[7], 7, Data[8], 7, Data[9], 7, Data[10], 7, Data[11], 7, Data[12], 7,
                Data[13], 7, Data[14], 7, Data[15], 7, Data[16], 7, Data[17], 7, Data[18], 7, Data[19], 7,
                Data[20], 7, Data[21], 7, Data[22], 7, Data[23], 7, Data[24], 7, Data[25], 7, Data[26], 7,
                Data[27], 7, Data[28], 7, Data[29], 7, Data[30], 7, Data[31], 7, Data[32], 7, Data[33], 7,
                Data[34], 7, Data[35], 7, Data[36], 7, Data[37], 7, Data[38], 7, Data[39], 7, Data[40], 7,
                Data[41], 7, Data[42], 7, Data[43], 7, Data[44], 7, Data[45], 7, Data[46], 7, Data[47], 7,
                Data[48], 7, Data[49], 7);
                
                Kills[id] = str_to_num(tData[0]);
                Points[id] = str_to_num(tData[1]);
                pKey[id] = str_to_num(tData[2]);
                Chest[id] = str_to_num(tData[3]);
                Rang[id] = str_to_num(tData[4]);
                
                for(new i; i < MAX; i++)
                {
                    uWeapon[i][id] = str_to_num(Data[i]);
                }
                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;
        
        while(!feof(pFile))
        {
            fgets(pFile, Line, 191);
            
            if(Line[0] == ';' || strlen(Line) < 2)
                continue;
                
            parse(Line, LineName, 31);
            
            if(equal(LineName, Name) && !Found)
            {
                new mLine[256], LoadWeapon[256], String[8];
                
                format(String, 7, "^"%i^" ", Kills[id]);
                add(LoadWeapon, 255, String);
                
                format(String, 7, "^"%i^" ", Points[id]);
                add(LoadWeapon, 255, String);
                
                format(String, 7, "^"%i^" ", pKey[id]);
                add(LoadWeapon, 255, String);
                
                format(String, 7, "^"%i^" ", Chest[id]);
                add(LoadWeapon, 255, String);
                
                format(String, 7, "^"%i^" ", Rang[id]);
                add(LoadWeapon, 255, String);
                    
                for(new i; i < MAX; i++)
                {
                    format(String, 7, "^"%i^" ", uWeapon[i][id]);
                    add(LoadWeapon, 255, String);
                }
                
                formatex(mLine, 255, "^"%s^" %s", Name, LoadWeapon);
                write_file(SaveFile, mLine, Lines);
                Found = true;
                return PLUGIN_HANDLED;
            }
            
            Lines++;
        }
        
        if(!Found)
        {
            new mLine[256], LoadWeapon[256], String[8];
            
            format(String, 7, "^"%i^" ", Kills[id]);
            add(LoadWeapon, 255, String);
            
            format(String, 7, "^"%i^" ", Points[id]);
            add(LoadWeapon, 255, String);
            
            format(String, 7, "^"%i^" ", pKey[id]);
            add(LoadWeapon, 255, String);
            
            format(String, 7, "^"%i^" ", Chest[id]);
            add(LoadWeapon, 255, String);
            
            format(String, 7, "^"%i^" ", Rang[id]);
            add(LoadWeapon, 255, String);
            
            for(new i; i < MAX; i++)
            {
                format(String, 7, "^"%i^" ", uWeapon[i][id]);
                add(LoadWeapon, 255, String);
            }
            
            formatex(mLine, 255, "^"%s^" %s", Name, LoadWeapon);
            write_file(SaveFile, mLine);
            return PLUGIN_HANDLED;
        }
        fclose(pFile);
    }
    return PLUGIN_CONTINUE;
}
public WeaponMenu(id)
{
    new String[128], Name[32];
    format(String, 127, "%s %L", Prefix, LANG_SERVER, "WPM");
    new wMenu = menu_create(String, "wMenuHandler");
    get_user_name(id, Name, 31);
    
    if(Choosen[id] == 0)
    {
        for(new i; i < sizeof(FirstWeaponNames); i++)
        {
            format(String, 127, "%s", FirstWeaponNames[i][0]);
            menu_additem(wMenu, String, FirstWeaponNames[i][1]);
        }
    }
    if(Choosen[id] == 1)
    {
        for(new i; i < sizeof(SecondaryWeaponNames); i++)
        {
            format(String, 127, "%s", SecondaryWeaponNames[i][0]);
            menu_additem(wMenu, String, SecondaryWeaponNames[i][1]);
        }
    }
    
    menu_display(id, wMenu);
}
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);
    
    give_item(id, data);
    Choosen[id]++;
    
    if(Choosen[id] >= 2)
        Grenades(id);
        
    WeaponMenu(id);
}
public RegMenu(id)
{
    new String[128], Name[32];
    format(String, 127, "%s %L", Prefix, LANG_SERVER, "RMMAIN");
    new rMenu = menu_create(String, "rMenuHandler");
    get_user_name(id, Name, 31);
    
    format(String, 127, "%L", LANG_SERVER, "RMACCOUNT", Name);
    menu_additem(rMenu, String, "0");
    
    if(!Registered(id))
    {
        format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]);
        menu_additem(rMenu, String, "1");
        
        if(strlen(Password[id]) > 4)
        {
            format(String, 127, "%L", LANG_SERVER, "RMR");
            menu_additem(rMenu, String, "2");
        }
        else
        {
            format(String, 127, "\d%L", LANG_SERVER, "RMR");
            menu_additem(rMenu, String, "0");
        }
    }
    else
    {
        if(!Loged[id])
        {
            format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]);
            menu_additem(rMenu, String, "1");
            
            if(equal(SavedPassword[id], Password[id]))
            {
                format(String, 127, "%L", LANG_SERVER, "RMLOGIN");
                menu_additem(rMenu, String, "3");
            }
            else
            {
                format(String, 127, "\d%L", LANG_SERVER, "RMLOGIN");
                menu_additem(rMenu, String, "0");
            }
        }
        else
        {
            format(String, 127, "%L", LANG_SERVER, "RMLOGOUT");
            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%L", Prefix, LANG_SERVER, "REGISTERSUCCESS", 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%L", Prefix, LANG_SERVER, "REGISTERLOGIN");
            Menu(id);
        }
    }
}
public ToLogout(id)
{
    if(Loged[id])
    {
        Loged[id] = false;
        Password[id] = "";
        print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERLOGOUT");
    }
}
public PlayerPassword(id)
{
    new Data[32];
    read_args(Data, 31);
    remove_quotes(Data);
    
    if(strlen(Data) < 5)
    {
        print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERSHORT");
        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 NameChange(id) 
{
    if(!is_user_connected(id))
        return FMRES_IGNORED;
        
    new OldName[32], NewName[32], Name[32];
    get_user_name(id, Name, 31);
    pev(id, pev_netname, OldName, charsmax(OldName));
    if(OldName[0])
    {
        get_user_info(id, "name", NewName, charsmax(NewName));
        if(!equal(OldName, NewName))
        {
            set_user_info(id, "name", OldName);
            print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERNAMECHANGE");
            return FMRES_HANDLED;
        }
    }
    return FMRES_IGNORED;
}
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, "^n^"%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");
}
ganjastyleizhigh is offline
siriusmd99
Veteran Member
Join Date: Oct 2013
Location: Republic of Moldova
Old 04-14-2016 , 06:59   Re: [HELP]
Reply With Quote #2

Change :

#define MAX 50

It's on the 13rd line.
siriusmd99 is offline
ganjastyleizhigh
Junior Member
Join Date: Mar 2016
Old 04-14-2016 , 10:03   Re: [HELP]
Reply With Quote #3

Code:
new WeaponNames[MAX][32], WeaponMdls[MAX][48], Weapons[MAX], WeaponDrop[MAX], AllWeapon; new UsingWeapon[3][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], inMarket[33], MarketPoints[33], Choosen[33]; new SavedPassword[33][32], bool:Loged[33], Password[33][32]; new DefaultSkin[31][32], NeedKills[30], Rangs[30][32];
Code:
                parse(Line, LineName, 31, tData[0], 7, tData[1], 7, tData[2], 7, tData[3], 7, tData[4], 7,                 Data[0], 7, Data[1], 7, Data[2], 7, Data[3], 7, Data[4], 7, Data[5], 7,                 Data[6], 7, Data[7], 7, Data[8], 7, Data[9], 7, Data[10], 7, Data[11], 7, Data[12], 7,                 Data[13], 7, Data[14], 7, Data[15], 7, Data[16], 7, Data[17], 7, Data[18], 7, Data[19], 7,                 Data[20], 7, Data[21], 7, Data[22], 7, Data[23], 7, Data[24], 7, Data[25], 7, Data[26], 7,                 Data[27], 7, Data[28], 7, Data[29], 7, Data[30], 7, Data[31], 7, Data[32], 7, Data[33], 7,                 Data[34], 7, Data[35], 7, Data[36], 7, Data[37], 7, Data[38], 7, Data[39], 7, Data[40], 7,                 Data[41], 7, Data[42], 7, Data[43], 7, Data[44], 7, Data[45], 7, Data[46], 7, Data[47], 7,                 Data[48], 7, Data[49], 7);                                  Kills[id] = str_to_num(tData[0]);                 Points[id] = str_to_num(tData[1]);                 pKey[id] = str_to_num(tData[2]);                 Chest[id] = str_to_num(tData[3]);                 Rang[id] = str_to_num(tData[4]);


No change here ?
ganjastyleizhigh is offline
siriusmd99
Veteran Member
Join Date: Oct 2013
Location: Republic of Moldova
Old 04-14-2016 , 11:12   Re: [HELP]
Reply With Quote #4

max is 50 , just change to a bigger value you want.
siriusmd99 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 18:36.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode