主题
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 详解
| 参数 | 类型 | 说明 |
|---|---|---|
modelId | String | 目标模型(null = 所有活跃模型) |
seat / pbone / p | String | 座位 ID(逗号分隔多个) |
mode | AND / OR | AND = 所有座位都有人;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 详解
| 参数 | 类型 | 说明 |
|---|---|---|
modelId | String | 目标模型(null = 所有活跃模型) |
seat / pbone / p | String | 座位 ID(逗号分隔);必填,为空返回空列表 |
Placeholders
1 个占位符,用于获取模型运行时数据:
| Placeholder | 说明 | 返回值 |
|---|---|---|
| caster.model.yaw | 施法者模型的偏航角 | Float(角度) |
使用示例
yaml
# 在技能中使用模型朝向
Skills:
- projectile{angle=<caster.model.yaw>}