shopmenu

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
46
Реакции
8
Предупреждения
100
Помог
3 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Привет народ, возникла такая проблема, в данном плагине используется массив что дает использовать не более 6, я так понял что без массива ничего не изменится, но можно будет использовать неограниченное количество пунктов, где можно убрать данный массив?

Код:
#include amxmodx
#include fakemeta_util
#include fun
#include hamsandwich
#include colorchat
#include cstrike
#include fakemeta

#define AUTHOR "ReapiTV"
#define PLUGIN "shop menu"
#define VERSION "0.1"

//#pragma tabsize 0

native give_weapon_vsk94(id);
native give_weapon_m134(id);
native give_weapon_m24(id);
native give_weapon_buffsg552(id);
native give_weapon_hk416ex(id);
native give_weapon_sprifle(id);
native give_weapon_usas(id);
native give_weapon_aks74u(id);

//#define VIP_FLAG ADMIN_LEVEL_H            // флаг VIP

//native is_user_zombie(id);              // Натив на проверку игрок зомби или нет
new iMoney,iShop[7];                    // Переменная для cs_get_user_money(id), Переменная для $ у VIPa

public plugin_init()
{
    register_plugin(AUTHOR, PLUGIN, VERSION);
    
    register_clcmd("magazin","shop_menu");
    register_clcmd("say /magazin","shop_menu");
    
    register_event( "HLTV", "RoundStart", "a", "1=0", "2=0" );    // Событие старта раунда
    
    register_menucmd(register_menuid("Show_ShopMenu"),(1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<9), "Handle_ShopMenu");
}

public RoundStart()
{
    for(new r = 0; r <= 7; r++)
    {
        iShop[r] = 0;
    }
}

public shop_menu(id)
{
    if(is_user_alive(id) && is_user_connected(id))    // Если игрок (не зомби,живой,подключен) запустить меню
    {
        Show_ShopMenu(id);
    }else ColorChat(id,GREEN,"^1[^4Магазин^1] ^3Вам это недоступно.")
}

public Show_ShopMenu(id)
{
    iMoney = cs_get_user_money(id);
    new szMenu[1024], iKeys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<9), iLen = formatex(szMenu, charsmax(szMenu), "\wМагазин оружия^n\wДеньги\d: \y%d$^n^n",iMoney);
    if(iShop[0] == 0)
    {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r1. \wVsk94 \r| \d(\y3000$\d)^n");
        iKeys |= (1<<1);
    }else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\d1. \dVsk94 \r| \d(\y3000$\d)^n");
    if(iShop[1] == 0)
    {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r2. \wМиниган \r| \d(\y8000$\d)^n");
        iKeys |= (1<<2);
    }else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\d2. \dМиниган \r| \d(\y8000$\d)^n");
    if(iShop[2] == 0)
    {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r3. \wM-24 \r| \d(\y3000$\d)^n");
        iKeys |= (1<<3);
    }else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\d3. \dM-24 \r| \d(\y3000$\d)^n");
    if(iShop[3] == 0)
    {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r4. \wSG552 Lycanthrope \r| \d(\y4500$\d)^n");
        iKeys |= (1<<4);
    }else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\d4. \dSG552 Lycanthrope \r| \d(\y4500$\d)^n");
    if(iShop[4] == 0)
    {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r5. \wHk416 \r| \d(\y2000$\d)^n");
        iKeys |= (1<<5);
    }else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\d5. \dHk416 \r| \d(\y2000$\d)^n");
    if(iShop[5] == 0)
    {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r6. \wAWP Sprifle \r| \d(\y3000$\d)^n");
        iKeys |= (1<<6);
    }else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\d6. \dAWP Sprifle \r| \d(\y3000$\d)^n");
    if(iShop[6] == 0)
    {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r7. \wMK3O1 \r| \d(\y3500$\d)^n");
        iKeys |= (1<<7);
    }else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\d7. \dMK3O1 \r| \d(\y3500$\d)^n");
    if(iShop[6] == 0)
    formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\r0. \wВыйти^n^n");
    return show_menu(id, iKeys, szMenu, -1, "Show_ShopMenu");
}

