Agency Docs
QBESXStandalone

Agency-Shops 安装

地图上的所有 24/7、LTD、Rob's Liquor、五金店、Ammu-Nation 和加油站整合至一个 FiveM 脚本中。自动检测 QBCore、QBox 和.

v1.0.0付费5 页面自 October 19, 2026, 20:00 CEST

01安装

  1. 1Extract Agency-Shops into your resources folder
  2. 2确保服务器已启用 OneSync
  3. 3Add ensure Agency-Shops to server.cfg, after your framework, your inventory and oxmysql
  4. 4启动服务器:数据库表会在首次启动时自动创建 (仅当数据库用户无建表权限时才需要 install/agency_shop.sql)
  5. 5添加 add_ace group.admin agency.shop allow 以向管理员授予 /ashops 面板权限
  6. 6正在运行 qb-shops、esx_shops 或 ox_inventory shops?请移除其 24/7 条目,否则同一柜台后会出现两名收银员
  7. 7正在运行 qb-storerobbery 或类似脚本?请关闭其中一个,或设置 Config.Robbery.Enabled = false
  8. 8正在运行带有独立油机的燃油脚本?请关闭其油机交互,或设置 Config.GasStations.Enabled = false
  9. 9独立模式:填写 Config.Standalone 中的资金与物品配置 (请参见配置页面)
  10. 10可选:将你的 Discord webhook 地址填入 config_server.lua,该文件绝不会发送给玩家

02依赖项

  • oxmysql(必需)
  • OneSync (必需)
  • QBCore、QBox 或 ESX(可选,没有框架时以独立模式运行)
  • 背包系统 (可选: 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`) );

+值得了解

添加 ensure 配置后 Agency-Shops 即可正常运行。首次启动前建议注意以下四点:启动顺序、数据库、管理员权限,以及其他商店、抢劫或燃油脚本。

启动顺序与 OneSync
在 server.cfg 中将 ensure Agency-Shops 放置在框架、背包系统和 oxmysql 之后。必须开启 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 面板权限授予您的管理员组。在独立服务器上,Config.Standalone.admins 列出了相关许可证。
其他商店脚本
请移除 qb-shops、esx_shops 或 ox_inventory 商店中的 24/7 条目,否则会有两个收银员站在同一个柜台后。关闭 qb-storerobbery 及类似脚本,或者设置 Config.Robbery.Enabled = false。对于自带加油枪的加油脚本,请关闭其加油枪交互或设置 Config.GasStations.Enabled = false。

?常见问题

Discord webhook 应该配置在哪里?

配置在 config_server.lua 中,适用于 Ownership、Register、Deliveries、Shoplift 和 Robbery。该文件绝不会发送给玩家。

我需要 Agency Phone 吗?

不需要。当 agency-phone 运行时,结账处和加油机旁会自动提供 Agency Pay。如果没有它,玩家可以使用现金或银行卡付款。

看完本页仍未解决?接下来由我们的支持团队接手。