Меню для паблик сервера ( N )

TexHoKyKaH

Пользователь
Регистрация
31 Май 2019
Сообщения
50
Симпатии
20
Пол
Мужской
Автор: maFFyoZZyk
Версия: 0.1

Очень простое, удобное меню общего управления для паблик сервера.

Код:
#include <amxmodx>

new g_iMenu;

public plugin_init() {
    register_plugin("Server Menu", "0.1", "maFFyoZZyk");
    register_clcmd("say /menu", "CmdMenu");
    register_clcmd("menu", "CmdMenu");
    register_clcmd("nightvision", "CmdMenu");
}

public plugin_cfg() {
    g_iMenu = menu_create("\yМеню\w Нашего\r Сервера\d", "MenuHandler")
    menu_additem(g_iMenu, "\r[\yОбнулить счет\r]", "1");
    menu_additem(g_iMenu, "\r[\yНоминировать карту\r]", "2");
    menu_additem(g_iMenu, "\r[\yЗаткнуть игрока\r]", "3");
    menu_additem(g_iMenu, "\r[\yГолосование за БАН\r]", "4");
    menu_additem(g_iMenu, "\r[\yКупить админку\r]", "5");
    menu_additem(g_iMenu, "\r[\yКупить випку\r]", "6");
    menu_additem(g_iMenu, "\r[\yТоп 10\r]", "7");
    menu_additem(g_iMenu, "\r[\yAdmin&Vip Онлайн\r]", "8");
    menu_additem(g_iMenu, "\r[\yВип Меню\r]", "9");
    menu_additem(g_iMenu, "\r[\yАдмин Меню\r]", "10");
    
    menu_setprop(g_iMenu, MPROP_NEXTNAME, "Далее");
    menu_setprop(g_iMenu, MPROP_BACKNAME, "Назад");
    menu_setprop(g_iMenu, MPROP_EXITNAME, "Выход");
    menu_setprop(g_iMenu, MPROP_EXIT,MEXIT_ALL);
}

public plugin_end() {
    menu_destroy(g_iMenu);
}

public CmdMenu(id) {
    menu_display(id, g_iMenu);
    return PLUGIN_HANDLED;
}

public MenuHandler(id, menu, item) {
    if (item == MENU_EXIT) {
        return;
    }
        
    new data[6];
    menu_item_getinfo(menu, item, .info = data, .infolen = charsmax(data));
    switch (str_to_num(data)) {
        case 1: client_cmd(id, "say /rs");
        case 2: client_cmd(id, "say /maps");
        case 3: client_cmd(id, "say /mute");
        case 4: client_cmd(id, "say /voteban");
        case 5: client_cmd(id, "say /adminka");
        case 6: client_cmd(id, "say /vipka");
        case 7: client_cmd(id, "say /top10");
        case 8: client_cmd(id, "say /admins");
        case 9: client_cmd(id, "vipmenu");
        case 10:client_cmd(id, "amxmodmenu");
    }
}
 

Вложения

Последнее редактирование:

pavel_a

Пользователь
Регистрация
30 Авг 2017
Сообщения
464
Симпатии
52
Пол
Мужской
Автор: maFFyoZZyk
Версия: 0.1

Очень простое, удобное меню общего управления для паблик сервера.

Код:
#include <amxmodx>

public plugin_init()
{
    register_plugin("Server Menu", "0.1", "maFFyoZZyk")
    register_clcmd("amx_menu", "function_menu", ADMIN_ALL,"")
    register_clcmd("nightvision", "function_menu")
 
}

public function_menu(id)
{
    new menu = menu_create("\yМеню\w Нашего\r Сервера\d", "menu_handler")

    menu_additem(menu,"\r[\yОбнулить счет\r]","1")
    menu_additem(menu,"\r[\yНоминировать карту\r]","2")
    menu_additem(menu,"\r[\yСтатистика\r]","3")
    menu_additem(menu,"\r[\yГолосование за GAG\r]","4")
    menu_additem(menu,"\r[\yГолосование за БАН\r]","5")
    menu_additem(menu,"\r[\yСтатистика за карту\r]","6")
    menu_additem(menu,"\r[\yВаш RANK\r]","7")
    menu_additem(menu,"\r[\yЗаткнуть игрока\r]","8")
    menu_additem(menu,"\r[\yТОп лучших\r]","9")
    menu_additem(menu,"\r[\yКупить Админку\r]","10")
 
    menu_setprop(menu, MPROP_EXITNAME, "Выход")
    menu_setprop(menu, MPROP_EXIT,MEXIT_ALL)
     
    menu_display(id,menu,0)
    return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
            return PLUGIN_HANDLED
    }
     
    new data[6], iName[64], access, callback
    menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
     
    new key = str_to_num(data)
     
    switch(key)
    {
        case 1: client_cmd(id, "say /rs")
        case 2: client_cmd(id, "say /maps")
        case 3: client_cmd(id, "say /rankstats")
        case 4: client_cmd(id, "say /votegag")
        case 5: client_cmd(id, "say /voteban")
        case 6: client_cmd(id, "say /statsme")
        case 7: client_cmd(id, "say /rank")
        case 8: client_cmd(id, "say /mute")
        case 9: client_cmd(id, "say /top10")
        case 10: client_cmd(id, "say /adminka")
    }
    return PLUGIN_HANDLED
}
зачем выкладывать эти менюхи? любой юзер может их сделать сам, для особо трудных придумали menugen.exe и прочие меню генераторы
 

r1nk0

Пользователь
Регистрация
3 Окт 2018
Сообщения
243
Симпатии
53
зачем выкладывать эти менюхи? любой юзер может их сделать сам, для особо трудных придумали menugen.exe и прочие меню генераторы
Ну практика показывает,что не все могут
 

fantom

Разработчик
Регистрация
11 Июн 2017
Сообщения
420
Симпатии
280
Пол
Мужской
TexHoKyKaH, есть утечки. Меню лучше создать один раз и удалить при смене карты. Нет никакой возможности сконфигоровать, хотя в описании указано, что оно общего назначения. Нет мультыланга. client_cmd в редких случаях может быть заблокирован протектором. Нет ограничений по флагам. Исходя из всего этого напрашивается логический аопрос: какой смысл в подобных менюшках, которые созданы под конкретный серв со своим набором функционала и которые состоят из захардкодженых пунков чуть менее чем полностью?
 

TexHoKyKaH

Пользователь
Регистрация
31 Май 2019
Сообщения
50
Симпатии
20
Пол
Мужской
Обновил пост перенесли создание меню целиком в plugin_end
 

ADEPT

Пользователь
Регистрация
2 Июл 2017
Сообщения
114
Симпатии
12
Пол
Мужской
Как установить на m?
 

NordicWarrior

Скриптер
Пользователь
Регистрация
12 Фев 2019
Сообщения
31
Симпатии
5
ADEPT, register_clcmd("chooseteam", "CmdMenu");
 
Сверху Снизу