4. Товары и выдача
Управление запасами (Склад)
Система поддерживает учет количества товаров:
- Бесконечный товар: Установите количество
-1. Товар никогда не закончится. - Ограниченный товар: Укажите конкретное число (например, 10). При покупке количество уменьшается.
- Защита от перепродажи: Если пользователь пытается добавить в корзину больше товаров, чем есть в наличии (с учетом того, что уже лежит в корзине), система заблокирует действие. Когда товар заканчивается (0), он автоматически скрывается из каталога или помечается как "Нет в наличии".
Типы выдачи и плейсхолдеры
Определяет выдачу на сервере. Поддерживает item, group, command.
[
{"type":"item","shortname":"wood","amount":5000},
{"type":"group","group":"vip","duration_days":30},
{"type":"command","command":"say {username} получил донат!"}
]
Плейсхолдеры в командах
При использовании типа command вы можете использовать специальные переменные, которые автоматически заменяются на данные игрока:
{steamid}— SteamID64 игрока (цифры). Рекомендуется использовать без кавычек (например,sentryturrets.give {steamid}), но большинство плагинов понимают и в кавычках.{username}— Никнейм игрока.
Пример команды для выдачи привилегии: grant.permission {steamid} antiraid.use 7d
Описание товара (WYSIWYG Редактор)
Для создания красивых и информативных описаний товаров используется мощный визуальный редактор (Summernote). Он позволяет:
- Форматирование текста: Жирный, курсив, заголовки, списки, цвета шрифта и фона.
- Вставка мультимедиа:
- Изображения: Загрузка файлов с компьютера (Drag & Drop или кнопка Picture) или вставка по ссылке.
- Видео: Вставка видеороликов с YouTube, Vimeo, Instagram и других сервисов.
- Ссылки: Создание кликабельных ссылок на внешние ресурсы.
- Режимы просмотра:
- Full Screen: Удобный полноэкранный режим на белом фоне для комфортного редактирования.
- Code View: Просмотр и редактирование чистого HTML-кода для продвинутых пользователей.
Конструктор выдачи и изображения
В форме создания товара есть удобный конструктор, позволяющий визуально выбирать предметы:
- Каталог с иконками: Визуальная сетка предметов с возможностью поиска по названию (shortname).
- Загрузка изображений: Теперь вы можете не только указывать URL картинки, но и загружать файлы с компьютера. Также доступна кнопка «Взять иконку» на карточке предмета — она автоматически подставит локальный путь к иконке (
/assets/img/items/...), что гарантирует быструю загрузку без зависаний. - Быстрый выбор: Клик по карточке предмета добавляет его в список выдачи (delivery_json).
Обновление каталога и иконок
Кнопка «Обновить» в блоке каталога выполняет две важные функции:
- Загрузка списка предметов: Скачивает актуальный список всех предметов Rust (включая новые DLC) из внешних источников.
- Кэширование иконок: Автоматически скачивает и сохраняет иконки предметов локально на сервер (
/assets/img/items/). Это обеспечивает мгновенную загрузку изображений в админ-панели, устраняя зависимость от скорости сторонних сайтов.
Примечание: Процесс обновления происходит пакетами (по 30-50 предметов), чтобы избежать тайм-аутов сервера. Если локальная иконка отсутствует, система автоматически попробует загрузить её с RustLabs.
Админ: список товаров
Доступны фильтры по статусу (все/активные/отключённые), быстрые кнопки ON/OFF без перезагрузки страницы, и кнопка Del для полного удаления.
Внимание: Полное удаление рекомендуется только для товаров, которые не использовались в оплаченных заказах.
Главная страница и витрина
Товары на главной странице автоматически распределяются по секциям:
- Рекомендуем: Товары с включенным флагом
is_featured. - Популярное: Товары с наибольшим количеством продаж (автоматический подсчет).
- Новинки: 8 последних добавленных товаров (сортировка по дате создания).
- Последние покупки: Живая лента недавних приобретений игроков.
Внутриигровой магазин (GUI)
Плагин RustCMSShop.cs предоставляет удобное меню для игроков:
- Открытие: Команды
/shop,/storeили клик по иконке в левом верхнем углу (HUD). - Корзина: Отображает доступные для получения товары.
- Получение: Игрок может забрать товары по одному или использовать кнопку «Получить всё».