Exports
DS-Death 提供了几个可从任意 script 触发的 net event、三个用于状态查询与就近救援的客户端 export,以及一组配置层面的 hook,可在死亡、救援、重生等时机接入你自己的触发逻辑。
事件
事件是最省事的集成方式:从你的 ambulance job、手机、小游戏或管理工具中触发即可。
DS-Death:revive
救起本地玩家(从服务端触发时则救起目标玩家)。可用它把 DS-Death 接入现有的救援流程,例如 ESX ambulance job 的 esx_ambulancejob:revive handler。
-- 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 解除。
-- 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 选项、按键绑定)。
函数签名
exports['DS-Death']:ReviveNear()示例
-- e.g. from a usable-item handler or a target option
exports['DS-Death']:ReviveNear()isPlayerDead
client返回指定玩家是否已完全死亡(正在等待重生)。传入 server ID 可查询其他玩家;不传则检查本地玩家。
函数签名
exports['DS-Death']:isPlayerDead(serverId)参数
| 名称 | 类型 | 说明 |
|---|---|---|
| serverId? | number | 要查询玩家的 server ID。默认为自己。 |
返回值
玩家完全死亡时为 true,否则为 false。
示例
if exports['DS-Death']:isPlayerDead() then
-- block phone, inventory, etc.
endisPlayerKnocked
client返回指定玩家当前是否处于倒地状态(已倒下但仍可救援)。用法与 isPlayerDead 相同:server ID 可选,默认为自己。
函数签名
exports['DS-Death']:isPlayerKnocked(serverId)参数
| 名称 | 类型 | 说明 |
|---|---|---|
| serverId? | number | 要查询玩家的 server ID。默认为自己。 |
返回值
玩家倒地并等待救援时为 true。
示例
local target = GetClosestPlayer()
if exports['DS-Death']:isPlayerKnocked(GetPlayerServerId(target)) then
-- show "Revive" prompt
end配置 hook
除了事件和 export,config.lua 还带有几个空函数,你可以在不触碰 escrow 核心的前提下扩展它们。把你自己的触发器或 export 写进其中任意一个即可。
- OnKnocked、OnDeath、OnRevive、OnRespawn:在对应的玩家状态切换时触发。
- CanDie:返回
false可完全屏蔽死亡循环(例如在小游戏、镭射战回合或 PvP 竞技场中)。 - EMSCall:接收濒死玩家的坐标;把它转给你手机的紧急呼叫触发器。
- Notification:替换成你自己的通知系统;参数是一段文字消息。
- CustomProgress / StopCustomProgress:当配置中
Progressbar = 'CUSTOM'时,接入任意进度条(ox_lib、自定义 UI 等)。 - DisabledKeys:玩家完全死亡期间被禁用的操作。可覆盖它来保留你自己的按键。
OnKnocked 内调用 exports['DS-Death']:isPlayerKnocked(),即可在不轮询的情况下限制其他系统(手机、inventory、无线电)。