l2jMobius Fafurion AI system

Компил l2jMobius Fafurion AI system 1.3

Нет прав для скачивания
Control APi теперь работает на широком уровне. Позволяет создавать свой функционал. Так же доработан для Оракула сайта - позволяет получать более точную и разнообразную информацию об игроке во время общения.
Привязаны новые провайдеры для LLM. Возможность очень гибко использовать интеграцию ИИ.

Пересобраны методы обращения АИ пати менеджера и принцип работы с ИИ. Идет подготовка для внедрения системы обучения менеджера. Принцип улучшения с каждой новой активностью.

Начата начальная стадия разработки автономных игроков с ИИ, которые будут сами выполнять квесты, участвовать в социальных активностях, вступать в кланы и группу, ходить на рейды с игроками, торговаться за шмотки, разговаривать с игроками и другое. Для тех, кто хочет свой маленький мир - самое то.
В Control API Java добавлены новые функции для сайта и админки. Так же добавлен новый лаунчер
FafurionLauncher.exe - я задолбался для дэбага из папки в папки прыгать и перезапускать сборки и лазить по консолям (крик души). Теперь есть единое окно которое дает всю информацию о сервере.
1771066875708.webp

1771067054357.webp
Я добавил в сервер новый модуль **Control API Java** — это встроенный HTTP‑сервис на стороне GameServer, который даёт безопасный «пульт управления» сервером и конфигами для сайта/админки.

## Зачем я это сделал​

Я сделал Control API, чтобы:
- **Не лезть в файлы руками** каждый раз, когда нужно поменять конфиг или выполнить админ‑действие.​
- Дать сайту и админке **единый официальный API** для чтения/записи разрешённых настроек.​
- Уметь обслуживать «кабинет» и страницы администрирования через контролируемые эндпоинты (онлайн, игроки, анонсы и т.д.).​

## Что он умеет (в общих словах)​

Я реализовал набор HTTP‑эндпоинтов (внутри GameServer), которые используются сайтом/админкой. Важно: модуль не открывает весь сервер «как есть», а работает по принципу **разрешённых операций**.
Типовые возможности:
- **Работа с конфигами**​
- чтение/изменение только тех ключей и файлов, которые я явно разрешил (allowlist)​
- **Админ‑действия**​
- отправка анонсов​
- получение списков/статусов, связанные с панелью управления​
- **Интеграция с сайтом**​
- сайт обращается к Control API через PHP‑прокси, а Control API уже выполняет действия на стороне сервера​

## Как я сделал это безопаснее​

Я заложил базовые механизмы защиты:
- **Токен доступа**: запросы должны быть авторизованы токеном.​
- **Ограничение по IP**: Control API принимает запросы только с разрешённых IP.​
- **Проверка прав аккаунта (accesslevel)**: для админских действий я проверяю уровень доступа аккаунта (например, `accesslevel=100`) и разрешаю операции только тем, у кого есть права.​
- **Allowlist**: конфиги/ключи доступны только если они явно разрешены на стороне Java.​
Это значит, что даже если кто-то «видит» порт, он не сможет просто так управлять сервером без токена и без попадания в список IP.

## Что я добавил вокруг модуля​

Я добавил отдельный конфиг-файл для управления модулем:
- `config/Custom/ControlApi.ini`​
В нём включается модуль, задаются host/port, токен и список разрешённых IP.

## Пример реальной доработки на базе Control API​

Я добавил настройку **доступа к /oracle без Premium**:
- на стороне сервера: `aiassistant.oracle.allow_without_premium`​
- админка может менять этот флаг через Control API​
- а обработчик чата на стороне Control API проверяет Premium и возвращает понятную ошибку, если доступ закрыт​

## Что важно помнить​

- Control API — это **интерфейс управления сервером**, поэтому его нельзя открывать в интернет «как попало».​
- Я рассчитываю, что он будет слушать **локально или в закрытой сети**, а доступ будет ограничен IP + токеном.​
- Все расширения функционала я добавляю через **явные разрешения**, без «полного доступа ко всему».​

Эта инструкция описывает настройку Control API как для обычного пользователя/админа: что включить, где поменять параметры и как проверить, что работает.

