# Дебаг-команды для headless-ботов Два способа: кнопки на дашборде **http://127.0.0.1:7780/** (панель «Дебаг-команды») или напрямую в браузере / PowerShell. Формат: `http://127.0.0.1:7780/api/cmd?do=КОМАНДА&name=НИК_БОТА&arg=АРГУМЕНТ` `name` пустой — берётся случайный живой бот. В дашборде клик по боту в списке подставляет его ник автоматически. ## Телеметрия и экономика (SPP 3) | Команда | Что делает | |---|---| | `do=stats` | счётчики по всему населению: kills, exp, loot, itemsSold, adenaEarned/Spent, stores, skillsCast, rests, lines, replies, parties, migrations, professions, sieges + сколько сейчас в бою/сидит/торгует/в пати/на осаде | | `do=stats&name=Ник` | то же для одного бота + последнее действие, шоты, инвентарь, HP | | `do=list` | 25 ботов: класс, характер, зона, HP, убийства/смерти, последнее действие | | `do=brain&name=Ник` | роль, скиллы профиля (+/-), цель и её HP, бьёт/кастует/сидит, оружие, шоты, число бафов, атака/защита | | `do=town` | бот делает «поход в город» прямо на месте: продаёт хлам, докупает шоты/банки, бафается; ответ — сколько продано/куплено и адена | | `do=trade` | лавка в городе своего уровня (если продавать нечего — выдаётся образец товара) | | `do=profession` | попытка взять следующую профу (сообщит, если не положена по уровню) | | `do=talk&name=Бот&arg=ТвойНик` | два бота телепортируются к тебе и начинают диалог (вопрос → ответ через разбор интентов) | | `do=invite&arg=ТвойНик` | бот прыгает к тебе и **приглашает в пати** (окно приглашения у тебя) | | `do=siege&arg=Giran` | форс-осада: регистрирует бот-кланы атакующими и запускает осаду движка; `do=siegeend&arg=Giran` — закончить; `do=siegeinfo` — расписание, зарегистрированные кланы, сколько ботов в бою | | `do=online&arg=charId` | подгрузить конкретного сид-персонажа в мир (так осадный менеджер подтягивает лидеров кланов) | `/api/stats` — то же, что `do=stats`, в JSON; `/api/sieges` — как `do=siegeinfo`. ## Уровень и переезд | Команда | Что делает | |---|---| | `do=levelup` | **+1 уровень** боту. На следующем тике (до 3 сек) бот сам порадуется в чат, а при переходе тира — попрощается и уедет в новую зону | | `do=migrate` | немедленный переезд в зону по своему уровню, с прощальной фразой | Пример: `http://127.0.0.1:7780/api/cmd?do=levelup&name=Eladrael` Нажать 8 раз подряд — увидишь пересечение границы тира и переезд. ## Торговля | Команда | Что делает | |---|---| | `do=trade` | бот телепортируется в центр Гирана и **открывает настоящую лавку** (можно подойти и купить) | | `do=tradeall&arg=10` | открыть лавки сразу у 10 ботов (до 50) — рынок за 5 секунд | | `do=closeshop` | закрыть лавку | ## Взаимодействие с тобой | Команда | Что делает | |---|---| | `do=come&arg=ТвойНик` | телепортировать бота к тебе | | `do=party&arg=ТвойНик` | бот телепортируется и вступает в **настоящую пати** с тобой | | `do=gank&arg=ТвойНик` | бот прыгает к тебе и атакует с дерзкой фразой (проверка PvP) | | `do=clanwar&arg=ТвойНик` | объявить войну между кланом бота и твоим кланом (нужны кланы у обоих) | ## Речь, память, смерть | Команда | Что делает | |---|---| | `do=say` | бот говорит случайную реплику из шва `ambient` (или LLM, если Ollama запущена) | | `do=say&arg=текст` | бот говорит ровно этот текст | | `do=rumor&arg=ТвойНик` | вложить боту слух про тебя — потом при встрече он его выдаст («говорят ты…») | | `do=kill` | убить бота: он ложится, через ~15 сек **встаёт в ближайшем городе** и через минуту возвращается на спот | | `do=list` | первые 25 ботов: ник, уровень, характер, зона, статус | ## Проверка разговоров без игры На дашборде секция «Тестер диалога»: пишешь фразу (можно транслитом — `IIoMoruTe`, `privet`), видишь нормализацию → интент → шов → ответ, справа подсвечивается выбранная строка в списке вариантов шва. В игре: шёпот боту (`"Ник текст`) — теперь работает, «Offline mode» исправлено. ## Быстрый сценарий проверки всего 1. `do=tradeall&arg=15` → идёшь в Гиран, там 15 лавок, заходишь в любую и покупаешь. 2. `do=party&arg=ТвойНик` → окно пати, бот рядом, бьёт твои цели. 3. `do=gank&arg=ТвойНик` → PvP, флаг, бот кричит. 4. `do=kill` → смотришь, что бот встал в городе. 5. `do=levelup` несколько раз → реакция в чат и переезд. 6. Шёпот боту «помоги» → он бежит; «ты бот?» → отнекивается.