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

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

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

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

Помогите с меню.

Статус пользователя grant1
сообщение 22.2.2012, 19:01
Сообщение #1


Стаж: 17 лет

Сообщений: 82
Благодарностей: 11
Полезность: 106

Доброго времени суток, прошу помощи. Проблема такая... вот у меня меню (на новой системе) у меня допустим есть пункт взять дигл и в след. раунде пункт горит серым, я хочу чтобы при нажатия на пункт когда он серый меню не реагировало. Указывать public menu(id) не хочу т.к меню мерцает, а мне надо чтобы оно вообще не реагировало... Слышал про callback но толко не разобрался...помогите пожалуйста.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 22.2.2012, 19:49
Сообщение #2
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

grant1,
Исходник дай, там будет лучше видно и легче исправить.

Как ты думаешь? как я тебе скажу?

вот ответ:
В keys = MENU_KEY_№ - удали. (вместо № подставь № пункта, на который ты нажимаешь и при этом сделай -1, тоесть если пункт №1 тогда = 0 если 2 тогда = 1 если 5 тогда = 4 если 0 тогда = 9)

и возле твоего пункта, поставь:
keys |= MENU_KEY_№ - № = номер пункта который ты удалил.

P.S. - дай исходник если не умеешь делать...

Отредактировал: Orty_Hart, - 22.2.2012, 19:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя grant1
сообщение 22.2.2012, 20:40
Сообщение #3


Стаж: 17 лет

Сообщений: 82
Благодарностей: 11
Полезность: 106

Вот:
Код
        if(g_Deagle_counter >= get_cvar_num("amx_deg_every_rounds"))
        {
                            menu_additem(menu, "\wВзять дигл", "2")
        }
        else
        {
                            menu_additem(menu, "\dВзять дигл", "2")
        }

ну и потом действие...
        
