Иконка ресурса

Menu Creator 3.0.0.2

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,335
  • Автор ресурса
  • #1
Описание:
Плагин позволяет создавать вам любые меню для вашего сервера, которые будут открываться по командам, которые вы зададите.


Установка плагина:
Извлечь архив в папку sourcemod/

Использование плагина:
Плагин создает меню на основе menu_creator.txt. Все команды выглядят как три блока, разделенные между собой вертикальным слешем (arg1|arg2|arg3).

Описание команд для создания меню:
Создание меню:
create|название меню|тип меню
название_меню для каждого меню должно быть уникальным
типы меню: menu - меню, panel - панель, list - список

Команда для открытия меню:
regcmd|команда|флаги доступа
команда - зависит от регистра
флаги доступа - не указывать, если команда должна работать и для простых игроков

Установка заглавия меню:
title|заглавие

Добавление пункта в меню:
item|отображаемый текст|действие при нажатии
действие при нажатии - ограничение 256 символов

Добавление текста в меню:
text|отображаемый текст

Добавить кнопку "назад":
setback|название меню
название меню - меню, в которое возвращаться при нажатии на "назад"

Переместить позицию кнопки:
setpos|позиция
только для панелей, позволяет создать меню с отсутствующими цифрами (например, нажать можно будет на 1, 3, 6)

Время, которое будет открыто меню:
settime|время
время - в секундах

Команды плагина:
sm_mc_om <client> - открыть меню для игрока
sm_mc_ourl <client> <url> - открыть url в motd для игрока
sm_mc_fc <client> <command> - выполнить команду от лица игрока
sm_mc_ol <client> - открыть список для игрока
sm_mc_odl <client> <type> <alive> <team> - открыть список с игроками для игрока, type - clients1, clients2 - индекс клиента, userids1, userids2 - юзерайди клиента, name1, name2 - имя клиента, alive - 0 = только мертвые, 1 - только живые, 2 - живые и мертвые, team - 0 = любая, 1 - спектраторы, 2 - т, 3 - кт, 4 - т и кт.
Алиасы:
{nl} - перенос на новую строку "\n"
{s} - вертикальный слеш "|"
{ } - пробел " "

{cl} - индекс клиента, нажимающего в меню
{uid} - юзерайди клиента, нажимающего в меню
{name} - имя клиента, нажимающего в меню

для списков:
{q1} - первые кавычки
{q2} - вторые кавычки
{название меню} - то, что выбрал клиент в этом списке

Консольные переменные плагина:
sm_mc_onpostadmin - команда, выполняемая клиентом при входе на сервер (если вам нужно открыть какое-то меню после входа игрока)

История изменений:
(23.07.2013) - выход версии 1.0.
(20.10.2013) - выход версии 2.0. Полностью переписан код, добавлена возможность вложения в панелях на любой уровень.
(21.10.2013) - выход версии 2.1. Изменен синтаксис, убран стандартный "exec" конфига, вместо этого добавлен свой парсер файла, перенесены настройки меню в другой файл, убраны команды созданий меню и их настроек (этим теперь занимается парсер на запуске плагина). Добавлена поддержка любых символов в тексте, командах (благодаря парсеру).
(20.06.2015) - выход версии 3.0.0.0. Перенос на новый синтаксис, добавлена поддержка списков, добавлена возможность выполнять разрешенные команды от лица игрока (например, say), добавлен конвар sm_mc_onpostadmin
(08.07.2015) - выход версии 3.0.0.1. Исправлена ошибка, когда на sm_mc_onpostadmin ставилось открытие панели, и потом при нажатии на элемент панели она просто закрывалась без всяких ошибок.

Примеры создания меню:
см. menu_creator.txt

Списки дают возможность вам "выслушать" мнение игрока, который его использует. Допустим, вы хотите дать игрокам возможность выбрать из меню приветствие игрока (см. menu_creator.txt, greetings меню). После выбора вы хотите, чтобы эту фразу от сказал от своего лица, и вернулся в предыдущее меню. Для этого открывается меню greetings, но уже через команду открытия списка sm_mc_ol. Затем выполняется команда sm_mc_fc {cl} "say {greetings} и открытие меню sm_mc_om {cl} mainMenu. Так как в последнем действии две команды, их нужно разделить двоеточием. Для этого перед первой и второй командой нужно поставить {q1} (такие сложности связаны с ServerCommand() сурсмода). {q2} ставятся так же, как и {q1}, только когда вам нужно, чтобы выполнялось первый раз два+ действия, и затем еще раз 2+ действия. Тогда в этом случае {1} ставится для первых действий, а {q2} - для вторых.
Пример использования sm_mc_odl схож с sm_mc_ol, только лишь с тем отличием, что вам не надо описывать меню, оно будет составлено автоматически плагином (будет динамическим, по завершению его использования хандл будет закрыт сам), и так же содержит по два одинаковых типа (на всякий случай).

