/arena/init

Первый вход на арену: регистрирует игрока — лига, AP, наборы приёмов, стартовая косметика и случайное имя. В группу игрок не садится, пока не пройдёт онбординг.

Адрес метода

/arena/init

Требует сессию пользователя

Параметры

Параметр Обязательный Тип Описание
skin_id НЕТ string(0..64) cid скина
avatar_id НЕТ string(0..64) cid аватара
frame_id НЕТ string(0..64) cid рамки аватара
defense_set НЕТ slot_set Защитный набор приёмов: {"1": <skill_id>, ..., "5": 0}

Результат

Тот же агрегат, что отдаёт /arena/info.

Что важно знать

Регистрация — ещё не участие в боях. Все экраны арены работают, но до победы над Цукером игрок не сидит в группе: не атакует, не атакуем, не стоит в чужих рейтингах, не получает наград. Состояние — onboarding.onboarded в /arena/info и arena_onboarded в объекте пользователя.

Имя выдаётся случайное из пула (прилагательное + существительное + число, латиница) и, как любое имя, уникальное: число в конце двузначное, а когда свободных двузначных не остаётся — трёх- или четырёхзначное. Своё игрок выбирает при завершении онбординга. Параметра name у метода больше нет; старый клиент, который его присылает, не отбивается — параметр просто не читается. Прежнее имя из Telegram (first_name) публиковало данные игрока всем без его выбора и без фильтра.

Метод идемпотентный. Повторный вызов на уже инициализированной арене просто возвращает текущее состояние — заново ничего не создаётся.

Оба набора приёмов по умолчанию копируются из боевого набора кампании, включая защитный. Игрок атакуем с момента попадания в группу, поэтому без защиты его оставлять нельзя. При завершении онбординга защитный набор копируется из кампании заново.

Если в версии конфига нет ни одной лиги, метод падает громко (500 плюс запись в Anno), а не создаёт игрока с пустой лигой. Раньше пустая лига выглядела успешной инициализацией, после которой любой следующий метод арены отвечал «арена не инициализирована», и игрок застревал навсегда.