01客户端导出
| 导出 | 说明 |
|---|---|
HasKeys(plate) | 当玩家持有该车牌的钥匙时返回 true:车主钥匙、共享钥匙或临时钥匙。工作车辆通过车型解锁,不计入此处。 |
GetKeys() | 玩家持有的所有钥匙列表,格式为 { plate, kind }。kind 可以是 owner、shared 或 temp。 |
ToggleLock(vehicle) | 锁定或解锁玩家持有钥匙的车辆,使用与 G 相同的动画和检查。若玩家未在车辆内,则使用范围内最近的车辆。 |
ToggleEngine() | 启动或停止玩家当前驾驶车辆的引擎,功能类似 U。 |
OpenMenu() | 打开钥匙环,例如从环形菜单或手机应用中打开。 |
CloseMenu() | 关闭钥匙环,并将鼠标控制权交还给游戏。 |
IsMenuOpen() | 钥匙环打开时返回 true。 |
useLockpick() | 开始尝试撬开玩家前方的车辆,或在驾驶座上尝试热启动。适用于 ox_inventory 物品:client = { export = 'Agency-Vehiclekeys.useLockpick' }。 |
02服务端导出
| 导出 | 说明 |
|---|---|
GiveKeys(source, plate, mode, hours) | 发放一把钥匙。mode 为 'temp'(默认值)时发放临时钥匙,可选设置有效小时数;'perm' 则发放已保存的钥匙。可以使用 source 或 identifier。 |
RemoveKeys(source, plate) | 移除共享钥匙或临时钥匙。若成功移除钥匙,则返回 true。 |
HasKeys(source, plate) | 当玩家持有该车牌的钥匙时返回 true,包括附近车辆的工作车辆钥匙。 |
SetOwner(source, plate) | 将玩家设为某个车牌的车主,适用于独立服务器上的车库和商店。之前的车主将失去钥匙。 |
RemoveOwner(plate) | 移除此脚本为某个车牌保存的车主信息。 |
GetOwner(plate) | 车主的 identifier 及其来源:对于 QBCore、Qbox 或 ESX 的自有车辆,来源为 'framework';对于由此脚本保存的车主,来源为 'store'。 |
GetKeyHolders(plate) | 所有持有该车牌钥匙的其他玩家,以 { identifier, kind, name, expires } 列表形式返回。 |
SetVehicleLocked(vehicle, locked) | 为所有人锁定或解锁车辆,不检查钥匙。供需要打开车辆的脚本使用。 |
IsVehicleLocked(vehicle) | 车辆已锁定时为 True。 |
GetFramework() | 脚本检测到的框架:qbcore、esx 或 standalone。 |
03事件
| 名称 | 端 | 说明 |
|---|---|---|
Agency:Keys:GiveServer | 服务端 | 为某个车牌申请临时钥匙,Agency Garage 和 Agency Vehicleshop 也会这样做。通过客户端传入车牌触发。车辆必须在玩家旁边,或属于该玩家。 |
qb-vehiclekeys:server:AcquireVehicleKeys | 服务端 | 以相同方式处理 qb-vehiclekeys 的钥匙事件,使为 qb-vehiclekeys 制作的车库和商店继续正常工作。 |
vehiclekeys:client:SetOwner | 客户端 | 许多车库和商店在生成车辆后触发的客户端事件。服务器执行相同检查后,会为该车牌发放临时钥匙。 |
qb-vehiclekeys:client:AddKeys | 客户端 | 以相同方式处理 qb-vehiclekeys 用于发放钥匙的客户端事件。 |
simple_carkeys:client:toggleEngine | 客户端 | 使用钥匙启动或关闭引擎时在客户端触发,使 Agency-Hud 等 HUD 能够跟踪引擎状态。 |
+值得了解
Agency-Vehiclekeys V2 提供 exports,并支持常见的钥匙事件,因此车库、商店、职业和抢劫脚本都可以发放、检查和收回钥匙。
- 发放和检查钥匙
- GiveKeys 会发放临时钥匙或已保存的钥匙,RemoveKeys 会收回钥匙,HasKeys 会检查是否持有钥匙。这些功能可在服务器端通过 source 或标识符使用,也可在客户端为玩家本人使用。
- 独立车库的车主设置
- 独立服务器没有用于记录已拥有车辆的框架数据表。SetOwner 可将玩家设为某个车牌的车主,RemoveOwner 可移除车主,GetOwner 可读取车主信息。
- 其他脚本使用的事件
- Agency:Keys:GiveServer、qb-vehiclekeys:server:AcquireVehicleKeys、vehiclekeys:client:SetOwner 和 qb-vehiclekeys:client:AddKeys 都会在通过相同检查后发放临时钥匙:车辆必须在玩家旁边,或归玩家所有。
?常见问题
如何从我的车库脚本中发放钥匙?
车辆生成后,在服务器端调用 exports['Agency-Vehiclekeys']:GiveKeys(source, plate),或在客户端触发 TriggerServerEvent('Agency:Keys:GiveServer', plate)。为 qb-vehiclekeys 编写的脚本无需更改。
