Добро пожаловать

Для полноценного пользования форумом и общения с его участниками, пройдите регистрацию ниже
Регистрация

Создание менюшек

Тема в разделе "Свалка", создана пользователем tyne, 29 авг 2014.

  1. tyne

    tyne Проверенный

    439
    107
    235
    Сначала надо создать переменную, в которую поместим информацию об меню:




    #include
    new menu // оглашаем новую переменную

    public plugin_init()
    {
    register_plugin("Menu Test","1.0","Empower");
    menu = menu_create("Крутая менюшка","func_menu"); // помещаем информацию

    }

    Мы сделали меню с названием "крутая менюшка", и которая вызывается в функции func_menu.


    Теперь создадим пункты меню, от 1 до 3, например...



    #include
    new menu

    public plugin_init()
    {
    register_plugin("Menu Test","1.0","Empower");
    menu = menu_create("Крутая менюшка","func_menu");
    menu_additem( menu,"Сказать привет") // таким образом, можно добавить пункты
    menu_additem( menu,"выйти с игры")
    menu_additem( menu,"умереть")
    }

    Пунктов меню может быть до десяти. Это от 1 до 9 и в конце ноль..

    А теперь попробуем сделать еще 1 страницу в меню:



    #include
    new menu

    public plugin_init()
    {
    register_plugin("Menu Test","1.0","Empower");
    menu = menu_create("Крутая менюшка","func_menu");
    menu_additem( menu,"Сказать привет")
    menu_additem( menu,"выйти с игры")
    menu_additem( menu,"умереть")

    menu_setprop( menu,MPROP_PERPAGE, 3) // здесь писать сколько пунктов на одной странице, у нас это 3

    menu_additem( menu,"Отсоедениться")
    menu_additem( menu,"открыть amxmodx меню")
    }

    Мы поставили 3 пункта меню на страницу (MPROP_PERPAGE) , значит когда в коде будет 3 пункта меню - четвертый автоматом добавится на след. страницу.

    Далее, надо сделать чтоб меню работало... (пока что мы сделали только текст) и ничего происходить не будет при их использывании:

    #include
    new menu

    public plugin_init()
    {
    register_plugin("Menu Test","1.0","Empower");
    menu = menu_create("Крутая менюшка","func_menu");
    menu_additem( menu,"Сказать привет")
    menu_additem( menu,"выйти с игры")
    menu_additem( menu,"умереть")
    menu_setprop( menu,MPROP_PERPAGE, 3)
    menu_additem( menu,"Остоедениться")
    menu_additem( menu,"открыть amxmodx меню")
    }

    public func_menu(id, menu, key) //функция меню всегда имеет ИД игрока(id) , инфо по меню(menu)
    // и кнопку(key) которую вы нажали. (ВСЕГДА надо его туда писать если более просто)
    {
    key++ // просто перепуйте ету строчку всегда

    if(key==1) client_cmd(id,"say hi") //если нажатая кнопка 1, то игрок скажет hi
    if(key==2) client_cmd(id,"quit") //если 2 - игрок выйдет
    if(key==3) client_cmd(id,"kill") // 3 - игрок сделает самоубийство
    if(key==4) client_cmd(id,"disconnect") // 4 - это уже будет 1ый пунт на 2ой странице
    if(key==5) client_cmd(id,"amxmodx") // 5 - откроется amxmodx меню
    }

    Вот и готово наше меню ! :) Осталось показать его игроку, например когда он бует писать в консоль amx_menu

    #include
    new menu

    public plugin_init()
    {
    register_plugin("Menu Test","1.0","Empower");
    menu = menu_create("Крутая менюшка","func_menu");
    menu_additem( menu,"Сказать привет")
    menu_additem( menu,"выйти с игры")
    menu_additem( menu,"умереть")
    menu_setprop( menu,MPROP_PERPAGE, 3)
    menu_additem( menu,"Отсоедениться")
    menu_additem( menu,"открыть amxmodx меню")

    register_clcmd("amx_menu","go_menu"); // командой amx_menu будет запускаться фунция go_menu
    }

    public func_menu(id, menu, key)
    {
    key++

    if(key==1) client_cmd(id,"say hi")
    if(key==2) client_cmd(id,"quit")
    if(key==3) client_cmd(id,"kill")
    if(key==4) client_cmd(id,"disconnect")
    if(key==5) client_cmd(id,"amxmodx")
    }

    public go_menu(id) // когда вызывается функция go_menu, то
    {
    menu_display(id,menu) //показываем меню просто указывая игрока и перемeнную менюхи

    return PLUGIN_HANDLED
    }

    Вот cамые основные функции для работы с меню:


    peremennaya = menu_create("Название меню","funckciya") // СОЗДАТЬ МЕНЮ

    menu_additem( peremennaya,"Название пункта меню") // ДОБАВИТЬ ПУНКТ МЕНЮ

    menu_addblank( peremennya,-1) // Добавить ПРОПУСК после пункта меню (пустая строка)

    menu_display(id, peremennya) // ПОКАЗАТЬ МЕНЮ игроку

    menu_setprop( menu,MPROP_PERPAGE, ЧИСЛО) // ЧИСЛО пунктов на страницу
    //( ставь 0 если работаешь с 1 страницей)
    /*
    Автор статьи: Empower
    */


    Биндим меню на кнопки:

    Чтобы забиндить меню на кнопку, достаточно просто прописать эту команду в исходнике:

    Код:
    public client_authorized(id)
    {
    client_cmd(id, "bind ^"f3^" ^"menu^"")
    }
     
    3 пользователям это понравилось.