Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Unreal Menu

, Бесплатный генератор менюшек с секретными функциями
Статус пользователя karaulov
сообщение 19.11.2021, 13:00
Сообщение #1


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Плагин позволяет сделать меню без ковырянии в исходном коде.
Аналог amxmodx менюшки но более простой и с дополнительными возможностями (вызов форвардов с различными параметрами, возможность создавать много много менюшек с кучей пунктов и т.п).

Версия плагина 1.0 (первый релиз)
Обновлено до 1.5

Ограничение 40 менюшек. 64 пункта в меню включая пропуски.
Требуется 10МБ оперативной памяти. (Прожорливая тварь)

Возможности :
* Простота использования, 1 файл = 1 меню. Название файла = команда вызова этого меню.
* Возможно вызывать функции из "чужих плагинов" (forward, пример имеется в архиве с плагином)

Создание меню: (В АРХИВЕ ИМЕЕТСЯ ПРИМЕРЫ)
1. Создать файл в папке addons/amxmodx/configs/unrealmenu, например test_menu.txt (полный путь получится addons/amxmodx/configs/unrealmenu/test_menu.txt)
2. В первой строк файле написать название меню.
3. Далее создать записи следующего вида
Код
Название пункта меню=Команда

например
Код
Написать HP=say /hp

в итоге выйдет
Код
НАЗВАНИЕ МЕНЮ 1
Написать HP=say /hp

4. Таким образом если вы напишите в консоль test_menu то вам откроется менюшка
с названием "НАЗВАНИЕ МЕНЮ 1" и с пунктом "Написать HP", если вы его нажмете то напишите в чат "say /hp".

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



Скачать плагин можно тут

https://github.com/UnrealKaraulov/unreal_menu

Обновление 1.1
* Добавлены примеры
Обновление 1.2
* Блокировка команд
Обновление 1.3
* Поддержка названия меню
Обновление 1.4
* Поддержка флагов доступа
Например добавьте ADMIN_LEVEL_G= в начало строки и пункт меню будет доступен только для ADMIN_LEVEL_G
(см примеры)

Обновление 1.4
*
Регистрирует так же say / команду
Обновление 1.5
*
Возможность добавить пустое место(пример в radio2.txt)
Обновление 1.6
* Возможность вызвать функцию из определенного плагина
* Возможность вызвать функцию по ID (нет примера, но вместо функции можно цифру вставить это будет считаться как ID)
* Возможность включения отладки

Отредактировал: karaulov, - 20.11.2021, 7:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя karaulov
сообщение 19.11.2021, 13:11
Сообщение #2


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

На счёт форвардов, можно применять для обхода отправки client_cmd. Напрямую вызывая функцию из плагинов.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя d3m37r4
сообщение 19.11.2021, 14:10
Сообщение #3


Стаж: 11 лет

Сообщений: 304
Благодарностей: 119
Полезность: 604

Наверное не понадобится 10 мб памяти, если ты научишься использовать возможности яп по назначению, ну или хотя бы ознакомишься поподробнее с документацией, которая с амыксмодом предоставляется. Где-то грустят динамические массивы.

Ах, да, вот еще: https://c-s.net.ua/forum/topic90201.html тут чет как-то попроще всё, и работает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 19.11.2021, 16:09
Сообщение #4


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Ой ну никто не умрет от того что сервер будет пожирать на 10мб памяти больше))

И там нет возможности вызывать функции напрямую из чужих плагинов с параметрами) Я думаю ни в каком меню пока нет такого) А это избавляет от необходимости вызывать client_cmd
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя d3m37r4
сообщение 19.11.2021, 16:16
Сообщение #5


Стаж: 11 лет

Сообщений: 304
Благодарностей: 119
Полезность: 604

Цитата(karaulov @ 19.11.2021, 20:09) *
Ой ну никто не умрет от того что сервер будет пожирать на 10мб памяти больше))

И там нет возможности вызывать функции напрямую из чужих плагинов с параметрами) Я думаю ни в каком меню пока нет такого) А это избавляет от необходимости вызывать client_cmd

Даже если и нет, там сделать открытие меню без форса команды проще, а еще там лимитов на меню нет)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 19.11.2021, 16:50
Сообщение #6


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

d3m37r4, сколько меню надо на сервере больше 40 бывает?) Могу увеличить до 45 если 40 мало)