case 2:
        {
            if(g_Deagle_counter >= get_cvar_num("amx_deg_every_rounds"))
            {
                deagle(id)
            }
            else
            {
                PrintChatColor(id, PRINT_COLOR_RED, "^1Дигл будет доступен через %d ^3раудов!", get_cvar_num("amx_deg_every_rounds")
            }
                }

у меня меню другое =(

Отредактировал: grant1, - 22.2.2012, 20:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 22.2.2012, 21:30
Сообщение #4
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

grant1,
чуть выше дай код....

где идет new....
а вообщем, выкинь весь исходник...

Отредактировал: Orty_Hart, - 22.2.2012, 21:31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя grant1
сообщение 22.2.2012, 21:56
Сообщение #5


Стаж: 17 лет

Сообщений: 82
Благодарностей: 11
Полезность: 106

Ну допустим вот, меню deathrun после else когда цвет серый пункт должен заморозится (нельзя нажать)
У меню исходник большой я кину часть.
Цитата
public new_menu(id)
{
if(!g_Selection)
if(is_user_connected(id) & is_user_alive(id) & get_user_team(id) == 1)
{
static menu
menu = menu_create("\yВы \rТеррорист! ^n\dВыберите режим игры:^n^n", "case_menu")

menu_additem(menu, "\wКнопки \d(\yСтандартный\d)", "1")
if(g_Invise_counter >= get_cvar_num("amx_invise_every_rounds"))
{
menu_additem(menu, "\wПризрак", "2")
}
else
{
menu_additem(menu, "\dПризрак", "2")
}
if(g_Victim_counter >= get_cvar_num("amx_victim_every_rounds"))
{
menu_additem(menu, "\wВы - жертва!", "3")
}
else
{

menu_additem(menu, "\dВы - жертва!", "3")
}

if(g_Snow_counter >= get_cvar_num("amx_snow_every_rounds"))
{

menu_additem(menu, "\wИграем в снежки", "4")
}
else
{

menu_additem(menu, "\dИграем в снежки", "4")
}

if(g_Gonka_counter >= get_cvar_num("amx_gonka_every_rounds"))
{

menu_additem(menu, "\wГонка на выживание", "5")
}
else
{

menu_additem(menu, "\dГонка на выживание", "5")
}

if(g_Rambo_counter >= get_cvar_num("amx_rambo_every_rounds"))
{

menu_additem(menu, "\wРэмбок", "6")
}
else
{

menu_additem(menu, "\dРэмбо", "6")
}

if(g_On_counter >= get_cvar_num("amx_on_every_rounds"))
{

menu_additem(menu, "\wНочь", "7")
}
else
{

menu_additem(menu, "\dНочь", "7")
}

if(g_Zombie_counter >= get_cvar_num("amx_zombie_every_rounds"))
{

menu_additem(menu, "\wЗомби", "8")
}
else
{

menu_additem(menu, "\dЗомби", "8")
}

if(g_Vampire_counter >= get_cvar_num("amx_vampire_every_rounds"))
{

menu_additem(menu, "\wВампир", "9")
}
else
{

menu_additem(menu, "\dВампир", "9")
}


// menu_setprop(menu,MPROP_EXIT,MEXIT_NEVER)
menu_setprop(menu,MEXIT_ALL, 0)
menu_display(id,menu,0)

}
return PLUGIN_HANDLED
}

public case_menu(id, menu, item)
{
static data[6], name[64], clbck, accs, key
menu_item_getinfo(menu, item, accs, data, 5, name, 63, clbck)
key = str_to_num(data)

switch(key)
{
case 1:
{
set_dhudmessage(0, 204, 204, 0.01, 0.50, 0, 6.0, 8.0, 1.0, 1.5)
show_dhudmessage(0, "Раунд на кнопках!^nОстерегайся ловушек!!")
set_pev(id, pev_friction, 1.0)

g_Selection = true
}
case 2:
{
if(g_Invise_counter >= get_cvar_num("amx_invise_every_rounds"))
{
invis(id)
}
else
{
// PrintChatColor(id, PRINT_COLOR_RED, "^1Режим ^4Призрак будет доступен через %d ^3раудов!", get_cvar_num("amx_invise_every_rounds") - g_Invise_counter) /

}
}
case 3:
{
if(g_Victim_counter >= get_cvar_num("amx_victim_every_rounds"))
{
Victim(id)
g_Selection = true
set_pev(id, pev_friction, 1.0)
}
else
{
Vote_Rounds(id)
PrintChatColor(id, PRINT_COLOR_RED, "^1Режим ^4Жертва будет доступен через %d ^3раудов!", get_cvar_num("amx_victim_every_rounds") - g_Victim_counter)
}
}
case 4:
{
if(g_Snow_counter >= get_cvar_num("amx_snow_every_rounds"))
{
go_snow(id)
g_Selection = true
set_pev(id, pev_friction, 1.0)
}
else
{
Vote_Rounds(id)
PrintChatColor(id, PRINT_COLOR_RED, "^1Режим ^4Снежки будет доступен через %d ^3раудов!", get_cvar_num("amx_snow_every_rounds") - g_Snow_counter)
}
}
case 5:
{
if(g_Gonka_counter >= get_cvar_num("amx_gonka_every_rounds"))
{
Gonka(id)
g_Selection = true
set_pev(id, pev_friction, 1.0)
}
else
{
Vote_Rounds(id)
PrintChatColor(id, PRINT_COLOR_RED, "^1Режим ^4Гонка будет доступен через %d ^3раудов!", get_cvar_num("amx_gonka_every_rounds") - g_Gonka_counter)
}
}
case 6:
{
if(g_Rambo_counter >= get_cvar_num("amx_rambo_every_rounds"))
{
rembo_go(id)
g_Selection = true
set_pev(id, pev_friction, 1.0)
}
else
{
Vote_Rounds(id)
PrintChatColor(id, PRINT_COLOR_RED, "^1Режим ^4Рэмбо будет доступен через %d ^3раудов!", get_cvar_num("amx_rambo_every_rounds") - g_Rambo_counter)
}
}
case 7:
{
if(g_On_counter >= get_cvar_num("amx_on_every_rounds"))
{
night_go(id)
g_Selection = true
set_pev(id, pev_friction, 1.0)
}
else
{
Vote_Rounds(id)
PrintChatColor(id, PRINT_COLOR_RED, "^1Режим ^4Тьма будет доступен через %d ^3раудов!", get_cvar_num("amx_on_every_rounds") - g_On_counter)
}
}
case 8:
{
if(g_Zombie_counter >= get_cvar_num("amx_zombie_every_rounds"))
{
Zombie(id)
g_Selection = true
set_pev(id, pev_friction, 1.0)
}
else
{
Vote_Rounds(id)
PrintChatColor(id, PRINT_COLOR_RED, "^1Режим ^4Зомби будет доступен через %d ^3раудов!", get_cvar_num("amx_zombie_every_rounds") - g_Zombie_counter)
}
}
case 9:
{
if(g_Vampire_counter >= get_cvar_num("amx_vampire_every_rounds"))
{
Vampire(id)
g_Selection = true
set_pev(id, pev_friction, 1.0)
}
else
{
Vote_Rounds(id)
PrintChatColor(id, PRINT_COLOR_RED, "^1Режим ^4Вампир будет доступен через %d ^3раудов!", get_cvar_num("amx_vampire_every_rounds") - g_Vampire_counter)
}
}
}
remove_task(id)
return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 22.2.2012, 22:09
Сообщение #6
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

grant1,
омг.... тут как-то по другому написано меню...
попробуй:

Код
if(g_Deagle_counter >= get_cvar_num("amx_deg_every_rounds"))
        {
                            menu_additem(menu, "\wВзять дигл", "2")
        }
        else
        {
                            menu_additem(menu, "\dВзять дигл", "0")
        }


и добавь:

Код
case 0:
{
return PLUGIN_HANDLED
}


или

Код
default:
{
return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя grant1
сообщение 22.2.2012, 23:06
Сообщение #7


Стаж: 17 лет

Сообщений: 82
Благодарностей: 11
Полезность: 106

Меню просто закрывается..я пробовал return ITEM_IGNORE тоже так же...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 23.2.2012, 18:21
Сообщение #8
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

grant1,
так нужно не закрывать? а просто, чтоб нельзя было нажать??
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя grant1
сообщение 23.2.2012, 19:03
Сообщение #9


Стаж: 17 лет

Сообщений: 82
Благодарностей: 11
Полезность: 106

да чтобы нажал и как будто нечего не произошло! меню так и должно остаться, но как я не знаю...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 23.2.2012, 19:36
Сообщение #10
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

grant1,
Есть несколько вариантов...

1. Найлучший:
Переписать меню - наново.
и по другому... в виде:

тык
Код
    new menuBody[512]
    new keys = MENU_KEY_1 | MENU_KEY_9 | MENU_KEY_0
    
    new len = format(menuBody, 511, "\yУправление картами \w^n^n", id)
    
    len += format(menuBody[len], 511-len, "1.Голосование за карту^n")

    len += format(menuBody[len], 511-len, "^n9. Назад")
    format(menuBody[len], 511-len, "^n0. Выход", id)
    
    show_menu(id, keys, menuBody, -1, "Map Menu")


Всё - понятно и легко....

2. Не самый лучший:

попробуй:

Код
menu_additem(menu, "\wВзять дигл", "")


или:

Код
menu_additem(menu, "\wВзять дигл")


пробуй сам, методом втыка)) я - не знаю как сделать((
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя grant1
сообщение 23.2.2012, 20:04
Сообщение #11


Стаж: 17 лет

Сообщений: 82
Благодарностей: 11
Полезность: 106

Жаль, переписывать блин... я к этому так привык) 2 вариант не получился, странно почему... Всёравно меню закрывается =(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 23.2.2012, 21:35
Сообщение #12
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

grant1,
ну ты сам видишь... что ошибку исправить как-то можно, но хз как)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: