Передача предметов в игру
KaevCMS позволяет игрокам отправлять награды из Веб-инвентаря персонажам. Для передачи CMS записывает предметы в специальную таблицу kaev_reward_queue в игровой базе.
Чтобы эта функция работала, администратору нужно один раз установить таблицу в базу GameServer.
Установка очереди наград
- Скачайте SQL-файл
install.sqlиз папкиintegrations/reward-queueв репозитории KaevCMS. - Откройте phpMyAdmin, выберите базу GameServer и импортируйте скачанный файл через вкладку «Импорт». Таблица
kaev_reward_queueпоявится автоматически. - Проверьте подключение: в админке KaevCMS откройте «Очередь наград», выберите нужный GameServer. Должно появиться сообщение: «Очередь выбранного GameServer доступна и имеет поддерживаемую структуру».
- Готово! Теперь игрок может открыть Личный кабинет → Веб-инвентарь, выбрать предметы и персонажа. KaevCMS запишет заявку на передачу в игровую таблицу.
Несколько игровых серверов
Если у вас несколько GameServer с разными базами данных, установите таблицу в каждую базу, куда нужно передавать предметы.
Кто выдаёт предметы персонажу?
KaevCMS только записывает предметы в очередь игровой базы. Их фактическую выдачу персонажам администратор игрового сервера организует самостоятельно — например, через плагин или свой обработчик.
Статус «Передано» в KaevCMS означает, что данные записаны в очередь, а не что предмет уже появился в игре.
Если очередь не работает
- «Таблица не найдена» — проверьте, что
install.sqlимпортирован именно в базу выбранного GameServer, а не в базу CMS или LoginServer. - «Неверная структура» — сравните таблицу с актуальным
install.sql; перед изменениями сохраните существующие данные. - «Недоступна» — проверьте подключение GameServer и права пользователя базы данных. CMS должна иметь доступ к чтению и записи очереди.
- Предмет не пришёл в игру — проверьте обработчик игрового сервера: наличие таблицы позволяет CMS создать запись, но не выполняет выдачу автоматически.
Поля таблицы kaev_reward_queue
| Поле | Для чего используется |
|---|---|
id | Уникальный номер записи в очереди. |
request_uuid | Общий идентификатор одной операции передачи. |
line_number | Порядковый номер предмета в операции. |
game_server_id | ID игрового сервера в KaevCMS. |
source | Источник передачи (обычно web_inventory). |
cms_user_id | ID пользователя в KaevCMS. |
account_name | Логин игрового аккаунта. |
character_id | ID персонажа, которому предназначен предмет. |
character_name | Имя персонажа. |
item_id | ID игрового предмета. |
amount | Количество предметов. |
status | Состояние записи: pending, processing, delivered или failed. |
attempts | Сколько раз обработчик пытался выполнить выдачу. |
error_message | Сообщение об ошибке при обработке (если есть). |
created_at | Дата и время создания записи. |
processing_started_at | Когда обработчик начал выдачу. |
processed_at | Когда обработчик завершил выдачу или зафиксировал ошибку. |
Важно: KaevCMS создаёт запись со статусом pending. Дальнейшие статусы и поля обработки заполняет обработчик игрового сервера, а не CMS.