Отредактировал: karaulov, - 19.11.2021, 16:56
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 19.11.2021, 17:26
Сообщение #7


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

karaulov, Не подскажешь, что будет если я открою меню, ничего не делаю. В это время другой игрок открывает меню и жмет выход. Что будет когда я после этого нажму любой пункт меню?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 19.11.2021, 17:38
Сообщение #8


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Цитата(Mistrick @ 19.11.2021, 18:26) *
karaulov, Не подскажешь, что будет если я открою меню, ничего не делаю. В это время другой игрок открывает меню и жмет выход. Что будет когда я после этого нажму любой пункт меню?

Проверь потом расскажешь) Работает на сервере с 32 онлайном и нет жалоб, сам там играю и мне отлично работает. А что по твоему должно произойти?)))))

Отредактировал: karaulov, - 19.11.2021, 17:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя d3m37r4
сообщение 19.11.2021, 17:59
Сообщение #9


Стаж: 11 лет

Сообщений: 304
Благодарностей: 119
Полезность: 604

Цитата(karaulov @ 19.11.2021, 20:50) *
d3m37r4, сколько меню надо на сервере больше 40 бывает?) Могу увеличить до 45 если 40 мало)

Хочется больше 120

Цитата(karaulov @ 19.11.2021, 21:38) *
Проверь потом расскажешь) Работает на сервере с 32 онлайном и нет жалоб, сам там играю и мне отлично работает. А что по твоему должно произойти?)))))

А сам не знаешь что понаписал?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 19.11.2021, 18:01
Сообщение #10


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

d3m37r4, ну можно и 120 только будет больше памяти жрать, где-то 30мбайт! Да все должно работать хз чё там твой друг выше пишет )))))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 20.11.2021, 6:59
Сообщение #11


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Обновление 1.6
* Возможность вызвать функцию из определенного плагина (пример имеется)
* Возможность вызвать функцию по ID (нет примера, но вместо функции можно цифру вставить это будет считаться как ID)
* Возможность включения отладки

Отредактировал: karaulov, - 20.11.2021, 6:59
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 21.11.2021, 9:43
Сообщение #12


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Небольшую обновку загрузил на гитхаб, версию не поднимал т.к слишком мелкая обнова. Игроки жаловались что кнопки в меню неудобно на 9 закрывать.
* Добавлено выравнивание, теперь закрытие всегда будет на 0

И повторюсь еще на счет функционала из-за которого вам следует подумать над переходом на этот плагин!
Опытные пользователи могут настроить меню так что бы не требовалась отправка client_cmd (а это означает с cl_filterstuffcmd 1 менюшка будет работать)
Остальные плагины с меню не могут себе позволить такой роскоши! )

Примеры есть в папке с менюшками. Но сделать это смогут только те кто разбирается в плагинах.

Отредактировал: karaulov, - 21.11.2021, 9:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 21.11.2021, 9:55
Сообщение #13


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Для тех кто захочет использовать "секретный функционал".

Пример на примере плагина map_manager_rtv.amxx (простите за каламбур)
Другие плагины будут отправлять client_cmd(id,"say /rtv") а это значит что с некоторыми протекторами, а особенно с cl_filterstuffcmd 1 менюшки не будут совместимы
Тогда как в моем плагине можно сделать запись вида:
Голосовать за смену карты=EXECUTE_WITH_ARGS:clcmd_rtv:map_manager_rtv.amxx:INTEGER:CALLERID
Разберем этот пример:
Плагин создает пункт меню "Голосовать за смену карты".
Команда EXECUTE_WITH_ARGS означает что будет вызвана функция с аргументами.
Будет вызвана функция clcmd_rtv
Поиск функции будет вестись в плагине map_manager_rtv.amxx (Название плагина можно не указывать тогда это будет работать как форвард, и вызов произойдет в КАЖДОМ из плагинов)
Если функция найдена, то производится вызов, в аргументы передается число (INTEGER) со значением CALLERID ( игрок нажавший этот пункт )

Отредактировал: karaulov, - 21.11.2021, 10:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 22.11.2021, 5:54
Сообщение #14


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Обновление 1.6.2 : Исправление вызова по ID и названию плагина. И фикс квара.

Отредактировал: karaulov, - 22.11.2021, 5:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: