Agency-Shops Установка
Все магазины 24/7, LTD, Rob's Liquor, хозяйственные магазины, Ammu-Nation и заправки на карте в одном скрипте для FiveM.

01Установка
- 1Extract Agency-Shops into your resources folder
- 2Убедитесь, что OneSync включен на вашем сервере
- 3Add ensure Agency-Shops to server.cfg, after your framework, your inventory and oxmysql
- 4Запустите сервер: таблицы базы данных создаются при первом запуске (install/agency_shop.sql нужен только в случае, если пользователю базы данных запрещено создавать таблицы)
- 5Добавьте add_ace group.admin agency.shop allow, чтобы выдать администраторам доступ к панели /ashops
- 6Используете qb-shops, esx_shops или магазины ox_inventory? Удалите их записи 24/7, иначе за одним прилавком окажутся два кассира
- 7Используете qb-storerobbery или похожий скрипт? Отключите один из них или укажите Config.Robbery.Enabled = false
- 8Используете скрипт топлива с собственными колонками? Отключите в нем взаимодействие с колонками или укажите Config.GasStations.Enabled = false
- 9Standalone: настройте Config.Standalone для денег и предметов (см. страницу конфигурации)
- 10Необязательно: укажите адреса вебхуков Discord в config_server.lua, этот файл никогда не отправляется клиентам
02Зависимости
oxmysql (обязательно)OneSync (обязательно)QBCore, QBox или ESX (необязательно, без фреймворка работает в режиме standalone)Инвентарь (необязательно: ox_inventory, qs-inventory или инвентарь вашего фреймворка, определяется автоматически)Agency Phone (необязательно, добавляет Agency Pay как способ оплаты)Agency-Notify (необязательно, иначе магазин использует собственные уведомления)ox_target или qb-target (необязательно, иначе используется подсказка по клавише)ps-dispatch или cd_dispatch (необязательно, для вызовов при ограблении и магазинных кражах, иначе используется встроенное оповещение)Скрипт топлива (необязательно: LegacyFuel, ox_fuel, cdn-fuel, ps-fuel, lc_fuel, Renewed-Fuel, okokGasStation или qs-fuelstations, иначе работает встроенная система топлива)
03SQL файл
Необязательно: ресурс сам создаёт эти таблицы при запуске. Импортируйте файл, только если настраиваете базу данных вручную:
-- =============================================================================
-- AGENCY SHOP - database tables
-- Created automatically on start (Config.AutoApplySql = true). Run this file by
-- hand only if your database user may not create tables.
-- =============================================================================
CREATE TABLE IF NOT EXISTS `agency_shop_owned` (
`id` VARCHAR(64) NOT NULL,
`kind` VARCHAR(16) NOT NULL DEFAULT 'store',
`owner` VARCHAR(80) NOT NULL,
`owner_name` VARCHAR(120) NOT NULL DEFAULT '',
`name` VARCHAR(60) NULL DEFAULT NULL,
`balance` INT NOT NULL DEFAULT 0,
`prices` LONGTEXT NULL,
`stock` LONGTEXT NULL,
`staff` LONGTEXT NULL,
`fuel` INT NOT NULL DEFAULT 0,
`fuel_prices` LONGTEXT NULL,
`sales_total` INT NOT NULL DEFAULT 0,
`revenue_total` BIGINT NOT NULL DEFAULT 0,
`last_sale` TIMESTAMP NULL DEFAULT NULL,
`bought_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `owner` (`owner`)
);
CREATE TABLE IF NOT EXISTS `agency_shop_orders` (
`id` INT NOT NULL AUTO_INCREMENT,
`shop` VARCHAR(64) NOT NULL,
`kind` VARCHAR(16) NOT NULL DEFAULT 'goods',
`items` LONGTEXT NULL,
`crates` INT NOT NULL DEFAULT 0,
`litres` INT NOT NULL DEFAULT 0,
`cost` INT NOT NULL DEFAULT 0,
`fee` INT NOT NULL DEFAULT 0,
`status` VARCHAR(16) NOT NULL DEFAULT 'open',
`courier` VARCHAR(80) NULL DEFAULT NULL,
`courier_name` VARCHAR(120) NULL DEFAULT NULL,
`eta` INT NULL DEFAULT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `shop` (`shop`),
KEY `status` (`status`)
);
CREATE TABLE IF NOT EXISTS `agency_shop_points` (
`id` INT NOT NULL AUTO_INCREMENT,
`shop` VARCHAR(64) NOT NULL,
`kind` VARCHAR(16) NOT NULL,
`x` DOUBLE NOT NULL,
`y` DOUBLE NOT NULL,
`z` DOUBLE NOT NULL,
`h` DOUBLE NOT NULL DEFAULT 0,
`category` VARCHAR(40) NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `shop` (`shop`)
);
CREATE TABLE IF NOT EXISTS `agency_shop_ledger` (
`id` INT NOT NULL AUTO_INCREMENT,
`shop` VARCHAR(64) NOT NULL,
`kind` VARCHAR(24) NOT NULL,
`amount` INT NOT NULL DEFAULT 0,
`note` VARCHAR(160) NULL DEFAULT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `shop` (`shop`)
);
-- What admins change with /ashops: catalogs and store settings, laid over config.lua.
CREATE TABLE IF NOT EXISTS `agency_shop_overrides` (
`kind` VARCHAR(16) NOT NULL,
`id` VARCHAR(64) NOT NULL,
`data` LONGTEXT NULL,
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`kind`, `id`)
);
-- Every sale of an owned store or station, line by line: the owner's analytics.
CREATE TABLE IF NOT EXISTS `agency_shop_sales` (
`id` INT NOT NULL AUTO_INCREMENT,
`shop` VARCHAR(64) NOT NULL,
`sale` VARCHAR(24) NOT NULL,
`item` VARCHAR(64) NOT NULL,
`qty` INT NOT NULL DEFAULT 0,
`amount` INT NOT NULL DEFAULT 0,
`account` VARCHAR(16) NOT NULL DEFAULT 'cash',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `shop_time` (`shop`, `created_at`)
);
+Полезно знать
Agency-Shops работает сразу после добавления строки ensure. Перед первым запуском стоит обратить внимание на четыре момента: порядок запуска, базу данных, права администратора и другие скрипты магазинов, ограблений или топлива.
- Порядок запуска и OneSync
- Укажите ensure Agency-Shops после фреймворка, инвентаря и oxmysql в server.cfg. OneSync должен быть включен, а oxmysql обязателен.
- База данных
- Таблицы agency_shop_owned, agency_shop_orders, agency_shop_points, agency_shop_ledger, agency_shop_overrides и agency_shop_sales создаются при первом запуске. install/agency_shop.sql требуется только в том случае, если пользователю базы данных запрещено создавать таблицы, а Config.AutoApplySql = false отключает автоматическое создание.
- Доступ администратора
- Администраторами являются игроки с ACE agency.shop, group.admin или group.superadmin, либо с группой из Config.Admin.Groups. add_ace group.admin agency.shop allow открывает панель /ashops для вашей группы администраторов. На standalone-серверах Config.Standalone.admins содержит список лицензий.
- Другие скрипты магазинов
- Удалите записи 24/7 из qb-shops, esx_shops или магазинов ox_inventory, иначе за одним прилавком окажутся два кассира. Отключите qb-storerobbery и похожие скрипты или установите Config.Robbery.Enabled = false. Если скрипт топлива использует собственные колонки, отключите взаимодействие с ними или задайте Config.GasStations.Enabled = false.
?Частые вопросы
Куда указывать вебхуки Discord?
В config_server.lua для Ownership, Register, Deliveries, Shoplift и Robbery. Этот файл никогда не отправляется игрокам.
Требуется ли Agency Phone?
Нет. При запущенном agency-phone оплата через Agency Pay на кассе и заправке предлагается автоматически. Без него игроки платят наличными или картой.