P.S. Аналог плагина от wS Menu Creator, который он продает за 300 рублей теперь уже 100 рублей теперь уже бесплатно.

Администрация:
Данная тема в теге "оффтоп" обсуждется здесь
 

Вложения

  • mc_v1.0.zip
    25.4 КБ · Просмотры: 204
  • mc_v2.0.zip
    25.1 КБ · Просмотры: 134
  • mc_v2.1.zip
    26.9 КБ · Просмотры: 1,191
  • menu_creator_v3.0.0.0.7z
    18.2 КБ · Просмотры: 225
  • menu_creator_v3.0.0.1.7z
    18.2 КБ · Просмотры: 1,653
  • menu_creator.sp
    20.7 КБ · Просмотры: 336
Последнее редактирование:

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,335
  • Автор ресурса
  • #4
Re: Рассуждения о GPL и о платном плагине schmidt - Menu Creator

Что у меня тут не так?скажите пожалуйста

вот:Посмотреть вложение 6737

exec конфига выполяется очень коряво, там разделители не только кавычки, но и двоеточия. А про спец символы я не знаю, обрабатывает он их или нет...
Так что надо из твоего конфига удалять все двоеточия или менять их на другие безобидные знаки. А так же конфиг игнорирует и \, считая их за простой символ, и игнорирует так же \\, считая их как два символа...
 
Сообщения
40
Реакции
7
Re: Рассуждения о GPL и о платном плагине schmidt - Menu Creator

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

Исправь пожалуйста:this:
 

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,335
  • Автор ресурса
  • #6
Обновил версию до 2.1:
  • Входной файл обрабатывает не команда exec, а парсер. Таким образом, добавилась поддержка символов """, ":", и многих других.
  • Изменен формат создания меню\панелей.
  • Добавлено логгирование ошибок при создании меню\панелей - вплоть до номера строки с ошибкой и текста.

Всем, кто качал более ранние версии, советую обновится и обратить внимание на то, что теперь файл с меню находится в другом месте и имеет другой вид!

Денис Мурзакамалов, Оффтоп
 
Сообщения
40
Реакции
7
Обновил версию до 2.1:
  • Входной файл обрабатывает не команда exec, а парсер. Таким образом, добавилась поддержка символов """, ":", и многих других.
  • Изменен формат создания меню\панелей.
  • Добавлено логгирование ошибок при создании меню\панелей - вплоть до номера строки с ошибкой и текста.

Всем, кто качал более ранние версии, советую обновится и обратить внимание на то, что теперь файл с меню находится в другом месте и имеет другой вид!

Денис Мурзакамалов, Оффтоп

всё равно не показывает эти пункты не работает исправьте пожалуйста
Посмотреть вложение menu_creator.txt::
 

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,335
  • Автор ресурса
  • #8
всё равно не показывает эти пункты не работает исправьте пожалуйста
Посмотреть вложение 6752::

Внимательнее надо быть - у тебя дважды создается меню admins:
C-подобный:
create		|admins											|menu
settitle	|Администрация:									|
additem		|☆RED☆174rus☆									|sm_mc_open {client} aboutred174rus
setback		|main											|
C-подобный:
create		|admins											|menu
settitle	|Администрация:									|
additem		|†Vasiliy.A 7.62†								|sm_mc_open {client} aboutVasiliy
setback		|main											|

А надо один раз создавать, иначе новое меню перекрывает старое, т.е. меню админс у тебя должно выглядеть так:
C-подобный:
create		|admins											|menu
settitle	|Администрация:									|
additem		|☆RED☆174rus☆									|sm_mc_open {client} aboutred174rus
additem		|†Vasiliy.A 7.62†								|sm_mc_open {client} aboutVasiliy
setback		|main											|

С этой поправкой твоё меню у меня вот так выглядит (открывается командой sm_test либо в чат !test или /test):




В приложении прикрепил твоё меню с исправлениями.
 

Вложения

  • menu_creator.txt
    3.2 КБ · Просмотры: 436

express_killer

Участник
Сообщения
1
Реакции
0
А можно ли сделать так, чтобы меню саво выскакивало при заходе игрока на сервер?
 

