V3ct0r 2,145 Report post Posted December 13, 2021 Загрузчик модов для сервера и клиента (PKOdev.NET mod loader) Проблема Многим разработчикам и администраторам серверов Пиратии в нашем сообществе известно, что функциональность клиента и сервера можно изменять так называемыми модами (аддонами, плагинами, дополнениями, патчами). Например:1) Исправление SQL-инъекций в AccountServer.exe и GroupServer.exe;2) Увеличение лимитов для .txt/.bin файлов (ItemInfo, CharacterInfo, SkillInfo и других);3) Обработка сообщений в канал местного чата с помощью lua функции HandleChat();4) Трансформация персонажей с помощью lua функции TransformCha();5) Панель наложенных на персонажа эффектов;6) Отображение уровня ЖЗ и МН под персонажами и монстрами. Таким образом, с помощью модов можно исправлять критические баги и уязвимости, изменять настройки, добавлять новый функционал и возможности. Изначально появление модов было вызвано отсутствием в открытом доступе исходных кодов клиента и сервера: разработчикам ничего не оставалось, кроме того, как редактировать исполняемые .exe файлы, развивая и применяя навыки реверс-инжиниринга. После публикации "исходников" популярность модов по-прежнему остается на высоком уровне. Этому способствует ряд причин:1) Низкое качество полученных исходных кодов, отсутствие опыта их использования. Чтобы ими пользоваться, администратору нужно обладать широкими знаниями языка программирования C++, разбираться в клиент-серверной архитектуре, понимать как устроен сервер и клиент. Кроме того, исходные коды требуют длительного изучения и исследования на предмет багов и уязвимостей, включая процесс тестирования;2) Существующие официальные сборки сервера и клиента в полной мере удовлетворяют требованиям большинства администраторов и игроков, кроме того, их работоспособность и надежность подтверждена годами практического применения. Для них было создано множество программ, скриптов и модов, которые могут быть несовместимы с исполняемыми файлами сервера и клиента, собранными из исходных кодов;3) Изучение исходных кодов позволяет лучше понять устройство исполняемых файлов сервера и клиента Пиратии. Такие полученные знания делают возможным создавать моды повышенной сложности. Администраторы и разработчики при реализации своих игровых проектов могут пойти по двум путям: использовать старые, официальные сборки сервера и клиента, и изменять их функционал с помощью модов, либо развиваться в направлении разработки исходных кодов. Как уже должно быть понятно, данная тема поддерживает первый путь. В настоящий момент разработка модов связана с некоторыми проблемами:1) В нашем сообществе отсутствует четкий стандарт и культура написания модов. Кто-то внедряет код непосредственно в исполняемый .exe файл методом "патчинга", другие предпочитают писать DLL-библиотеки. Некоторые моды могут конфликтовать друг с другом, что приводит к ошибкам и трудноуловимым багам;2) Как следствие, установка модов сопряжена с определенными трудностями: например, как перенести мод из одного GameServer.exe в другой? Каждый раз необходимо заниматься редактированием ("патчингом") исполняемых .exe файлов, а для этого нужно обладать специальными знаниями и навыками. Если моды выполнены в виде DLL-библиотек, то каждый мод необходимо вручную вносить в таблицу импорта исполняемого .exe файла. Все это неудобно, отнимает много времени и создает вероятность совершения ошибок в процессе установки и появления багов; 3) Существует некоторое множество версий GameServer.exe и Game.exe (остальные серверные исполняемые .exe файлы не принимаем во внимание), которые имеют различную двоичную структуру. Иными словами, разработанный мод для GameServer.exe версии 1.36 не будет работать с GameServer.exe версии 1.38 – Вам необходимо разрабатывать мод под конкретный .exe файл. Вследствие этого возникает путаница с версиями исполняемых файлов. Яркий пример – адреса лимитов для .txt/.bin: думаю, многие заметили что они разные для разных .exe. Исходя из вышесказанного, было принято решение создать систему, которая исправит текущее положение вещей в отношении модов и упростит их использование – Загрузчик модов для клиента и сервера. Загрузчик модов Загрузчик модов выполняет несколько задач: 1) Унификация процесса создания, установки и запуска модов;2) Определение типа и версии исполняемого .exe файла, который подлежит модификации;3) Поиск установленных модов, определение их версии и совместимости с целевым исполняемым .exe файлом, подключение модов к исполняемому .exe файлу клиента или сервера. Представляет собой DLL-библиотеку, которая единоразово подключается к исполняемому .exe файлу клиента или сервера . Моды так же являются DLL-библиотеками, которые помещаются в определенную директорию и автоматически запускаются загрузчиком при запуске клиента или сервера. Перед запуском исполняемого .exe файла клиента или сервера управление передается загрузчику. Загрузчик определяет тип и версию .exe файла, к которому он привязан, и начинает процесс поиска DLL-библиотек в директории "mods" из корневой папки клиента/сервера. Текущая найденная DLL-библиотека динамически подключается к процессу клиента/сервера, после чего загрузчик запрашивает у библиотеки информацию о моде: название мода, тип и версия целевого .exe файла, версия мода, имя автора модификации. Если тип и версия .exe файла с загрузчиком совпадает с типом и версией .exe файла, полученными из DLL-библиотеки мода, то загрузчик дает моду команду на запуск. Далее мод вносит изменения в код процесса исполняемого файла, тем самым осуществляя модификацию. Перед завершением процесса клиента/сервера управление снова передается загрузчику, который по очереди отключает от процесса все моды. Текущая версия загрузчика может работать с официальными 1.3x версиями Game.exe (клиент) и GameServer.exe (сервер). Определение типа исполняемого файла (GameServer.exe или Game.exe) и его версии производится по метке времени компиляции (linker timestamp), которая записана в COFF-заголовке каждого исполняемого файла. Поддерживаемые Game.exe и GameServer.exe ---------------------+----+----------------+-------------- Название | ID | Обозначение | Метка времени ---------------------+----+----------------+-------------- GameServer.exe 1.36 | 1 | GAMESERVER_136 | 1204708785 ---------------------+----+----------------+-------------- GameServer.exe 1.38 | 2 | GAMESERVER_138 | 1204708785 ---------------------+---+----------------+-------------- Game.exe | 3 | GAME_13X_0 | 1222073761 ---------------------+----+----------------+-------------- Game.exe | 4 | GAME_13X_1 | 1243412597 ---------------------+----+----------------+-------------- Game.exe | 5 | GAME_13X_2 | 1252912474 ---------------------+----+----------------+-------------- Game.exe | 6 | GAME_13X_3 | 1244511158 ---------------------+----+----------------+-------------- Game.exe | 7 | GAME_13X_4 | 1585009030 ---------------------+----+----------------+-------------- Game.exe | 8 | GAME_13X_5 | 1207214236 ---------------------+----+----------------+-------------- GateServer.exe 1.38 | 101| GATESERVER_138 | 1224838480 ---------------------+----+----------------+-------------- Установка загрузчика модов 1) В корневой директории исполняемого .exe файла, к которому подключается загрузчик модов, создайте папку с названием "mods"*. В этой папке будут храниться DLL-библиотеки модов;2) Откройте исполняемый .exe файл в программе CFF Explorer. Перейдите на вкладку "Import adder" (1);3) Нажмите кнопку "Add" (2) и выберите файл pkodev.mod.loader.dll;4) В списке "Exported functions" выберите "ExportedFunction" (3);5) Нажмите кнопку "Import By Name" (4);6) Снимите флажок "Rebuild OFTs" (5);7) Нажмите кнопку "Rebuild Import Table" (6);8 ) Сохраните файл (7).9) Запустите исполняемый .exe файл. В окне консоли вы должны увидеть следующее сообщение: [pkodev.mod.loader] ----------------------------------------------- [pkodev.mod.loader] PKOdev.NET mod loader ver. 1.0 by V3ct0r [pkodev.mod.loader] ----------------------------------------------- Если у исполняемого файла нет окна консоли, например, у Game.exe, то запустите его следующим образом: system\Game.exe startgame > output.txt Теперь вывод в консоль будет перенаправлен в текстовый файл output.txt. * Примечание: для Game.exe папка "mods" должна находиться в корневой директории игрового клиента, а не в папке system. Установка модов Чтобы установить мод достаточно поместить его DLL-библиотеку в папку "mods". Для удобства каждый мод можно помещать в отдельную папку. Пример структуры папок для GameServer.exe: GameServer | -> Mods | -> .disabled | -> .priority | -> pkodev.mod.example1.server.138.dll | -> pkodev.mod.example2 | -> pkodev.mod.example2.server.138.dll | -> pkodev.mod.example3 | -> pkodev.mod.example3.server.138.dll После запуска исполняемого .exe файла Вы должны увидеть новый мод в списке загруженных модов: Удаление модов Чтобы удалить мод, необходимо удалить его DLL-библиотеку из папки "mods". Временное отключение модов Чтобы отменить загрузку тех или иных модов, создайте в корневой директории с модами (папка "mods") файл ".disabled" и запишите в него названия модов, которые необходимо временно отключить, с новой строки. Например: // Файл: mods\.disabled // Запишите ниже названия модов, которые необходимо отключить pkodev.mod.fullmap pkodev.mod.tablelimit Таким образом, моды "pkodev.mod.fullmap" и "pkodev.mod.tablelimit" будут проигнорированы загрузчиком. Приоритет загрузки модов Загрузчик модов позволяет загружать те или иные моды в указанном порядке. Для этого создайте в корневой директории с модами (папка "mods") файл ".priority" и запишите в него названия модов в порядке убывания приоритета. Моды, не записанные в данном файле, будут загружены после модов с приоритетом, в случайном порядке. Например: // Файл mods\.priority // Запишите ниже названия модов в порядке убывания приоритета загрузки pkodev.mod.power pkodev.mod.tablelimit pkodev.mod.fullmap Моды будут загружены в следующем порядке: 1. pkodev.mod.power; 2. pkodev.mod.tablelimit; 3. pkodev.mod.fullmap; 4. Далее - все остальные обнаруженные в папке "mods" моды в случайном порядке. Создание мода Для того, чтобы мод мог быть загружен загрузчиком, он должен соответствовать следующим требованиям:1) Название DLL-библиотеки мода должно быть вида: pkodev.mod.<название мода>.<client или server>.<обозначение версии.exe >.dll Например: pkodev.mod.tablelimit.client.13x_0.dll pkodev.mod.mobspawn.server.138.dll 2) DLL-библиотека мода должна экспортировать 3 функции: __declspec(dllexport) void __cdecl GetModInformation(mod_info& info) Заполнить структуру типа mod_info. Данная структура содержит основную информацию о моде: название, версию, имя автора, ID типа и версии исполняемого .exe файла, для которого предназначен мод. // Mod information structure struct mod_info { // Название мода char name[128]; // Версия мода char version[64]; // Имя автора char author[64]; // Тип и версия целевого .exe файла (см. таблицу) unsigned int exe_version; }; __declspec(dllexport) void __cdecl Start(const char* path) Запустить мод и произвести модификацию процесса исполняемого файла. В переменной path содержится путь до корневой директории мода. В данной функции мод должен выполнить свою инициализацию, загрузить необходимые настройки и произвести модификацию процесса исполняемого файла. __declspec(dllexport) void __cdecl Stop() Остановить мод. В данной функции мод должен сохранить свои настройки, откатить модификацию процесса (необязательно) и освободить ресурсы. 3) Тип и версия исполняемого файла, указанная в DLL-библиотеке мода (структура modinfo, поле exe_version), должны совпадать с типом и версией исполняемого файла, для которого он предназначен. Если загрузчик определил тип и версию исполняемого файла как GameServer.exe 1.38 (GAMESERVER_138) с ID 2 (см. таблицу выше), то DLL-библиотека мода должна записывать в поле exe_version значение 2. Пример разработки мода Для разработки мода можно использовать любой язык программирования, который поддерживает создание DLL-библиотек. Я буду использовать язык C++ и среду разработки Visual Studio 2019 Community. В качестве примера создадим мод для GameServer.exe версии 1.38 (ID 2), который будет выводить в его окно сообщение "Hello world!". 1) Определим название мода, пусть оно будет: pkodev.mod.helloworld Тогда название DLL-библиотеки мода будет: pkodev.mod.helloworld.server.138.dll 2) Создадим проект динамически подключаемой библиотеки .DLL;3) Подключаем к проекту файл loader.h (см. вложения в конце данного сообщения);4) Реализуем функцию GetModInformation(): void GetModInformation(mod_info& info) { strcpy_s(info.name, "pkodev.mod.helloworld"); strcpy_s(info.version, "1.0"); strcpy_s(info.author, "V3ct0r"); info.exe_version = GAMESERVER_138; } 5) Реализуем функцию Start(): void Start(const char* path) { std::cout << "Hello world!" << std::endl; std::cout << "path = " << path << std::endl << std::endl; } 6) Реализуем функцию Stop(): void Stop() { } 7) Скомпилируем проект. В результате мы получим файл pkodev.mod.helloworld.server.138.dll;8 ) Устанавливаем и тестируем мод. В окне GameServer.exe мы должны увидеть сообщение "Hello world!" и путь до корневой директории мода: Проект примера мода можно найти во вложении. Скачать 1) Загрузчик модов; 2) Исходный код загрузчика модов для Visual Studio 2019 Community (C++); 3) Интерфейс для создания модов (файл loader.h); 4) Проект примера мода "Hello world!" для Visual Studio 2019 Community (C++); 5) Образцы исполняемых файлов клиента и сервера из таблицы (7.3 Мб); 6) Шаблон проекта мода PKOdev.NET loader для Visual Studio 2019 Community (C++). Доступные моды 1) Подключение Game.exe к Stall Server (сервер "оффлайн" ларьков); 2) Исправление мгновенного возрождения убитых монстров после перезапуска сервера; 3) Редактирование лимитов .txt таблиц; 4) Система рейтинга игроков; 5) Система ежедневных наград за вход в игру; 6) Отображение времени отката ("кулдауна") умений; 7) Отображение координат под NPC; 8 ) Автоматическое подключение к серверу / вход в игру; 9) Социальные кнопки (Discord, Youtube, Twitch и др.); 10) Медали (ожерелья) со званиями; 11) Отображение уровня персонажа игрока рядом с его именем; 12) Отображение дополнительных параметров на форме с характеристиками персонажа (frmState); 13) Время сервера; 14) Антибот; 15) Отображение уровня предметов на иконках ("умные иконки"); 16) Отображение названия предмета в аппарели; 17) Изменение размера персонажей; 18) Отображение времени отклика ("пинг") на форме выбора сервера; 19) Система контрактов; 20) Отключение проверки пароля при входе во внутриигровой Интернет-магазин; 21) Отключение сообщений об ошибках при компиляции .txt-таблиц (table_bin); 22) Очистка чатов; 23) Исправление сброса профессии персонажей при переподключении к серверу ("слёт профессии"); 24) Цветные GM-сообщения (GM notice); 25) 60 кадров в секунду (60 FPS); 26) Эффект полета для крыльев; 27) Полная карта местности для региона; 28) Выделение друзей и врагов цветом. (Обновлено 18.02.2022) Если у Вас есть какие-либо вопросы или возникли проблемы, то смело спрашивайте в данной теме! 2 2 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted December 15, 2021 Добавил образцы исполняемых файлов сервера и клиента, приведенные в таблице, для разработчиков модов. Скачать (7.3 Мб) 1 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
Fomin 55 Report post Posted January 18, 2022 (edited) @V3ct0r, спасибо за проделанную работу! Многие годы мы вместе с разработчиками стремились к такому единому и очень удобному плагину. Прям большой респект! Наши пожелания к дальнейшему развитию темы: 1. Кнопка в данной теме "донат автору". 2. Мод, который поможет редактировать вшитые стоимости в Game.exe. К примеру: ковки, комбинирования и прочего. Стоимость отображается у НПС в диалоговых окнах. Адреса прилагаю (возможны неточности, зависит от Game.exe). Вковать: 0006A301 Улучшить: 00071A5C Комбинировать: 000719FA Продырявить: 0006A36A Плавка: 00069A75 Вставить в аппарель: 00071A2C Вытащить гем: ? 3. Вызов со стороны сервера стрелки пути под персонажем на нужные координаты. В идеале - авто-путь. 4. Цветные ники персонажей. 5. Цветные GM сообщения (с возможностью выбрать цвет). UP 24.01.2022: - Эффект полета крыльям по ID предмета. - Сохранять КД на панели навыков при перемещении между локациями (мб записывать массив КД в файл на стороне клиента?). На нашем проекте многое из перечисленного есть, но я думаю многим это будет полезно и упростит разработку. Edited January 24, 2022 by Fomin 1 1 Quote Share this post Link to post Share on other sites
Graf 217 Report post Posted January 20, 2022 (edited) Соглашусь с вышесказанным!) Мои пожелания к дальнейшему развитию темы: 1. Мод, который уберет MessageBox в компиляции txt --> bin; 2. Иконки гильдий; 3. Иконки рядом с ником; 4. Изменение цвета любых позиций предмета(атака/самоцветы/защита...); 5. Изменение цвета фона информации о предмете(если навести на предмет, будет голубая рамка и полу-прозрачный фон).. Игра с прозрачностью и цветом рамки;(кастомизация всегда классно); 6. Панель эффектов. И список от знакомого разработчика: 7. IGS внутри GameServer + покупка в IGS за репутацию; 8. Ездовые питомцы; 9. Аппарели не привязанные к вещам; 10. Расширение банка и временного мешка; 11. Расширение инвентаря до 100 или более ячеек; 12. Добавление новых ячеек LOOK - фея/крылья/корабль...; 13. Карта местности для всех карт; 14. Фикс мобов на мини-карте в хаосе(как пример), когда при 2+ открытии на мини карте видно красные точки; 15. Гибкая настройка чата "типо при инициализации ГСа будет назначаться цена за сообщение в конфиге ГСа эта штука есть но не работает, насколько я помню" Edited January 20, 2022 by Graf 1 1 Quote Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted January 20, 2022 Привет @Fomin и @Graf! Благодарю вас за ваши отзывы и внимание к теме! По мере своих возможностей, я постараюсь реализовать ваши идеи касательно новых модов. Единственное мое пожелание - это чтобы вы подробнее их описали. Я с вами свяжусь, если у меня возникнут вопросы, либо, при желании, можете развернуто написать здесь. 2 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
small666 28 Report post Posted February 13, 2022 (edited) Привет Всем. Как Вам такая идея мода за мат в чате отправлять игрока в тюрьму тем самым реализуем большее применение данной локации и дисциплина в игре И вот еще идея можно сделать похожий мод на Редактирование лимитов .txt таблиц; только на аппы чтобы можно было устанавливать большее кол-во без ХЕКС-редактора Edited February 14, 2022 by small666 1 Quote Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted February 15, 2022 Привет, @small666 1) Идея интересная, но определение наличия мата в сообщениях достаточно нетривиальная задача; 2) Можно будет сделать такой мод, тем более у нас есть гайд по этой теме: Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
champ 168 Report post Posted February 15, 2022 2 hours ago, V3ct0r said: Привет, @small666 1) Идея интересная, но определение наличия мата в сообщениях достаточно нетривиальная задача; 2) Можно будет сделать такой мод, тем более у нас есть гайд по этой теме: А нельзя добавить перехватчик на луа с плюсов, когда сообщения закрываются звёздачками? По-моему, не должно быть так сложно, но я уже не помню как это всё устроено на сервере, поэтому могу быть не прав. Quote Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted February 16, 2022 22 hours ago, patrick13 said: А нельзя добавить перехватчик на луа с плюсов, когда сообщения закрываются звёздачками? По-моему, не должно быть так сложно, но я уже не помню как это всё устроено на сервере, поэтому могу быть не прав. Я больше про выделение матных слов из сообщений от игроков. Нужно составить достаточно большой словарь таких слов. Далее, человек может использовать мат завуалированно, в виде различных склонений, либо разбавлять матные слова разными символами, чтобы запутать "антимат". С технической точки зрения я представляю себе это как мод для клиента под GM-аккаунтом, либо даже в виде отдельной программы (бота), который будет получать пакеты с сообщениями в каналы чата и сканировать их на мат. Персонаж под такой модификацией будет находиться на локации "Тюрьма". При наличии мата в сообщении, мод отправляет на сервер GM-команду &call <Имя игрока>, тем самым телепортируя его к себе в тюрьму. При необходимости "антимат" меняет свое положение с помощью команды &move <x,> <y>, <карта>. Соответствующие наработки имеются. Таким образом мы покрываем все основные каналы чата. 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
champ 168 Report post Posted February 16, 2022 2 hours ago, V3ct0r said: Я больше про выделение матных слов из сообщений от игроков. Нужно составить достаточно большой словарь таких слов. Далее, человек может использовать мат завуалированно, в виде различных склонений, либо разбавлять матные слова разными символами, чтобы запутать "антимат". С технической точки зрения я представляю себе это как мод для клиента под GM-аккаунтом, либо даже в виде отдельной программы (бота), который будет получать пакеты с сообщениями в каналы чата и сканировать их на мат. Персонаж под такой модификацией будет находиться на локации "Тюрьма". При наличии мата в сообщении, мод отправляет на сервер GM-команду &call <Имя игрока>, тем самым телепортируя его к себе в тюрьму. При необходимости "антимат" меняет свое положение с помощью команды &move <x,> <y>, <карта>. Соответствующие наработки имеются. Таким образом мы покрываем все основные каналы чата. Понял, звучит интересно! Quote Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted February 16, 2022 (edited) 5 часов назад, V3ct0r сказал: Я больше про выделение матных слов из сообщений от игроков. Нужно составить достаточно большой словарь таких слов. Далее, человек может использовать мат завуалированно, в виде различных склонений, либо разбавлять матные слова разными символами, чтобы запутать "антимат". С технической точки зрения я представляю себе это как мод для клиента под GM-аккаунтом, либо даже в виде отдельной программы (бота), который будет получать пакеты с сообщениями в каналы чата и сканировать их на мат. Персонаж под такой модификацией будет находиться на локации "Тюрьма". При наличии мата в сообщении, мод отправляет на сервер GM-команду &call <Имя игрока>, тем самым телепортируя его к себе в тюрьму. При необходимости "антимат" меняет свое положение с помощью команды &move <x,> <y>, <карта>. Соответствующие наработки имеются. Таким образом мы покрываем все основные каналы чата. Возможно без использования тюрем и различного рода лишений игроков, которые на эмоциях пишут различные плохие вещи, можно реализовать черный список и каждый из игроков будет добавлять туда именно тех игроков, кто по их мнению сквернословит. Тем самым игрок А не будет видеть сообщений от игрока Б, который использует ненормативную лексику. Но игрок А будет видеть сообщения игрока В, хотя игрок В использует ненормативную лексику, но ему с кайфом читать эти сообщения. Игрок Б при этом видит сообщения обоих( А и В ), пока не добавит их в свой черный список. Причем это все касается чатов "ЛС", "Местный", "Торг", "Мир". При этом возможно "Групповой" не нужно игнорировать. Но это на усмотрение разработчика и администраторов. И можно делать это все на стороне клиента и не напрягать GroupServer и фильтр будет использоваться для всех аккаунтов которые запускаются непосредственно с ПК. Эта рекомендация если вы не хотите лишний раз напрягать сервера излишней обработкой. Единственная проблема при удалении игры и установке снова все настройки могут сбросится. Поэтому можно каждый раз выгружать этот черный список из базы если списка нет. Edited February 16, 2022 by Kara Online Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted February 18, 2022 On 2/16/2022 at 3:21 PM, Kara Online said: Возможно без использования тюрем и различного рода лишений игроков, которые на эмоциях пишут различные плохие вещи, можно реализовать черный список и каждый из игроков будет добавлять туда именно тех игроков, кто по их мнению сквернословит. Тем самым игрок А не будет видеть сообщений от игрока Б, который использует ненормативную лексику. Но игрок А будет видеть сообщения игрока В, хотя игрок В использует ненормативную лексику, но ему с кайфом читать эти сообщения. Игрок Б при этом видит сообщения обоих( А и В ), пока не добавит их в свой черный список. Причем это все касается чатов "ЛС", "Местный", "Торг", "Мир". При этом возможно "Групповой" не нужно игнорировать. Но это на усмотрение разработчика и администраторов. И можно делать это все на стороне клиента и не напрягать GroupServer и фильтр будет использоваться для всех аккаунтов которые запускаются непосредственно с ПК. Эта рекомендация если вы не хотите лишний раз напрягать сервера излишней обработкой. Единственная проблема при удалении игры и установке снова все настройки могут сбросится. Поэтому можно каждый раз выгружать этот черный список из базы если списка нет. Да, хорошая идея. @d3ux предлагал сделать подобное (осторожно, ~30 Мб .gif ) Spoiler Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
small666 28 Report post Posted February 19, 2022 (edited) Мне кажется для предложений по созданию модов отдельный раздел не помешает. А вот еще предложение для серверной части проверка на установленные моды в клиенте то есть как я это себе представляю на сервере мод с файлом в котором прописаны моды которые должны быть в клиенте и если не соответствует то закрытие клиента тем самым администрация сервера может контролировать пользователей на сторонние моды Сильно не пинайте меня за данную идею Или вот ещё Сравнение вещей как в 2,5 версии Edited February 19, 2022 by small666 Quote Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted February 20, 2022 On 2/19/2022 at 1:48 PM, small666 said: Мне кажется для предложений по созданию модов отдельный раздел не помешает. Создал отдельную тему: On 2/19/2022 at 1:48 PM, small666 said: А вот еще предложение для серверной части проверка на установленные моды в клиенте то есть как я это себе представляю на сервере мод с файлом в котором прописаны моды которые должны быть в клиенте и если не соответствует то закрытие клиента тем самым администрация сервера может контролировать пользователей на сторонние моды Сильно не пинайте меня за данную идею Я об этом тоже думал, но наверно лучше перенести этот функционал в какой-либо лаунчер, программу автообновлений, так как там уже будет необходимый задел по работе с файлами клиента. Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
small666 28 Report post Posted February 21, 2022 17 часов назад, V3ct0r сказал: Создал отдельную тему: Я об этом тоже думал, но наверно лучше перенести этот функционал в какой-либо лаунчер, программу автообновлений, так как там уже будет необходимый задел по работе с файлами клиента. Лаунчер наверное обойти проще, проверил на обновы да закрыл его и делай что хочешь а потом запустил через батник и защита лаунчера не сработает. А на стороне сервера так уже не обойти. Возможно заблуждаюсь Quote Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted April 20, 2022 Обновление загрузчика модов до версии 1.1 + Добавлена поддержка GateServer.exe версии 1.38 (1224838480); + Добавлена возможность отключения загрузки определенных модов. Список отключенных модов записывается с новой строки в файл ".disabled" в корневой директории с модами ("mods\.disabled"), например: // Write here the names of mods that do not need to be loaded pkodev.mod.fullmap pkodev.mod.tablelimit + Добавлена возможность указания приоритета загрузки модов. Приоритет загрузки модов в порядке убывания записывается с новой строки в файл ".priority" в корневой директории с модами ("mods\.priority"), например: // Write down mods loading priority in descending order here pkodev.mod.power pkodev.mod.tablelimit pkodev.mod.fullmap // Моды будут загружены в следующем порядке: // 1. pkodev.mod.power // 2. pkodev.mod.tablelimit // 3. pkodev.mod.fullmap // 4. Далее - все остальные обнаруженные в папке "mods" моды в случайном порядке + Оптимизация кода и прочие мелкие изменения. Все изменения залиты в репозиторий проекта на GitHub. 2 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted January 5, 2023 Обновление загрузчика модов от 05.01.2023 + Добавлена поддержка GroupServer.exe версии 1.38 (1224838510). Актуальные бинарные файлы Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites