Top.Mail.Ru

[Разработка ИИ] 1. Базовая интеграция ASTRA в ядро

[Скопировать ссылку]
admin Опубликовано 7 час. назад | Показать все сообщения |Режим чтения Распечатать Назад Вперед

Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!

Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться

x
📝 Отчёт о реализованных задачах1. Базовая интеграция ASTRA в ядро
  • Создан пакет org.elmorion.astra со всеми основными классами (Astra, AstraConfig, AstraVars, AstraBridge, AstraNoopBridge).
  • Настроена инициализация системы при старте сервера:
    • Чтение конфига game/config/Custom/Astra.ini.
    • Автоподстановка значений по умолчанию, если файл отсутствует.
    • Логирование состояния при запуске.


2. Конфигурация
  • Добавлен файл Astra.ini с параметрами:
    • Enabled — включение/выключение ASTRA.
    • BridgeImpl — режим работы (noop, local, remote).
    • Telemetry — включение телеметрии событий.
    • ThinkRateMs — частота обработки событий.
    • FollowRadius — радиус следования по умолчанию.
    • LogLevel — уровень логирования.

  • В AstraConfig реализованы геттеры для доступа к настройкам:



    public static String  bridgeImpl()public static boolean telemetry()public static int     thinkRateMs()public static int     logLevel()

  • Реализован поиск конфига из правильной директории (game/config/Custom/).

3. Мост (Bridge)
  • В классе Astra добавлена логика выбора реализации моста:
    • noop → AstraNoopBridge (заглушка, ничего не делает).
    • local → внутренняя реализация.
    • remote → в будущем поддержка IPC/сети.

  • AstraNoopBridge реализован и подключен как дефолтный вариант.

4. Интеграция с AI
  • Внесены изменения в AbstractAI.java и другие классы AI:
    • Добавлены вызовы Astra.BRIDGE.onEvent(...) для обработки событий AI.
    • Исправлен доступ к Astra.BRIDGE (переведён в public).

  • Подготовлена база для расширения поведения NPC через ASTRA.

5. Админ-панель ASTRA
  • Создан обработчик команд AdminAstra.java.
  • Реализованы команды:
    • //admin_astra — открыть панель.
    • //admin_astra_status — статус ASTRA.
    • //admin_astra_set — установка параметров (align, threshold).
    • //admin_astra_add — добавление шардов.
    • //admin_astra_toggle — вкл/выкл ASTRA.
    • //admin_astra_recompute — пересчёт состояния мира.

  • Добавлены HTML-файлы админ-панели:
    • _config.htm
    • _shards.htm
    • _server_menu.htm


6. Встроенные метрики и переменные мира
  • В AstraVars заведены ключевые переменные:
    • Состояние выравнивания: elmo_align_light, elmo_align_dark, elmo_align_chaos.
    • Элементальные осколки: elmo_shard_fire, elmo_shard_water, elmo_shard_air, elmo_shard_rune, elmo_shard_shadow.
    • Состояние мира: elmo_world_state.

  • Подготовлена база для влияния глобальных решений игроков на состояние мира.

7. Безопасность и устойчивость
  • Исправлены ошибки компиляции (bridgeImpl, applyDefaults, readIni).
  • Устранены потенциальные NullPointerException в AI.
  • Реализовано логирование отсутствия конфига и fallback на значения по умолчанию.


🚀 Что это даёт уже сейчас
  • Сервер умеет загружать и хранить параметры ASTRA из внешнего конфига.
  • Есть админ-интерфейс для управления системой без перезапуска.
  • В AI добавлены точки интеграции — можно внедрять адаптивное поведение NPC.
  • Подготовлены глобальные метрики мира для будущих ивентов.
  • Вся система работает как модуль поверх ядра, не ломая стандартную функциональность.



🔮 Следующие шаги
  • База данных — добавить таблицу astra_world_state для сохранения переменных между рестартами.
  • Расширение моста — реализовать local и remote версии для реальных сценариев.
  • Игровые события — завязать метрики ASTRA на запуск эвентов/квестов.
  • Телеметрия — в будущем выводить статистику в админ-панели.
  • Оптимизация AI — использовать ASTRA для управления агро, патрулями, динамикой квестов.

Сообщений в теме:1

 Автор| admin Опубликовано 7 час. назад | Показать все сообщения
🗄 Таблица для ASTRA в базе данныхНазвание:
astra_world_state
Структура:


CREATE TABLE IF NOT EXISTS `astra_world_state` (  `id` INT NOT NULL AUTO_INCREMENT,       -- Уникальный идентификатор записи  `var` VARCHAR(64) NOT NULL,             -- Имя переменной (например elmo_align_light)  `val` VARCHAR(255) NOT NULL,            -- Значение переменной  `last_update` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- Когда обновлялось  PRIMARY KEY (`id`),  UNIQUE KEY `uk_var` (`var`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Что тут хранится:
  • elmo_align_light, elmo_align_dark, elmo_align_chaos → накопленные значения выбора игроков.
  • elmo_shard_fire, elmo_shard_water, elmo_shard_air, elmo_shard_rune, elmo_shard_shadow → количество собранных шардов.
  • elmo_world_state → текущее глобальное состояние мира (например, LIGHT / DARK / CHAOS / BALANCE).
  • В будущем сюда же можно положить threshold и другие кастомные настройки.

Пример наполнения:


INSERT INTO `astra_world_state` (`var`, `val`) VALUES('elmo_align_light', '1200'),('elmo_align_dark', '950'),('elmo_align_chaos', '300'),('elmo_shard_fire', '25'),('elmo_shard_water', '13'),('elmo_shard_air', '8'),('elmo_shard_rune', '15'),('elmo_shard_shadow', '19'),('elmo_world_state', 'LIGHT');


⚙️ Следующие шаги по коду:
  • В AstraVars сделать загрузку/сохранение этих переменных в таблицу при старте/выключении сервера.
  • В админ-панели добавить кнопки "Сохранить" и "Обновить" → синхронизация с БД.
  • В будущем расширить таблицу: добавить scope (глобальное / региональное), npcId (для отражений), event_state.


Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

Правил начисления баллов

Опубликовать
Сектор творческих людей
Горячая линия

638638758

С понедельника по воскресенье с 9:00 до 23:00

Обратной связь

admin@artace.ru Онлайн

QR-код

Powered by Discuz! X3.5© 2001-2021 Comsenz Inc.