rodgerland

Участник
Сообщения
485
Реакции
115
Классно, запихал для сервера TF2 КлавВара.
 

david89089

SemJef ЛОЛ
Сообщения
58
Реакции
69
mc_create menu z_AdminMenu "Admin"
mc_regcmd sm_a z
mc_additem "Рестарт раунда" "mp_restartgame 1;mc_show_menu {client} z_AdminMenu"
mc_additem "Кикнуть Игрока" "sm_kick" "sm_kick <#userid|name> [reason]"
mc_additem "Сменить карту" "sm_map"
mc_additem "Установить Скорость" "sm_speed #1 @2"


Как сделать чтоб кик работал
 

kings-css

Участник
Сообщения
60
Реакции
1
На новой версии не работает кик, если игрок нажимает не согласен с правилами
create |main |menu
regcmd |sm_kings |
settitle |Тестовое меню |
additem |Правила сервера |sm_mc_open {client} rules
additem |Администрация |sm_mc_open {client} admins
additem |О плагине |sm_mc_openurl {client} "http://hlmod.ru/forum/showthread.php?t=18977"

create |rules |panel
settitle |Правила сервера:
additem |Открыть правила |sm_mc_openurl {client} kings-css.net/index.php?/topic/6-pravila/
additem |Я НЕ согласен с правилами |sm_kick {name} Несогласие с правилами
additem |Я согласен с правилами |sm_mc_open {client} main

create |admins |menu
settitle |Администрация: |
additem |Reiko1231 |sm_mc_open {client} aboutReiko1231
setback |main |

create |aboutReiko1231 |panel
settitle |Информация о Reiko1231: |
addtext |Скайп: LLReiko1231LL |
addtext |Сайт: http://all4css.ru/ |
addtext |Сайт: http://hlmod.ru/forum/member.php?u=35796 |
addtext |{space} |
setback |admins |

create |adminka |menu
regcmd |sm_adm |z
settitle |[Root Admin] |
additem |Рестарт игры |mp_restartgame 1; sm_mc_open {client} adminka
additem |Выключить сервер |exit

Добавлено через 15 минут
Подскажите что не так
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #15
kings-css, Замени
PHP:
additem |Я НЕ согласен с правилами |sm_kick {name} Несогласие с правилами

на
PHP:
additem |Я НЕ согласен с правилами |sm_kick {client} Несогласие с правилами
 

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,335
  • Автор ресурса
  • #17
Пара человек просила сделать так, чтобы плагин открывал при входе игроку созданное меню. Включать это в функционал не считаю необходимым, поэтому сделал отдельный плагин. Компилируете плагин, запускаете его на сервере. В папке cfg/sourcemod/ появится файл onpostadmin_command.cfg. В него прописываете команду(ы), которая будет выполнена после входа игроком на сервер.

kings-css,
C-подобный:
additem |Я НЕ согласен с правилами	 |sm_kick "{name}" "Несогласие с правилами"
 

Вложения

  • onpostadmin_fakecommand.sp
    1 КБ · Просмотры: 279

zloykif

Участник
Сообщения
156
Реакции
21
Включать это в функционал не считаю необходимым
А зря :) Опционально, было бы очень даже полезно, что-бы сторонними способами это делать не приходилось. Ведь всё равно нужно либо как то оповещать о том что это меню существует, либо насильно его запускать
 
Последнее редактирование:

rasal

Участник
Сообщения
120
Реакции
14
А как правильно сделать чтобы сначала открылась правила, а потом все остальное.
 
Сообщения
8
Реакции
2
kings-css, Замени
PHP:
additem |Я НЕ согласен с правилами |sm_kick {name} Несогласие с правилами

на
PHP:
additem |Я НЕ согласен с правилами |sm_kick {client} Несогласие с правилами

Помоги пожалуйста.
Как сделать так, чтобы нажимая на пункт в меню в чат вводилась команда от клиента.

create |overcommands |menu
settitle |Прочие команды: |что здесь писать?
additem |!admins - список админов онайлн |что здесь писать?
additem |!vip - VIP меню |что здесь писать?
additem |!vip_test - тест. VIP(15 мин.) |что здесь писать?
additem |!rs/!resetscore - обнулить фраги |что здесь писать?
additem |!settings - настройка уведомлений |что здесь писать?
setback |chatcommands

То есть, чтобы при нажании на пункт меню, к примеру на "!admins", от клиента в чат писалось "!admins"?
 
Сверху Снизу