Death·Exports

Exports

DS-Death 提供了几个可从任意 script 触发的 net event、三个用于状态查询与就近救援的客户端 export,以及一组配置层面的 hook,可在死亡、救援、重生等时机接入你自己的触发逻辑。

事件

事件是最省事的集成方式:从你的 ambulance job、手机、小游戏或管理工具中触发即可。

DS-Death:revive

救起本地玩家(从服务端触发时则救起目标玩家)。可用它把 DS-Death 接入现有的救援流程,例如 ESX ambulance job 的 esx_ambulancejob:revive handler。

Lua
-- Client side
TriggerEvent('DS-Death:revive')

-- Server side (revives the player whose source is passed in)
TriggerClientEvent('DS-Death:revive', source)

DS-Death:lockAnim

锁定或解锁 DS-Death 的死亡动画。当其他系统(ambulance job、自定义救援小游戏)想播放自己的动画,同时让玩家保持在 DS-Death 的倒地状态时很有用。传 true 锁定,传 false 解除。

Lua
-- Client side
TriggerEvent('DS-Death:lockAnim', true)   -- lock the death animation
TriggerEvent('DS-Death:lockAnim', false)  -- release it

-- Server side (target a specific player)
TriggerClientEvent('DS-Death:lockAnim', source, true)

Exports

三个 export 都运行在客户端。状态查询接受一个可选的 server ID:不传参数即查询本地玩家。

ReviveNear

client

在本地玩家周围寻找倒地玩家,并尝试救起最近的一个。物品检查、进度条和救援事件都由 script 处理,你只需把这个 export 接到你喜欢的交互触发方式上(使用物品、target 选项、按键绑定)。

函数签名

Lua
exports['DS-Death']:ReviveNear()

示例

Lua
-- e.g. from a usable-item handler or a target option
exports['DS-Death']:ReviveNear()

isPlayerDead

client

返回指定玩家是否已完全死亡(正在等待重生)。传入 server ID 可查询其他玩家;不传则检查本地玩家。

函数签名

Lua
exports['DS-Death']:isPlayerDead(serverId)

参数

名称类型说明
serverId?number要查询玩家的 server ID。默认为自己。

返回值

boolean

玩家完全死亡时为 true,否则为 false。

示例

Lua
if exports['DS-Death']:isPlayerDead() then
  -- block phone, inventory, etc.
end

isPlayerKnocked

client

返回指定玩家当前是否处于倒地状态(已倒下但仍可救援)。用法与 isPlayerDead 相同:server ID 可选,默认为自己。

函数签名

Lua
exports['DS-Death']:isPlayerKnocked(serverId)

参数

名称类型说明
serverId?number要查询玩家的 server ID。默认为自己。

返回值

boolean

玩家倒地并等待救援时为 true。

示例

Lua
local target = GetClosestPlayer()
if exports['DS-Death']:isPlayerKnocked(GetPlayerServerId(target)) then
  -- show "Revive" prompt
end

配置 hook

除了事件和 export,config.lua 还带有几个空函数,你可以在不触碰 escrow 核心的前提下扩展它们。把你自己的触发器或 export 写进其中任意一个即可。

  • OnKnockedOnDeathOnReviveOnRespawn:在对应的玩家状态切换时触发。
  • CanDie:返回 false 可完全屏蔽死亡循环(例如在小游戏、镭射战回合或 PvP 竞技场中)。
  • EMSCall:接收濒死玩家的坐标;把它转给你手机的紧急呼叫触发器。
  • Notification:替换成你自己的通知系统;参数是一段文字消息。
  • CustomProgress / StopCustomProgress:当配置中 Progressbar = 'CUSTOM' 时,接入任意进度条(ox_lib、自定义 UI 等)。
  • DisabledKeys:玩家完全死亡期间被禁用的操作。可覆盖它来保留你自己的按键。
组合使用 hook
hook 和 export 可以很好地配合:在 OnKnocked 内调用 exports['DS-Death']:isPlayerKnocked(),即可在不轮询的情况下限制其他系统(手机、inventory、无线电)。

还是卡住了?

在我们的 Discord 开个 ticket,我们来帮你。

加入 Discord →