01安装
- 1将 Agency-Vehiclekeys 放入 resources 文件夹
- 2在 server.cfg 中添加 ensure Agency-Vehiclekeys,放在你的框架、oxmysql 和物品栏之后
- 3停止使用其他密钥脚本,例如 qb-vehiclekeys。脚本会识别它们的密钥事件,因此车库和商店仍可正常运行
- 4撬锁工具物品:大多数 QBCore 服务器已经包含 lockpick 和 advancedlockpick,否则请参阅 install/items_qbcore.lua、install/items_ox_inventory.lua 或 install/items_esx.sql
- 5可选:添加 add_ace group.admin agency.vehiclekeys.admin allow,以启用 /keys 的 Admin 和 Settings 选项卡
- 6从 V1 更新:替换旧文件夹并使用新的 config.lua。V1 中发放的钥匙(simple_carkeys_shared)会在首次启动时迁移
02依赖项
无需任何依赖QBCore、QBox 或 ESX(可选,没有框架时以独立模式运行)oxmysql(可选,不使用时,密钥会保存在服务器的键值存储中)用于撬锁工具的物品栏(可选:ox_inventory、qs-inventory、qb-inventory 及其分支,或 ESX)派遣脚本(可选:ps-dispatch、cd_dispatch、qs-dispatch、rcore_dispatch、core_dispatch、tk_dispatch 或 lb-tablet)Agency-Notify(可选,使用经典 V1 风格的消息)
03SQL 文件
可选:资源启动时会自动创建这些数据表。只有在手动配置数据库时才需要导入此文件:
-- Agency Vehiclekeys V2
-- Optional: the script creates this table by itself on the first start when
-- oxmysql runs. Run it by hand only if your database user may not create tables.
CREATE TABLE IF NOT EXISTS `agency_vehiclekeys` (
`plate` VARCHAR(16) NOT NULL,
`identifier` VARCHAR(96) NOT NULL,
`kind` VARCHAR(12) NOT NULL DEFAULT 'shared',
`holder` VARCHAR(64) NULL DEFAULT NULL,
`granted_by` VARCHAR(96) NULL DEFAULT NULL,
`model` VARCHAR(32) NULL DEFAULT NULL,
`created` INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`plate`, `identifier`),
KEY `identifier` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+值得了解
在 server.cfg 中添加 ensure 行后,Agency-Vehiclekeys V2 即可运行。首次启动前,建议检查以下五项:其他钥匙脚本、撬锁工具、数据库、管理员和工作钥匙,以及从 V1 迁移的步骤。
- 其他关键脚本
- 停用 qb-vehiclekeys、qbx_vehiclekeys 等类似脚本,两个钥匙脚本会争夺相同车辆。脚本已适配这些脚本的钥匙事件,因此车库和商店仍可正常工作。如果某个脚本仅在客户端调用 exports['qb-vehiclekeys']:HasKeys(plate),只需将名称改为 Agency-Vehiclekeys。
- 撬锁工具
- Config.Lockpick.items 用于指定物品名称,默认值为 advancedlockpick 和 lockpick。大多数 QBCore 服务器都拥有这两种物品。其他物品栏对应的条目位于 install/items_qbcore.lua、install/items_ox_inventory.lua 和 install/items_esx.sql 中。在物品栏中使用该物品即可开始尝试,按 H 也能进行相同操作。
- 数据库
- 使用 oxmysql 时,钥匙会保存到 agency_vehiclekeys 表中,该表由脚本自动创建。如果没有使用 oxmysql,钥匙数据会保存到服务器的键值存储中。只有当数据库用户没有创建表的权限时,才需要使用 install/agency_vehiclekeys.sql。
- 管理员和职业钥匙
- 管理员是拥有 ACE agency.vehiclekeys.admin、group.admin 或 group.superadmin 权限的玩家,也可以是 Config.AdminGroups 中指定的组。在独立服务器上,职业钥匙由 ACE 权限控制,例如 add_ace group.police agency.vehiclekeys.police allow。
- 从 V1 更新
- 用新文件夹替换旧文件夹,并使用新的 config.lua,V1 配置文件不兼容。首次启动时会接管 simple_carkeys_shared 中的钥匙。G 仍用于上锁,发动机控制键已从 M 改为 U,/givekey 和 /removekey 仍可使用。
?常见问题
支持哪些用于撬锁的物品栏?
支持 ox_inventory、qs-inventory、qb-inventory 及其分支版本,还有通过 Config.Inventory = 'auto' 自动检测的 ESX 物品栏。没有物品栏的独立服务器可以通过 Config.Standalone.itemCount 和 removeItem 接入自定义物品栏,也可以设置为让玩家无需物品即可尝试撬锁。
我的车库使用自己的表来存储已拥有的车辆,该怎么办?
将 Config.OwnedVehicles 设置为对应的表名,并设置车主和车牌对应的列名。默认使用带有 citizenid 列的 player_vehicles(QBCore、Qbox),以及带有 owner 列的 owned_vehicles(ESX)。
