Raid boss hunts for headless bots (real party, real boss), do=raid/raidinfo, docs
This commit is contained in:
@@ -12,13 +12,15 @@
|
||||
|
||||
**Осады** (`FakePlayerSieges`). По расписанию `SiegeSchedule.xml` бот-кланы с ≥3 членами 40+ онлайн регистрируются атакующими на замки бот-кланов (по 2 клана на замок, `FakePlayerSiegeAttackerClans`; на замки игроков — только при `FakePlayerSiegeAttackPlayerCastles = True`). Лидеры кланов подгружаются в мир заранее. В начале осады атакующие собираются за внешними воротами, защитники — у артефакта. Атакующие бьют врагов, ломают ворота, идут к артефакту, лидер клана кастует Печать Правителя (3 минуты, остальные прикрывают) — замок переходит настоящей механикой движка. Крики в крик-чат: начало, ворота, печать, победа/поражение. Форс: `do=siege&arg=Giran`, `do=siegeend`, `do=siegeinfo`.
|
||||
|
||||
**Рейды** (`FakePlayerRaids`). Раз в 30–90 минут собирается настоящая пати из 5–9 ботов уровня живого рейд-босса (20–80, гранд-боссы не трогаются), телепорт к боссу, боевой клич, бой до смерти босса или 25 минут (умершие встают в городе и возвращаются к боссу), потом все расходятся по спотам с событием «после рб» в контексте чата. `do=raid` — запустить сейчас, `do=raidinfo` — статус.
|
||||
|
||||
**Пати.** Соклановцы одного уровня стартуют на одном споте и собираются в настоящие пати (до 6), держатся лидера, ассистят его цель, хилеры лечат. С игроком: «го пати» → бот **приглашает сам** (обычное окно приглашения), инвайт игроку бот принимает.
|
||||
|
||||
**Чат — один движок на всех.** Шёпот и общий чат идут через `FakePlayerUnderstanding`: интенты с опечатками, память (кто убивал/помогал/соклановец/враг по кв), позиция на 15 минут (второй раз «я ж сказал: …»), молчание на первое сообщение незнакомца, реакция на капс, зеркалирование стиля, идиолект (свой смех, паразит, сленг, мат у трети), факты контекста (план: фарм/торговля/осада/переезд, событие: ап, ганг, профа, конец осады) и слоты (`{zone} {level} {mob} {town} {crowd} {drop} {clan} {enemyclan} {castle}`). Боты **разговаривают друг с другом**, когда рядом есть живой игрок: здороваются при встрече, задают вопросы (`bot_talk`: «как фарм», «дроп есть?», «какой лвл», «го в пати», «пк ходят?», «клан есть?»…), отвечают через тот же разбор интентов (до 3 реплик в цепочке), подхватывают жалобы и вопросы, поздравляют с лвлом, сплетничают. Зов на помощь при проигрываемом пвп — соклановцы в радиусе 1500 подтягиваются. LLM (Ollama) по умолчанию только для фраз без интента (`FakePlayerLlmPriority = seams`), `llm` — наоборот.
|
||||
|
||||
**Проверка, что они это делают, а не делают вид**: `do=stats` (сумма по населению), `do=stats&name=Ник` (один бот: убийства, опыт, лут, продано/куплено/адена, лавки, касты, отдыхи, реплики, пати, переезды, профы, осады, последнее действие), `/api/stats` (JSON), строка `FakePlayerTelemetry: last N min -> kills=+… exp=+… loot=+…` в логе раз в `FakePlayerStatsLogMinutes`, `FakePlayerChatLog = True` — каждая реплика в лог с каналом и швом. Оффлайн: `tools/run_harness.sh` (движок чата на реальных XML), `python tools/check_data.py` (пулы, слоты, швы, скиллы профилей).
|
||||
|
||||
Настройки — секция «SPP additions» в `game\config\Custom\FakePlayers.ini`: `FakePlayerLlmPriority`, `FakePlayerBotDialogues`, `FakePlayerEconomy`, `FakePlayerProfessionChange`, `FakePlayerSieges`, `FakePlayerSiegeAttackerClans`, `FakePlayerSiegeAttackPlayerCastles`, `FakePlayerStatsLogMinutes`, `FakePlayerChatLog`.
|
||||
Настройки — секция «SPP additions» в `game\config\Custom\FakePlayers.ini`: `FakePlayerLlmPriority`, `FakePlayerBotDialogues`, `FakePlayerEconomy`, `FakePlayerProfessionChange`, `FakePlayerSieges`, `FakePlayerSiegeAttackerClans`, `FakePlayerSiegeAttackPlayerCastles`, `FakePlayerRaids`, `FakePlayerStatsLogMinutes`, `FakePlayerChatLog`.
|
||||
|
||||
Ограничения: NPC-режим ботов (`FakePlayerProgression = True`) не поддерживается — шаблонов `fpc_spp_*` в сервере нет; смертность у магов и на спавне в центре стай выше, чем у живых (см. `AUDIT.md`).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user