🌀 Алгоритм квеста «Испытания Хаоса»
1. Встреча с NPC
2. Проверка условий входаКогда игрок нажимает «Войти в Испытания Хаоса», скрипт ChaosTrials.java проверяет: Уровень — должен быть ≥ 20 (MIN_LEVEL = 20). Размер группы — максимум 7 участников (MAX_PARTY = 7). Если условия выполнены → создаётся инстанс Chaos Trials.
3. Создание инстансаЯдро создаёт новый экземпляр инстанса (id = 99003). Время жизни инстанса: 15 минут. Все игроки, которых ядро связало с этим инстансом (сам игрок и его пати ≤7), телепортируются на координаты входа (151000, 47000, -3500). На заранее заданных точках (MOB_LOCS) спавнится пачка мобов (например, демоны). В Map<Integer, Integer> _kills создаётся запись «id инстанса → 0» (счётчик убийств).
4. Сражение
5. Завершение испытания
6. Выход и очисткаИгроки могут покинуть инстанс самостоятельно. Если время истекло или инстанс опустел → сервер его уничтожает. В ChaosTrials.java вызывается onInstanceDestroy, и из _kills удаляется запись для этого инстанса.
7. Обмен осколковСобранные Осколки Хаоса (95003) можно обменять у Вестника Хаоса через мультиселл (id = 99003). Варианты обмена (пример): При каждом обмене (через кастомный AstraMultisellHandler или скрипт Keeper’а) также увеличивается счётчик elmo_align_chaos.
8. Влияние на мир (песочница ASTRA)Счётчик elmo_align_chaos хранится в таблице elmo_counters. Когда он (или аналогичные для Света/Тьмы) достигает порога (threshold в elmo_world_state, например 70): Мир переключается в состояние CHAOS. Через спавнеры AstraChaosWardenSpawner появляется новый NPC, соответствующий Хаосу. Старые хранители исчезают, если их сторона неактивна.
Таким образом, каждый обмен и каждое испытание двигает баланс в сторону Хаоса.
⚔️ Итоговый цикл для игрокаИгрок приходит к хранителю → выбирает сторону. Входит в инстанс Trials → убивает мобов → получает осколки. Обменивает осколки на руны → этим усиливает свою сторону в глобальном конфликте. При накоплении силы стороны (счётчиков) мир Элмориона меняется: NPC, события, квесты и мобы подстраиваются.
|