public Handle_ShopMenu(id, iKey)
{
    new pname[33],UserMoney[33];
    get_user_name(id,pname,charsmax(pname));
    UserMoney[id] = cs_get_user_money(id);
    switch(iKey)
    {
        case 0:
        {
            if(iShop[0] == 0)
            {
                if(UserMoney[id] >= 3000)
                {
                    cs_set_user_money(id,UserMoney[id] - 3000);
                    fm_strip_user_gun( id, CSW_M249 ) ;
                    fm_strip_user_gun( id, CSW_SCOUT ) ;
                    fm_strip_user_gun( id, CSW_M4A1 ) ;
                    fm_strip_user_gun( id, CSW_FAMAS ) ;
                    fm_strip_user_gun( id, CSW_GALIL ) ;
                    fm_strip_user_gun( id, CSW_AK47 ) ;
                    fm_strip_user_gun( id, CSW_AWP ) ;
                    fm_strip_user_gun( id, CSW_P90 ) ;
                    fm_strip_user_gun( id, CSW_M3 ) ;
                    give_weapon_vsk94(id);
                    return Show_ShopMenu(id)
                }
                else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Игрок ^3%s^1 у вас недостаточно ^3средств.",pname);
            }else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Можно купить ^41 раз.");
        }
        case 1:
        {
            if(iShop[1] == 0)
            {
                if(UserMoney[id] >= 8000)
                {
                    cs_set_user_money(id,UserMoney[id] - 8000);
                    fm_strip_user_gun( id, CSW_M249 ) ;
                    fm_strip_user_gun( id, CSW_SCOUT ) ;
                    fm_strip_user_gun( id, CSW_M4A1 ) ;
                    fm_strip_user_gun( id, CSW_FAMAS ) ;
                    fm_strip_user_gun( id, CSW_GALIL ) ;
                    fm_strip_user_gun( id, CSW_AK47 ) ;
                    fm_strip_user_gun( id, CSW_AWP ) ;
                    fm_strip_user_gun( id, CSW_P90 ) ;
                    fm_strip_user_gun( id, CSW_M3 ) ;
                    give_weapon_m134(id);
                    return Show_ShopMenu(id);
                }
                else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Игрок ^3%s^1 у вас недостаточно ^3средств.",pname);
            }else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Можно купить ^41 раз.");
        }
        case 2:
        {
            if(iShop[2] == 0)
            {
                if(UserMoney[id] >= 3500)
                {
                    cs_set_user_money(id,UserMoney[id] - 3500);
                    fm_strip_user_gun( id, CSW_M249 ) ;
                    fm_strip_user_gun( id, CSW_SCOUT ) ;
                    fm_strip_user_gun( id, CSW_M4A1 ) ;
                    fm_strip_user_gun( id, CSW_FAMAS ) ;
                    fm_strip_user_gun( id, CSW_GALIL ) ;
                    fm_strip_user_gun( id, CSW_AK47 ) ;
                    fm_strip_user_gun( id, CSW_AWP ) ;
                    fm_strip_user_gun( id, CSW_P90 ) ;
                    fm_strip_user_gun( id, CSW_M3 ) ;
                    give_weapon_m24(id);
                    return Show_ShopMenu(id);
                }
                else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Игрок ^3%s^1 у вас недостаточно ^3средств.",pname);
            }else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Можно купить ^41 раз");
        }
        case 3:
        {
            if(iShop[3] == 0)
            {
                if(UserMoney[id] >= 4500)
                {
                    cs_set_user_money(id,UserMoney[id] - 4500);
                    fm_strip_user_gun( id, CSW_M249 ) ;
                    fm_strip_user_gun( id, CSW_SCOUT ) ;
                    fm_strip_user_gun( id, CSW_M4A1 ) ;
                    fm_strip_user_gun( id, CSW_FAMAS ) ;
                    fm_strip_user_gun( id, CSW_GALIL ) ;
                    fm_strip_user_gun( id, CSW_AK47 ) ;
                    fm_strip_user_gun( id, CSW_AWP ) ;
                    fm_strip_user_gun( id, CSW_P90 ) ;
                    fm_strip_user_gun( id, CSW_M3 ) ;
                    give_weapon_buffsg552(id);
                    return Show_ShopMenu(id);
                }
                else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Игрок ^3%s^1 у вас недостаточно ^3средств.",pname);
            }else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Можно купить ^41 раз.");
        }
        case 4:
        {
            if(iShop[4] == 0)
            {
                if(UserMoney[id] >= 2000)
                {
                    cs_set_user_money(id,UserMoney[id] - 2000);
                    fm_strip_user_gun( id, CSW_M249 ) ;
                    fm_strip_user_gun( id, CSW_SCOUT ) ;
                    fm_strip_user_gun( id, CSW_M4A1 ) ;
                    fm_strip_user_gun( id, CSW_FAMAS ) ;
                    fm_strip_user_gun( id, CSW_GALIL ) ;
                    fm_strip_user_gun( id, CSW_AK47 ) ;
                    fm_strip_user_gun( id, CSW_AWP ) ;
                    fm_strip_user_gun( id, CSW_P90 ) ;
                    fm_strip_user_gun( id, CSW_M3 ) ;
                    give_weapon_hk416ex(id);
                    return Show_ShopMenu(id);
                }
                else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Игрок ^3%s^1 у вас недостаточно ^3средств.",pname);
            }else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Можно купить ^41 раз.");
        }
        case 5:
        {
            if(iShop[5] == 0)
            {
                if(UserMoney[id] >= 3000)
                {
                    cs_set_user_money(id,UserMoney[id] - 3000);
                    fm_strip_user_gun( id, CSW_M249 ) ;
                    fm_strip_user_gun( id, CSW_SCOUT ) ;
                    fm_strip_user_gun( id, CSW_M4A1 ) ;
                    fm_strip_user_gun( id, CSW_FAMAS ) ;
                    fm_strip_user_gun( id, CSW_GALIL ) ;
                    fm_strip_user_gun( id, CSW_AK47 ) ;
                    fm_strip_user_gun( id, CSW_AWP ) ;
                    fm_strip_user_gun( id, CSW_P90 ) ;
                    fm_strip_user_gun( id, CSW_M3 ) ;
                    give_weapon_sprifle(id);
                    return Show_ShopMenu(id);
                }
                else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Игрок ^3%s^1 у вас недостаточно ^3средств.",pname);
            }else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Можно купить ^41 раз.");
        }
        case 6:
        {
            if(iShop[6] == 0)
            {
                if(UserMoney[id] >= 3500)
                {
                    cs_set_user_money(id,UserMoney[id] - 3500);
                    fm_strip_user_gun( id, CSW_M249 ) ;
                    fm_strip_user_gun( id, CSW_SCOUT ) ;
                    fm_strip_user_gun( id, CSW_M4A1 ) ;
                    fm_strip_user_gun( id, CSW_FAMAS ) ;
                    fm_strip_user_gun( id, CSW_GALIL ) ;
                    fm_strip_user_gun( id, CSW_AK47 ) ;
                    fm_strip_user_gun( id, CSW_AWP ) ;
                    fm_strip_user_gun( id, CSW_P90 ) ;
                    fm_strip_user_gun( id, CSW_M3 ) ;
                    give_weapon_usas(id);
                    return Show_ShopMenu(id);
                }
                else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Игрок ^3%s^1 у вас недостаточно ^3средств.",pname);
            }else ColorChat(id,GREEN,"^1[^4Магазин^1] ^1Можно купить ^41 раз.");
        }
        case 9: return PLUGIN_HANDLED;
    }
    return Show_ShopMenu(id);
}
 
Сообщения
46
Реакции
8
Предупреждения
100
Помог
3 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Какой массив? Не больше 6 чего? Пожалуйста, уточняйте.
В плагине используется массив, как я понял это if(iShop[0] == 0), при массиве можно использовать только 6 пунктов, мне нужно убрать массив
 
Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
apple4, в данном плагине от этого массива нет никакого толку. Он всегда равен 0, и по этому, всегда пункты в меню будут доступны всегда. В массив ничего не записывается, кроме как при старте раунда 0 перезаписывается. :crazy:
 
Сообщения
46
Реакции
8
Предупреждения
100
Помог
3 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Minni, ну это я понял, но дело в том что там ограничение на использование кол-во пунктов, тоесть больше 6 уже не сделаешь, а я хотел сделать больше, а если увеличить массив? например сделать не 7 а 10 или 14
29 Июн 2018
все сделал) просто увеличил массив и все норма)) Можно закрывать)
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу