/level/quick-complete
Метод мгновенно завершает count прохождений уже пройденного (на 3 звезды) уровня, без реального боя. Звёзды уровня не пересчитываются.
Адрес метода
/level/quick-complete
Требует сессию пользователя
Параметры
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| level_id | ДА | string | CID уровня |
| count | ДА | int | Количество быстрых прохождений (1-50) |
Результат
{
"response": {
"success": 1,
"timestamp": 1758253785.916074,
"count": 2,
"energy_spent": 6,
"free_attempts_used": 2,
"tickets_used": 0
},
"update": {
"member": {
...,
"options": {
...
},
"wallet": [
{...currency},
{...currency},
{...currency},
],
"levels": [
{...level}
],
"gacha": {
...
}
}
},
"events": [
{
"type": "reward",
"payload": {
"reasonType": "quick_battle",
"reasonId": "level_1",
"rewards": [
{ "type": "soft", "amount": 200 },
{ "type": "playerExp", "amount": 20 }
]
}
}
]
}
response
| Поле | Тип | Описание |
|---|---|---|
| count | int | Сколько прохождений было засчитано |
| energy_spent | int | Сколько энергии было потрачено (level.energy * count) |
| free_attempts_used | int | Сколько бесплатных билетов быстрого боя было списано |
| tickets_used | int | Сколько обычных билетов быстрого боя (quick_battle_ticket) было списано |
events
Награды за все count прохождений суммируются и приходят одним reward event, как и при обычном /level/complete. Награды нужно читать из events, в response они не дублируются.
| Поле | Тип | Описание |
|---|---|---|
| reasonType | string | quick_battle |
| reasonId | string | CID уровня |
| rewards | array | Суммарные награды за все прохождения, в формате { type, amount, condition? } |
Награда за первое прохождение (condition: firstComplete) быстрым боем не выдаётся - уровень уже пройден к моменту вызова метода.
Ошибки
Метод вернёт MethodNotAllowed, если:
- уровень не поддерживает быстрое прохождение (
gameMode.canQuickBattle/gameLevels.canQuickBattleв конфиге) - уровень не пройден ранее на 3 звезды
- не хватает попыток прохождения уровня (
level.attempts, если он ограничен) - не хватает энергии
- пока есть бесплатные прохождения (
free_quick_battle_ticket > 0), аcountпревышает их остаток — билеты быстрого боя (quick_battle_ticket) в этом случае не подключаются, запрос отклоняется целиком - бесплатные прохождения закончились (
free_quick_battle_ticket == 0), аquick_battle_ticketне хватает на весьcount
Одно и то же прохождение не может частично оплачиваться бесплатными попытками, а частично билетами: пока есть бесплатные, count должен полностью покрываться ими; билеты расходуются только когда бесплатные полностью исчерпаны. Бесплатные прохождения восстанавливаются раз в сутки по серверному времени до дневного лимита (commonConstants.freeDailyQuickBattleTickets) и не накапливаются сверх него.