Авторизация Регистрация Забыли пароль?
Реклама
Статьи
Наш игровой сервер
Наши сервисы
Мониторинг серверов
Информация
Нам интересно знать
Популярные теги
Популярные материалы
    Партнеры
    Счетчики
    Вы находитесь:

    Категория: Статьи

    Создаём меню сервера своими руками

    Автор: UserFound

    Дата: 9 марта 2011

    Просмотров: 7 466

    Комментариев: 61

    Создаём меню сервера своими руками


    В этой статье я раскажу как создать своё меню


    1. Создаём на компе файлик my_menu.sma
    2. Открываем файлик текстовым редактором
    3. Вписываем туда следущие содержимое


    //Подгружаем модуль amx
    #include <amxmodx>

    //Регистрируем авторство и название плангина
    #define PLUGIN "Server Menu"
    #define VERSION "1.0"
    #define AUTHOR "UserFound"


    //Главная функция плангина
    public plugin_init()
    {
    //Присваеваем авторство
        register_plugin(PLUGIN, VERSION, AUTHOR)
    //Присваеваем консольную команду для вызова функции меню на клавишу M    
        register_clcmd("chooseteam", "my_menu")
    //Подгружаем языковый файлик    
        register_dictionary("servermenu.txt")
    }

    //Функция цвета в чате
    stock ChatColor(const id, const input[], any:...)
    {
        new count = 1, players[32]
        static msg[191]
        vformat(msg, 190, input, 3)
        
        replace_all(msg, 190, "!g", "^4") // Green Color
        replace_all(msg, 190, "!y", "^1") // Default Color
        replace_all(msg, 190, "!team", "^3") // Team Color
        replace_all(msg, 190, "!team2", "^0") // Team2 Color
        
        if (id) players[0] = id; else get_players(players, count, "ch")
        {
            for (new i = 0; i < count; i++)
            {
                if (is_user_connected(players[i]))
                {
                    message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                    write_byte(players[i]);
                    write_string(msg);
                    message_end();
                }
            }
        }
    }

    //Функция нашего меню
    public my_menu(id)
    {
        new i_Menu = menu_create("\rМеню сервера:", "server_menu")
    //Пункты меню,номера функций, доступ
        menu_additem(i_Menu, "\wОбнулить счет", "1", 0)
        menu_additem(i_Menu, "\wЗабанить игрока", "2", 0)
        menu_additem(i_Menu, "\wЗаигнорировать игрока", "3", 0)
        menu_additem(i_Menu, "\wAdmins Online", "4", 0)
        menu_additem(i_Menu, "\wСменить команду", "5", 0)
        menu_additem(i_Menu, "\rКупить админку", "6", 0)
        menu_additem(i_Menu, "\wАдмин меню", "7", ADMIN_MENU)
        
        menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL)

        menu_display(id, i_Menu, 0)

        return PLUGIN_HANDLED

    }

    //Функции нашего меню
    public server_menu(id, menu, item)
    {

        if (item == MENU_EXIT)
        {
            menu_destroy(menu)
            
            return PLUGIN_HANDLED
        }

        new s_Data[6], s_Name[64], i_Access, i_Callback

        menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

        new i_Key = str_to_num(s_Data)

       switch(i_Key)
        {
            
    //Значение функций
    case 1:
            {
               client_cmd(id, "say /rs")
               ChatColor(id, "%L",0,"RS")
            }
            case 2:
            {
                client_cmd(id, "say /voteban")
                ChatColor(id, "%L",0,"VOTEBAN")
            }
            case 3:
            {
               client_cmd(id, "say /mute")            
               ChatColor(id, "%L",0,"MUTE")
            }
            case 4:
            {
               client_cmd(id, "say /admin")            
               }
            case 5:
            {
               client_cmd(id, "jointeam")            
               }
            case 6:
            {
               client_cmd(id, "say /adminka")            
               }
            case 7:
            {
               client_cmd(id, "amxmodmenu")
               ChatColor(id, "%L",0,"AMXMODMENU")            
               }
        }

        menu_destroy(menu)
        return PLUGIN_HANDLED

    }


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

    Теперь нам надо создать языковый файл.

    Создаём файл "servermenu.txt" И вставляем в него
    [ru]
    AMXMODMENU = !gДобро пожаловать в Админку
    RS = !gВы обнулили свой счет
    VOTEBAN = !teamВыберите игрока которого нужно !gЗАБАНИТЬ
    MUTE = !teamВыберите игрока которого вы !gне хотете !teamслышать по микрофону


    Далее сохраняем файл обязательно в UTF 8 Без BOM.


    Далее компилируем полученный плангин, можно онлайн компилятором: webcomp.ak-team.com

    Полученный плангин устанавливаем на сервер.
    Файл: "servermenu.txt" Закидываем в "/cstrike/addons/amxmodx/data/lang"


    При возникновении вопросов пишите в ICQ 8853941.
    Похожие публикации
    Комментарии на сайте
    Ho_Huk

    Написал: Ho_Huk 9 марта 2011 22:48 Группа: Юзер
    Спасибо) Давно хотел сделать меню для игроков)))
    Цитировать
    li-valera

    Написал: li-valera 9 марта 2011 23:39 Группа: VIP
    Налетай=))для ЗМ и Детрун и прочих серверов будет в самый раз...
    Цитировать
    Kasper55

    Написал: Kasper55 9 марта 2011 23:56 Группа: Юзер
    классная статья !
    Цитировать
    Bos93

    Написал: Bos93 10 марта 2011 05:33 Группа: Юзер
    Молодец Димка.

    Только

    ChatColor(id, "%L",0,"AMXMODMENU")

    Нельзя одновременно указывать

    id - для одного.
    0 - для всех.

    Как ты себе это представляеш?

    Здесь должно быть:

    ChatColor(id, "%L","AMXMODMENU")

    Я тебе же говорил.

    menu_additem(i_Menu, "\wОбнулить сщет", "1", 0)
    menu_additem(i_Menu, "\wЗабанить игрока", "2", 0)
    menu_additem(i_Menu, "\wЗаигнорировать игрока", "3", 0)
    menu_additem(i_Menu, "\wAdmins Online", "4", 0)
    menu_additem(i_Menu, "\wСменить команду", "5", 0)
    menu_additem(i_Menu, "\rКупить админ+vip [50руб]", "6", 0)
    menu_additem(i_Menu, "\wАдмин меню", "7", ADMIN_MENU)

    Так же эту менюху можно сделать мультиязычной.

    Что-то ты с биндом немного загнул,верно,но можно было сделать отдельным пабликом.

    + При дисконнекте unbind
    Цитировать
    UserFound

    Написал: UserFound 10 марта 2011 06:02 Группа: VIP
    Твой вариант у меня не работает. Мой работает.
    Цитировать
    tucker

    Написал: tucker 10 марта 2011 06:41 Группа: Юзер
    Спасибо, попробую оба варианта.
    Цитировать
    ex3m777

    Написал: ex3m777 10 марта 2011 06:52 Группа: VIP
    https://makeserver.ru/stati/13648-dobavlenie-eshhe-odnogo-punkta-v-menyu-amxmodme
    nu.html
    тоже хорошая статья)
    Цитировать
    Rejiser

    Написал: Rejiser 10 марта 2011 08:57 Группа: Юзер
    сщет?!
    Заигнорировать?
    позорище
    пиздуй в школу
    Цитировать
    eIIT.

    Написал: eIIT. 10 марта 2011 11:09 Группа: Юзер
    норм спс) . Щас буду разбираться))
    ex3m777 это другое) это меню для игроков а не для amxmodmenu-админк
    Цитировать
    UserFound

    Написал: UserFound 10 марта 2011 11:49 Группа: VIP
    Rejiser,
    Это плангин без исходника? Кому надо тот исправит

    И подумай, что важнее для этого дела, знания языка Pawn, или Русского?
    Цитировать
    TzK

    Написал: TzK 10 марта 2011 11:54 Группа: Юзер
    Можно ли создать что это меню выскакивает например, есле напишеш /rules? : )
    Цитировать
    DRAGON95

    Написал: DRAGON95 10 марта 2011 11:57 Группа: Юзер
    Rejiser,+1

    Цитата: UserFound
    И подумай, что важнее для этого дела, знания языка Pawn, или Русского?

    если выкладываешь такие вещи, то можно бы и о грамотности подумать what
    Цитировать
    kpuk666

    Написал: kpuk666 10 марта 2011 11:59 Группа: Юзер
    автор ты молодца
    вот выложили стоящее что то за последнее время, спасибо
    Цитировать
    voronf4

    Написал: voronf4 10 марта 2011 12:18 Группа: Юзер
    Мда давно это всем известно было! Но все равно Молодец)
    Цитировать
    Stefzes

    Написал: Stefzes 10 марта 2011 12:36 Группа: Юзер
    а что значит Далее сохраняем файл обязательно в UTF 8 Без BOW. ?
    Цитировать
    kpuk666

    Написал: kpuk666 10 марта 2011 13:18 Группа: Юзер
    UTF это кодировка файла

    и автор исправь ошибку, не BOW a BOM
    Цитировать
    Букинатор

    Написал: Букинатор 10 марта 2011 13:24 Группа: Юзер
    не компилит плагин!:
    Welcome to the AMX Mod X 1.8.1-300 Compiler.
    Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

    my_menu.sma(112) : warning 217: loose indentation
    my_menu.sma(118) : error 037: invalid string (possibly non-terminated string)
    my_menu.sma(118 -- 119) : warning 215: expression has no effect
    my_menu.sma(150) : warning 217: loose indentation

    1 Error.
    Could not locate output file my_menu.amx (compile failed).


    ОШИБКА: плагин не был скомпилирован, см. выше
    Цитировать
    Bos93

    Написал: Bos93 10 марта 2011 13:33 Группа: Юзер
    Еще при входе на другой сервер буковка "M" не будет пахать (
    Цитировать
    мишаня95

    Написал: мишаня95 10 марта 2011 13:57 Группа: Юзер
    норм темка
    Цитировать
    tucker

    Написал: tucker 10 марта 2011 14:11 Группа: Юзер
    Bos93,
    Это понятно.
    Цитировать
    DarkNill

    Написал: DarkNill 10 марта 2011 15:00 Группа: Юзер
    Какое оживление! Школота скриптингу учится lol
    Цитировать
    xHoLLyWooDx

    Написал: xHoLLyWooDx 10 марта 2011 15:02 Группа: Юзер
    Автору бить морду.
    За бинд m буквы

    Для таких целей используется hook.

    register_clcmd("chooseteam","menu_call"); например

    Подробней hook можно разглядеть в плагине зомби мода
    Цитировать
    tucker

    Написал: tucker 10 марта 2011 15:09 Группа: Юзер
    DarkNill,
    wassat
    Цитировать
    eIIT.

    Написал: eIIT. 10 марта 2011 15:14 Группа: Юзер
    Bos93 tucker можно просто сделать так чтобы не бындить кнопку m. А т.е изменить
    register_clcmd("servermenu", "my_menu")
    на
    register_clcmd("chooseteam", "my_menu")
    и тогда бинд файл не обязательно делать. Меню будет на той клавише на которой забиндена команды перехода команды.

    -----------------------------
    ахахаха чет я написал не обратив внимание на сообщения xHoLLyWooDx ))
    Цитировать
    RAFF93

    Написал: RAFF93 10 марта 2011 15:39 Группа: Юзер
    Ужас.Не удобнее было .sma залить.Что только не намудрят.
    P.S.
    DarkNill,СПБ?Сервер Zm есть?
    Цитировать
    kpuk666

    Написал: kpuk666 10 марта 2011 16:47 Группа: Юзер
    самому сделать сложно? люди для вас стараются, а ВЫ еще указываете, как ему правильно делать.
    Нехорошо
    Цитировать
    DRON VOLGOGRAD

    Написал: DRON VOLGOGRAD 10 марта 2011 20:31 Группа: Юзер
    bind "m" "servermenu"


    Ты Конченный.

    Обнулить сщет


    Всё понятно!
    Цитировать
    xHoLLyWooDx

    Написал: xHoLLyWooDx 10 марта 2011 21:02 Группа: Юзер
    логично бы сделать в игровом меню возможность смены команды, убрав баг на то, что можно выбрать команду и не выбрать скин и висеть в мертвых игроках. wink
    Цитировать
    UserFound

    Написал: UserFound 10 марта 2011 21:02 Группа: VIP
    Вы бы вместо того, чтобы умничить написалибы пару плагинов на сайт, и расписали все, чтобы все поняли.
    Цитировать
    tavot

    Написал: tavot 10 марта 2011 22:07 Группа: Юзер
    UserFound, писали, только после школололо коментов - желания еще что то тут оставлять - нет.

    Благо выставил "дешовки", а не стоящие плагины.
    В преть, буду только в приват и раздавать, от школоты подальше, за неким исключением.
    Цитировать
    Новый комментарий

    Информация

    Посетители, находящиеся в группе lamo, не могут оставлять комментарии к данной публикации.