Русское сообщество по скриптингу

Ограничение на пункт в меню

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Ограничение на пункт в меню

Сообщение dvahitov95 » 16 сен 2017, 12:56

Всем привет. Как сделать ограничение на пункт в меню для всех игроков?

Код: Выделить всё
#include <amxmodx>

#define MAX_PLAYERS 32

new g_limit[33]

public 
plugin_init()
{
    
register_event("HLTV""new_round""a""1=0""2=0")
    
register_clcmd("menu""show_menu")
}

public 
new_round()
{
    for(new 
id 1id MAX_PLAYERS+1; ++id)
    {
        
g_limit[id] = 3
    
}
}

public 
show_amxmodmenu(id)
{
    new 
menu menu_create("\yMenu:""func_menu")
    
menu_additem(menu"Пункт 1 (%d/3)"g_limit[id])
    
menu_additem(menu"Пункт 2")
    
menu_additem(menu"Пункт 3")

    
menu_setprop(menuMPROP_EXITNAME"Выход")
    
menu_display(idmenu0)
    return 
PLUGIN_HANDLED
}

public 
func_menu(idmenukey)
{
    
key ++
    switch(
key)
    {
        case 
1:
        {
             
client_print(idprint_chat"бла")
             
g_limit[id] = g_limit[id] -1
        
}
        case 
2:
        {
            
client_print(idprint_chat"бла-бла")
        }
        case 
3:
        {
            
client_print(idprint_chat"бла-бла-бла")
        }
    }


Вот например чтобы 1 пункт можно было купить 3 раза (сам 1 раз и другие игроки 2 раза)
Аватара пользователя
dvahitov95
 
Сообщения: 133
Зарегистрирован: 07 авг 2017, 17:48
Предупреждения: 1
Благодарил (а): 16 раз.
Поблагодарили: 1 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Ограничение на пункт в меню

Сообщение ALIK » 16 сен 2017, 13:59

Код: Выделить всё
#define LIMIT 3

new g_limit


Код: Выделить всё
public new_round()
{
    g_limit = 0;
}

Код: Выделить всё
menu_additem(menu, "Пункт 1 (%d/%d)", g_limit, LIMIT)

Код: Выделить всё
case 1:
        {
            if(g_limit == LIMIT)
            {
                client_print(id, print_chat, "LIMIT"); return;    
            
}
            
            g_limit
++
            client_print(id, print_chat, "бла")
            
        
}
Аватара пользователя
ALIK
 
Сообщения: 201
Зарегистрирован: 01 июн 2010, 23:05
Благодарил (а): 110 раз.
Поблагодарили: 43 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: Ограничение на пункт в меню

Сообщение dvahitov95 » 16 сен 2017, 16:17

А так же лимит у меня ток будет не? Если я использую один раз, то у других будет так - "Пункт 1 (2/3)"?
Аватара пользователя
dvahitov95
 
Сообщения: 133
Зарегистрирован: 07 авг 2017, 17:48
Предупреждения: 1
Благодарил (а): 16 раз.
Поблагодарили: 1 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4