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

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

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

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

[MENU] Обычное -> Динамичное

Статус пользователя ssx
сообщение 4.11.2016, 15:52
Сообщение #1


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Всем привет! Возникла проблема с переделкой меню , требуется помощь знающих.

Есть статическое меню:
Код:
public func_menu(id, menu, key)
{
new accss, clbck, data[6], name[64], itm
menu_item_getinfo(menu, key, accss, data, 5, name, 63, clbck)
itm = str_to_num(data)
switch(itm)
{
case 1:open_menu_1(id)
case 2:open_menu_2(id)
case 3:open_menu_3(id)
case 4:open_menu_4(id)
case 5:open_menu_5(id)
case 6:open_menu_6(id)
case 7:open_menu_7(id)
case 8:open_menu_8(id)
case 9:open_menu_9(id)
case 10:open_menu_10(id)
case 0: menu_destroy(menu)
}
return PLUGIN_HANDLED
}

public menu(id)
{
new menu
menu = menu_create("\rMENU","func_menu");
menu_additem( menu,"\yMenu 1", "1", 0)
menu_additem( menu,"\yMenu 2", "2", 0)
menu_additem( menu,"\yMenu 3", "3", 0)
menu_additem( menu,"\yMenu 4", "4", 0)
menu_additem( menu,"\yMenu 5", "5", 0)
menu_additem( menu,"\yMenu 6", "6", 0)
menu_additem( menu,"\yMenu 7", "7", 0)
menu_additem( menu,"\yMenu 8", "8", 0)
menu_additem( menu,"\yMenu 9", "9", 0)
menu_additem( menu,"\yMenu 10", "10", 0)

menu_setprop ( menu, MPROP_BACKNAME, "Назад" );
menu_setprop ( menu, MPROP_NEXTNAME, "Далее" );
menu_setprop ( menu, MPROP_EXITNAME, "Выход" );

menu_display(id, menu)
return PLUGIN_HANDLED
}


Помогите переделать его так что бы при условиях можно было скрывать пункты и при этом нумерация не проскакивала.

Чтобы было понятней, нужно что-то типа такого:

Код:

if(blablabla == 1)
{
menu_additem( menu,"\yMenu 5", "НОМЕР", 0)
}


Чтобы при условии blablabla == 1 было:
menu_additem( menu,"\yMenu 1", "1", 0)
menu_additem( menu,"\yMenu 2", "2", 0)
menu_additem( menu,"\yMenu 3", "3", 0)
menu_additem( menu,"\yMenu 4", "4", 0)
menu_additem( menu,"\yMenu 5", "5", 0)
menu_additem( menu,"\yMenu 6", "6", 0)
menu_additem( menu,"\yMenu 7", "7", 0)
menu_additem( menu,"\yMenu 8", "8", 0)
menu_additem( menu,"\yMenu 9", "9", 0)
menu_additem( menu,"\yMenu 10", "10", 0)

а при условии blablabla == 0 было:
menu_additem( menu,"\yMenu 1", "1", 0)
menu_additem( menu,"\yMenu 2", "2", 0)
menu_additem( menu,"\yMenu 3", "3", 0)
menu_additem( menu,"\yMenu 4", "4", 0)
menu_additem( menu,"\yMenu 6", "5", 0)
menu_additem( menu,"\yMenu 7", "6", 0)
menu_additem( menu,"\yMenu 8", "7", 0)
menu_additem( menu,"\yMenu 9", "8", 0)
menu_additem( menu,"\yMenu 10", "9", 0)

Отредактировал: ssx, - 4.11.2016, 15:53


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Algalon
сообщение 4.11.2016, 16:27
Сообщение #2
Стаж: 11 лет

Сообщений: 163
Благодарностей: 60
Полезность: 291

ssx, можно вот так сделать, только не могу понять зачем такая наркомань нужна?
Код:
new iNum = 1, sNum[3]

num_to_str(iNum, sNum, charsmax(sNum))
iNum += menu_additem(iMenu, "Menu 1", sNum)

if(blablabla == 1)
{
num_to_str(iNum, sNum, charsmax(sNum))
iNum += menu_additem(iMenu, "Menu 2", sNum)
}

num_to_str(iNum, sNum, charsmax(sNum))
iNum += menu_additem(iMenu, "Menu 3", sNum)


Отредактировал: Algalon, - 4.11.2016, 16:28
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 4.11.2016, 16:32
Сообщение #3


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Algalon,
Затем что делаю плагин с пунктами которые заказчику не все нужны но могут понадобится в любой момент.
И хочет чтобы была такая гибкость.

А как плагин должен понимать что в при условии в пункте 5 должен быть пункт 6 ?


Отредактировал: ssx, - 4.11.2016, 16:33


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: