跳转至

LimbHealth

《肢体血量-医疗护理•超多自定义》 扩展原版单血条为身体各部位独立血条系统

简介

LimbHealth 把玩家身体拆分成 8 个独立部位——头、躯干、左/右臂、左/右腿、左/右脚——每个部位拥有独立的血量与上限:

  • 精确命中判定:箭矢、近战、爆炸等伤害会根据命中位置作用到对应部位
  • 外部模组协作:可在调用 Hurt() 之前预设下次命中部位
  • 自定义药水效果/buff:内置效果:出血(BLEEDING)、止痛(PAINKILLER)、健胃消食片(STOMACH_STRENGTHENING_TABLET

入口

入口类 状态
服务端 LimbHealthServerAPI
客户端 LimbHealthClientAPI 暂未开放,可联系作者,Q 群 589523062

快速开始

from LimbHealthScripts.server.LimbHealthServerAPI import LimbHealthServerAPI

api = LimbHealthServerAPI
posTypeEnum = api.getPosTypeEnum()

# 直接修改某部位的血量
api.setLimbHealth(playerId, posTypeEnum.HEAD, 5.0, isFromHurt=False)

# 查询某部位当前血量
hp = api.getLimbHealth(playerId, posTypeEnum.HEAD)

# 预设下一次命中部位(外部模组在 Hurt() 之前调用)
api.setNextDamageHitPart(playerId, posTypeEnum.LEFT_LEG)
# ... 之后立即 Hurt(),伤害将作用到左腿

# 监听肢体血量变化
def onLimbHealthUpdate(event):
    print("{}{} 血量: {} -> {}".format(
        event.getPlayerId(),
        event.getUpdatePosType().getValue(),
        event.getOldHealth(),
        event.getNewHealth(),
    ))

api.registerLimbHealthUpdateEventHandler(onLimbHealthUpdate)

接下来