Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

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

Статус пользователя Captain
сообщение 17.9.2017, 13:22
Сообщение #1
Стаж: 12 лет

Сообщений: 251
Благодарностей: 7
Полезность: < 0

Привет. Вообщем такое дело. Не могу понять, как сделать общее ограничение на пункт в меню. Например сделать, чтобы невидимость можно было купить 3 раза. Получается 1 раз сам покупаешь, ну еще 2 игроков (потом всё лимит).

Код:
#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 = 1; id < 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(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}

public func_menu(id, menu, key)
{
key ++
switch(key)
{
case 1:
{
client_print(id, print_chat, "бла")
g_limit[id] = g_limit[id] -1
}
case 2:
{
client_print(id, print_chat, "бла-бла")
}
case 3:
{
client_print(id, print_chat, "бла-бла-бла")
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Sorokin
сообщение 17.9.2017, 13:39
Сообщение #2
Стаж: 9 лет 5 месяцев

Сообщений: 427
Благодарности: выкл.

Код:
#include <amxmodx>

new g_limit

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

public new_round()
{
g_limit = 3
}

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

menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}

public func_menu(id, menu, key)
{
key ++
switch(key)
{
case 1:
{
client_print(id, print_chat, "бла")
g_limit--;
}
case 2:
{
client_print(id, print_chat, "бла-бла")
}
case 3:
{
client_print(id, print_chat, "бла-бла-бла")
}
}
}


Cкрытый текст
S


Отредактировал: Sorokin, - 17.9.2017, 13:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Captain
сообщение 17.9.2017, 14:23
Сообщение #3
Стаж: 12 лет

Сообщений: 251
Благодарностей: 7
Полезность: < 0

Sorokin, а проверку такую делать?

Код:
if(g_limit < 1) 
menu_additem(menu, "\dПункт 1 (%d/3)", g_limit)
else
menu_additem(menu, "Пункт 1 (%d/3)", g_limit)


чтобы после 3-х использование у 4-го игрока пункт был серым цветом
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sorokin
сообщение 17.9.2017, 16:05
Сообщение #4
Стаж: 9 лет 5 месяцев

Сообщений: 427
Благодарности: выкл.

Captain, проверить конечно не судьба? А как же еще
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: