Помогите с меню в SourceMod плагине

Для тех, кто хочет сделать мир лучше.
Ответить
Сообщение
Автор
Аватара пользователя
Pontifex
Лейтенант
Лейтенант
Сообщения: 105
Зарегистрирован: 26.11.2008

#1 Сообщение 06.04.2009, 11:21

Вообщем делаю меню в сурсмод, и возникла проблема, при выборе пункта в меню, после того как исполняется команда, меню исчезает, а мне не надо что бы оно исчезало, скажите что для этого нужно сделать.
Вот мой код:

Код: Выделить всё

public OnPluginStart()
{
    RegConsoleCmd("mlmenu", mustlivemenu);
    CreateConVar("mlmenu_version", PLUGIN_VERSION, "mlmenu_Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
}

public Action:mustlivemenu(client,args)
{
    mlmenu(client);
    
    return Plugin_Handled;
}

public Action:mlmenu(clientId) {
    new Handle:menu = CreateMenu(MLMenuHandler);
    SetMenuTitle(menu, "Меню");
    AddMenuItem(menu, "option1", "Пункт 1");
    AddMenuItem(menu, "option2", "Пункт 2");
    AddMenuItem(menu, "option3", "Пункт 3");
	AddMenuItem(menu, "option4", "Пункт 4");
	AddMenuItem(menu, "option5", "Пункт 5");
    
    SetMenuExitButton(menu, true);
    DisplayMenu(menu, clientId, MENU_TIME_FOREVER);
    
    return Plugin_Handled;
}

public MLMenuHandler(Handle:menu, MenuAction:action, client, itemNum)
{
    
    if ( action == MenuAction_Select ) {
        
        switch (itemNum)
        {
            case 0: 
            {
                FakeClientCommand(client, "консольная_команда");
            }
            case 1: 
            {
                FakeClientCommand(client, "консольная_команда");
            }
            case 2:
            {
                FakeClientCommand(client, "консольная_команда");
			}	
	case 3:
            {
                FakeClientCommand(client, "консольная_команда");
			}
	case 4:
            {
                FakeClientCommand(client, "консольная_команда");
            }
        }
    }

} 

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#2 Сообщение 06.04.2009, 18:09

В амхх можно было только заного вызывать меню. Попробуй, может это то что надо.

Или попробуй action присваивать null или чёнить ещё, либо return false (тут очнь не уверен :) обычно return так нельзя юзать)

Аватара пользователя
Pontifex
Лейтенант
Лейтенант
Сообщения: 105
Зарегистрирован: 26.11.2008

#3 Сообщение 06.04.2009, 21:19

Можно поподробнее? prankster

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#4 Сообщение 07.04.2009, 16:32

Ну, подробнее щя не скажу, но есть ещё вариант: открыть исходники стандартного сорсмода (тоесть его плагинов) и посмотреть как там это сделано :) А вообще читай мануалы, там это должно быть ;)


А если прикинуть, то нужно в конце меню хэндлера вызывать mlmenu(clientid);

Аватара пользователя
Kick-Bum
Полковник
Полковник
Сообщения: 2311
Зарегистрирован: 29.04.2008
Откуда: Behind you
Поблагодарили: 6 раз
Контактная информация:

#5 Сообщение 07.04.2009, 19:07

MOZGIII писал(а):читай мануалы, там это должно быть
кстати да - http://wiki.alliedmods.net/Custom_Admin ... SourceMod)

Аватара пользователя
Pontifex
Лейтенант
Лейтенант
Сообщения: 105
Зарегистрирован: 26.11.2008

#6 Сообщение 07.04.2009, 19:18

Kick-Bum писал(а):
MOZGIII писал(а):читай мануалы, там это должно быть
кстати да - http://wiki.alliedmods.net/Custom_Admin ... SourceMod)
это не то, я делаю меню на Пауне

Аватара пользователя
Kick-Bum
Полковник
Полковник
Сообщения: 2311
Зарегистрирован: 29.04.2008
Откуда: Behind you
Поблагодарили: 6 раз
Контактная информация:

#7 Сообщение 07.04.2009, 19:23

Pontifex
тогда это, смотрел?

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#8 Сообщение 07.04.2009, 20:48

Там пишут надо юзать RedisplayAdminMenu :) Но у нас ведь Menu а не AdminMenu, я думаю там где-то будет загвоздка...

Аватара пользователя
Pontifex
Лейтенант
Лейтенант
Сообщения: 105
Зарегистрирован: 26.11.2008

#9 Сообщение 08.04.2009, 04:34

MOZGIII писал(а):Там пишут надо юзать RedisplayAdminMenu :) Но у нас ведь Menu а не AdminMenu, я думаю там где-то будет загвоздка...
вот именно

меню которое я делаю, оно для всех игроков

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#10 Сообщение 08.04.2009, 07:24

Почитай инклуд из которого берёш класс Menu

Аватара пользователя
Pontifex
Лейтенант
Лейтенант
Сообщения: 105
Зарегистрирован: 26.11.2008

#11 Сообщение 08.04.2009, 11:07

Мозгиии, я тебя не понимаю :D
Я новичек в этом деле :blush:

Аватара пользователя
Wetal
Капитан
Капитан
Сообщения: 442
Зарегистрирован: 01.01.2007
Контактная информация:

#12 Сообщение 08.04.2009, 11:33

#include ...
что тут непонятного? ^_^

Ответить