## 1) Где находится конфиг​

Основной конфиг модуля:
- `config/Custom/ControlApi.ini`​

## 2) Включение/выключение​

В файле `ControlApi.ini`:
- `EnableControlApi = true` — включить​
- `EnableControlApi = false` — выключить​

## 3) Адрес и порт​

Параметры:
- `ControlApiHost` — на каком адресе слушать​
- `ControlApiPort` — на каком порту слушать​
Рекомендации:
- Если Control API используется только локально (сайт и сервер на одном ПК):​
- `ControlApiHost = 127.0.0.1`​
- Если сайт находится на другом сервере внутри вашей сети:​
- укажите IP сервера (или `0.0.0.0`, если нужно слушать все интерфейсы)​
- обязательно ограничьте доступ по IP (см. ниже)​

## 4) Токен доступа​

Параметр:
- `ControlApiToken = ...`​
Рекомендации:
- Я рекомендую сделать токен длинным и непредсказуемым.​
- Не публикуйте токен в открытых местах.​

## 5) Ограничение по IP (обязательно)​

Параметр:
- `ControlApiAllowedIps = ...`​
Рекомендации:
- Если всё работает на одном ПК: оставьте `127.0.0.1`.​
- Если сайт на другой машине: добавьте IP этой машины.​
- Если у вас несколько сервисов/прокси — добавляйте только те IP, с которых реально идут запросы.​

## 6) Пути для интеграции с сайтом (необязательно)​

В `ControlApi.ini` есть дополнительные поля:
- `ControlApiSiteConfigPath` — путь к JSON конфигу сайта (используется для функций сайта, где нужно читать настройки сайта на стороне сервера)​
- `ControlApiOracleKbPath` — путь к скрытой базе знаний Oracle (server-side - стадия доработки)​
Если вы эти функции не используете — можно оставить пустыми.

## 7) Применение настроек​

После изменения `ControlApi.ini`:
- перезапустите GameServer​
(Модуль поднимается вместе с сервером.)

## 8) Как понять, что всё работает​

Самый простой способ проверки без «глубоких команд»:
- Откройте админку/сайт, где используется управление сервером.​
- Попробуйте действие, которое ходит в Control API (например, чтение/сохранение настроек в админском редакторе конфигов).​
Если при обращении появляются ошибки доступа:
- проверьте `ControlApiAllowedIps`​
- проверьте `ControlApiToken`​
- проверьте, что указаны корректные `ControlApiHost` и `ControlApiPort`​

## 9) Безопасность (коротко)​

- Не выставляйте Control API напрямую в интернет.​
- Держите доступ по IP ограниченным.​
- Токен не должен быть “12345” или совпадать с паролями.​

Так же идет доработка LLM помощника для администратора, но это уже другая история.
Описание обновления во вкладке "обзор"
- Просили включить автофарм - сделано. Команда .play персонажем в обычном чате
- Включил чемпионов до 99 для развлечения.
- Система автокача корректно работает параллельно с AI
Теперь, что бы постоянно не вносить в конфиг API ключ, его можно задать в переменной среде как
openrouter.api_key. Инструкции по переменным средам есть в интернете.

Так же если включен дебаг(в конфиге сейчас по умолчанию), то при входе в игру вылетает окно с помощью по активации ИИ. Ру или Ен в зависимости от клиента.

Обновил реадми.
Доработаны 4 профы (кроме танка)
Полная ветка Артэи
Пересобран класс ИСов
Доработаны якоря: теперь нормально держится ИИ на месте привязки
Для классов добавлены обработки специфичных проф скилов
Обновлена логика запросов для LM
Немного поправлены тонкие настройки
Нормальная поддержка EU
Добавлено автоматическое понимание английского языка для команд и тригеров.
- добавил лучника на 4 профе.
- доработан "якорь" для ожидания. теперь если Ai привязан к нему, то даже если во время боя отойдет от него - в конце вернется.

Лучник ставит ловушки, серфит от мобов, сам понимает когда надо массовые скилы, а когда одиночные. Так же старается прикрывать хиллера.
Назад
Сверху Снизу