Не выводится меню

Тема в разделе "Программирование / Скриптинг", создана пользователем tonline_kms65, 31 окт 2015.

  1. tonline_kms65

    tonline_kms65 Read Only

    Сообщения:
    77
    Симпатии:
    10
    Что то я завис с созданием меню. Не пойму что не так.
    Сколько не пытаюсь создать меню не выводится и все тут. Вернее сказать не не выводится а тут же закрывается. Причина клиент закрыл меню.
    Я уже все примеры создания меню испробовал. Результат один и тот же. Клиент закрыл меню. Самое интересное - скомпилированные плагины меню работает на ура (не мои).
    Или дело в компиляторе, вернее в инклюдах. Я не пойму. У кого такое было отпишитесь.
    Хочу попробовать исходник чей нибудь, с реально рабочим меню откомпилить у себя. Время выберу - попробую. Но пока - завис напрочь.
     
  2. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.984
    Симпатии:
    2.983
    tonline_kms65, код дай, наугад же не скажешь что не так
     
  3. tonline_kms65

    tonline_kms65 Read Only

    Сообщения:
    77
    Симпатии:
    10
    Я перепробовал много примеров. Вот например этот.

    public OnPluginStart()
    {
    // зарегистрировали консольную команду menu_test1 для открытия меню.
    RegConsoleCmd("menu_test1", Menu_Test1);
    }

    // хандл меню
    public MenuHandler1(Handle:menu, MenuAction:action, param1, param2)
    {
    /* Если был выбран какой-либо пункт, то сообщим клиенту о его выборе. */
    if (action == MenuAction_Select)
    {
    new String:info[32]; // переменная для хранения выбора
    new bool:found = GetMenuItem(menu, param2, info, sizeof(info)); // получаем информацию о выбранном в меню пункте
    PrintToConsole(param1, "Вы нажали: %d (найдено? %d информация: %s)", param2, found, info); // пишем клиенту в консоль
    }
    /* Если меню было отменено, то сообщим об этом серверу. */
    else if (action == MenuAction_Cancel)
    {
    PrintToServer("Клиент %d' закрыл меню. Причина: %d", param1, param2);
    }
    /* Если меню "закончилось", то удалим его из памяти */
    else if (action == MenuAction_End)
    {
    CloseHandle(menu);
    }
    }

    public Action:Menu_Test1(client, args)
    {
    new Handle:menu = CreateMenu(MenuHandler1);
    SetMenuTitle(menu, "Вы любите яблоки?");
    AddMenuItem(menu, "да", "да");
    AddMenuItem(menu, "нет", "нет");
    SetMenuExitButton(menu, false);
    DisplayMenu(menu, client, 20);

    return Plugin_Handled;
    }

    Это пример из урока. https://wiki.alliedmods.net/Ru:Menu_API_(SourceMod)
    И таких примеров полно. Я их почти все перепробовал. Результат один - я сразу же закрыл меню.
    Поэтому у меня просьба - дайте кто нибудь полностью рабочий код. Попробую у себя откомпилировать.
    Все-таки у меня подозрение на компилятор. Либо сама контра что то мутит. Так бы откомпилировал рабочий код, посмотрел бы в игре. Половина вопросов бы отпала. А так даже не знаю на что думать.
    Кстати после компиляции sm plugin list показывает что плагин запущен. В логах ошибок нет. То-есть плагин работает. Получается какая то команда после вызова меню тут же его закрывает.
    Да, еще одно, я плагины тестирую на локальном сервере. Может быть дело в этом? Хотя какая разница. Версия v86.

    Еще одно.
    При вызове аминки пишу в чате - !admin - отрабатывает все отлично.
    пишу в консоли sm_admin - не отрабатывает, пишет - [SM] This command can only be used in-game.
    Эта команда может использоваться только в игре, получается я не авторизован?!
    Может быть что то с этим связанно.

    Попробовать зарегать чат-команду, если на то пошло. Щас попробую.


    Народ, вы не поверите. Чат команда работает отлично!
    Консольная команда так же не работает. Что за проблема?


    public OnPluginStart()
    {
    // зарегистрировали консольную команду menu_test1 для открытия меню.
    RegConsoleCmd("menu_test1", Menu_Test1);
    RegConsoleCmd( "say", Menu_Test1);
    }
     
    Последнее редактирование: 31 окт 2015
  4. tonline_kms65

    tonline_kms65 Read Only

    Сообщения:
    77
    Симпатии:
    10
    Какую клавишу. Я вообще ничего не нажимаю. Меню то не появляется. Как я могу что то нажать.
     
  5. tonline_kms65

    tonline_kms65 Read Only

    Сообщения:
    77
    Симпатии:
    10
    Я не пойму, ты прикалываешься?
    Я же написал - чат команда отрабатывается. Консольная нет.
    Если можно, дай рабочий на 100 процентов код меню. Откомпилирую, посмотрю, сразу будет видно где косяк. А так у меня есть сомнения что где то в коде ошибочка. Нужно эту ошибку исключить.
     
  6. tonline_kms65

    tonline_kms65 Read Only

    Сообщения:
    77
    Симпатии:
    10
    Почему с sm_ ?
    Я же код пример показал, там команда "Menu_Test1" консольная и чат.

    RegConsoleCmd("menu_test1", Menu_Test1); консольная команда.
    RegConsoleCmd( "say", Menu_Test1); чат-команда.

    Причем здесь sm_ ?!

    По моему мы с тобой на разных языках говорим. Я что то недопонимаю. Если в консоли ввести команду вот так sm_Menu_Test1 (:-D) просто скажет что такой команды нет. :nono: Или при регистрации нужно sm_ добавить.
    Или я что то точно непонимаю.
     
  7. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.984
    Симпатии:
    2.983
    tonline_kms65, оно видит что sm_admin ты пишешь через ркон
     
  8. tonline_kms65

    tonline_kms65 Read Only

    Сообщения:
    77
    Симпатии:
    10
    Я так понимаю предложений нет?
     
  9. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.521
    Симпатии:
    1.972
    Статья, почему это стоит делать (sm_megaslap).
     
  10. tonline_kms65

    tonline_kms65 Read Only

    Сообщения:
    77
    Симпатии:
    10
    Спасибо за статью, информация интересная, пригодится.
    Но она не имеет отношения к этой проблеме.
    Проблема решилась очень просто. Я плагин тестировал на локальном сервере. Проще говоря на клиенте. Закинул плагин на свой сервак на хосте и все проблемы разом пропали.
    Команды отправляю с клиента. Отлично отрабатывает и чат-команды и команды с консоли.
    В общем проблема решена. Тему можно закрыть. Всем спасибо.
     
    Monomizer нравится это.