Skip to content

Conditions, Targeters & Placeholders

MythicMobs 条件判断、目标选择器和占位符,用于技能逻辑的精细控制。

Conditions

6 个条件,主要围绕碰撞箱和骑乘状态:

Condition说明参数检查对象
hitbox碰撞箱名匹配hitbox (字符串)技能变量 hitbox
hitboxIsSubHitbox是否为子碰撞箱技能变量 hitbox 是否存在
modelIsDriving实体是否在驾驶目标实体
modelIsRiding实体是否在乘坐(非驾驶)目标实体
modelHasDriver模型是否有驾驶员施法者实体
modelHasPassengers模型是否有乘客modelId, seat, mode施法者实体

使用示例

yaml
# 仅当碰撞箱为 "head" 时触发
Skills:
  - damage{amount=10} @trigger ~onHit ?hitbox{hitbox=head}

# 仅当有驾驶员时执行
Skills:
  - message{msg="有人在开!"} @self ?modelHasDriver

# 检查特定座位是否有乘客(AND 模式:所有座位都有人)
Skills:
  - skill{s=full_party} @self ?modelHasPassengers{seat=seat_1,seat_2;mode=AND}

modelHasPassengers 详解

参数类型说明
modelIdString目标模型(null = 所有活跃模型)
seat / pbone / pString座位 ID(逗号分隔多个)
modeAND / ORAND = 所有座位都有人;OR = 任一座位有人

Targeters

4 个目标选择器,用于定位骑乘关系中的实体:

Targeter说明参数返回
@modelDriver施法者的驾驶员主骑乘模型的驾驶员实体
@modelPassengers指定座位的乘客modelId, seat座位上的乘客实体列表
@mountedModel施法者骑乘的模型主人施法者所骑乘的模型拥有者实体
@modelPart骨骼部件位置骨骼名骨骼世界坐标位置

使用示例

yaml
# 对驾驶员施加效果
Skills:
  - potion{type=SPEED;duration=100} @modelDriver

# 对所有 seat_1 乘客发送消息
Skills:
  - message{msg="你坐在座位1!"} @modelPassengers{seat=seat_1}

# 对骑乘的坐骑主人造成伤害
Skills:
  - damage{amount=5} @mountedModel

@modelPassengers 详解

参数类型说明
modelIdString目标模型(null = 所有活跃模型)
seat / pbone / pString座位 ID(逗号分隔);必填,为空返回空列表

Placeholders

1 个占位符,用于获取模型运行时数据:

Placeholder说明返回值
caster.model.yaw施法者模型的偏航角Float(角度)

使用示例

yaml
# 在技能中使用模型朝向
Skills:
  - projectile{angle=<caster.model.yaw>}