跳转至

PlayerRevive 类型与事件

汇总 PlayerRevive 暴露给外部的事件类、枚举与数据类型。


ApiEvents

可注册事件的枚举集合,通过 PlayerReviveServerAPI.getApiEvents() 获取。

class PlayerReviveServerAPI.ApiEvents(BaseEnum):
    ReviveNeededUpdateEvent      # 玩家倒地状态切换
    ReviveMaxHealthUpdateEvent   # 倒地血量上限更新
    ReviveHealthUpdateEvent      # 倒地血量数值更新

每个枚举项是 ApiEvents.EnumObject,可通过 .getEventCls() 取出对应的事件类。注册事件时传入枚举项或事件类本身均可。ApiEvents 继承自 BaseEnum,可调用 values() / valueOf(name) 反射访问。


ReviveNeededUpdateEvent

玩家进入或退出「倒地」状态时触发。

属性 类型 说明
playerId str 状态发生变化的玩家 ID
isNeedRevive bool True 表示进入倒地状态,False 表示退出(被救援 / 死亡 / 重生)
damagerId str | None 触发倒地的实体 ID(若是退出倒地则为 None

Getter

方法 返回
getPlayerId() str
getIsNeedRevive() bool
getDamagerId() str —— 注:源码声明返回 str,但实际可能为 None(构造时允许 None

示例

def onReviveNeededUpdate(event):
    if event.getIsNeedRevive():
        print("玩家 {} 进入倒地状态,凶手: {}".format(event.getPlayerId(), event.getDamagerId()))
    else:
        print("玩家 {} 退出倒地状态".format(event.getPlayerId()))

api.registerEventHandler(
    api.getApiEvents().ReviveNeededUpdateEvent,
    onReviveNeededUpdate,
)

ReviveMaxHealthUpdateEvent

玩家的倒地血量上限发生变化时触发。

属性 类型 说明
playerId str 玩家 ID
newMaxHealth float 新的倒地血量上限

Getter

方法 返回
getPlayerId() str
getNewMaxHealth() float

ReviveHealthUpdateEvent

玩家的倒地血量数值发生变化时触发。

属性 类型 说明
playerId str 玩家 ID
oldHealth float 变化前的倒地血量
newHealth float 变化后的倒地血量

Getter

方法 返回
getPlayerId() str
getOldHealth() float
getNewHealth() float

Note

newHealth == 0 且玩家此前已处于倒地状态,则随后会触发死亡逻辑(具体取决于内部状态机)。订阅 ReviveHealthUpdateEvent 用于显示血条变化或预警,订阅 ReviveNeededUpdateEvent 用于做最终的死亡 / 倒地判定。


PlayerReviveEventPriorityEnum

事件处理器执行优先级。slot 越小越先触发。

from PlayerReviveScripts.common.enum.PlayerReviveEventPriorityEnum import PlayerReviveEventPriorityEnum
常量 slot 触发顺序
LOWEST 0 最先触发
LOW 1
NORMAL 2 默认值
HIGH 3
HIGHEST 4 最晚触发

ApiEvents.EnumObject

每个 ApiEvents 成员的实际类型。

方法 返回
getEventCls() type —— 对应的事件类(如 ReviveNeededUpdateEvent