主题
MythicMobs 条件使用说明
重要提示: 条件(Conditions)必须在
Conditions字段中使用,而不是在Skills中!
正确的用法
基本语法
yaml
MobName:
Type: ZOMBIE
Health: 100
Skills:
- skill{s=AttackSkill} @target ~onTimer:100
AttackSkill:
Conditions:
- hna-hasbuff{key="重伤"} true # ✅ 正确:在 Conditions 中
Skills:
- hna-damage{amount=200} @target
- message{m="&c重伤目标受到额外伤害!"} @target❌ 错误示例
yaml
# 错误!条件不能直接写在 Skills 中
AttackSkill:
Skills:
- hna-hasbuff{key="重伤"} true # ❌ 错误!
- hna-damage{amount=200} @target条件的三种使用方式
1. 内联条件(Inline Conditions)
最常用的方式,直接在技能行后面添加条件:
yaml
FireballSkill:
Skills:
- projectile{...} @target ~onTimer:100 ?hna-hasbuff{key="易伤"}
# 只有目标有"易伤" Buff 时才发射火球2. 技能级条件(Skill-Level Conditions)
在技能定义中使用 Conditions 字段:
yaml
PowerfulAttack:
Conditions:
- hna-hasbuff{key="力量提升"} true
- hna-attribute{attr="attack";value=>100} true
Skills:
- hna-damage{amount=500} @target
- message{m="&c强力一击!"} @target3. 技能触发器条件(Trigger Conditions)
在怪物的技能触发器中使用:
yaml
Boss:
Type: ZOMBIE
Health: 1000
Skills:
- skill{s=EnrageSkill} @self ~onDamaged ?hna-attribute{attr="health";value=<500}
# 只有生命值低于 500 时才触发狂暴完整示例
示例 1:条件性伤害
yaml
ConditionalDamage:
Conditions:
- hna-hasbuff{key="重伤"} true
Skills:
- hna-damage{amount=200} @target
- message{m="&c重伤目标受到额外伤害!"} @target示例 2:多条件判断
yaml
ComboAttack:
Conditions:
- hna-hasbuff{key="眩晕"} true
- hna-attribute{attr="health";value=>50} true
Skills:
- hna-damage{amount=300} @target
- message{m="&c连击成功!"} @target示例 3:条件分支
yaml
# 技能 A:目标有 Buff 时执行
SkillA:
Conditions:
- hna-hasbuff{key="重伤"} true
Skills:
- hna-damage{amount=200} @target
# 技能 B:目标没有 Buff 时执行
SkillB:
Conditions:
- hna-hasbuff{key="重伤"} false
Skills:
- hna-damage{amount=100} @target
# 主技能:调用分支
MainSkill:
Skills:
- skill{s=SkillA} @target
- skill{s=SkillB} @target示例 4:内联条件(推荐)
yaml
SmartAttack:
Skills:
# 如果目标有重伤,造成 200 伤害
- hna-damage{amount=200} @target ?hna-hasbuff{key="重伤"}
# 如果目标没有重伤,造成 100 伤害
- hna-damage{amount=100} @target ?!hna-hasbuff{key="重伤"}元素反应系统(正确版本)
yaml
# 火属性攻击
FireAttack:
Skills:
- hna-damage{amount=100;type=fire} @target
- hna-buff{key="fire_mark";time=100} @target
# 如果目标有冰标记,触发蒸发反应
- skill{s=VaporizeReaction} @target ?hna-hasbuff{key="ice_mark"}
# 冰属性攻击
IceAttack:
Skills:
- hna-damage{amount=100;type=ice} @target
- hna-buff{key="ice_mark";time=100} @target
# 如果目标有火标记,触发蒸发反应
- skill{s=VaporizeReaction} @target ?hna-hasbuff{key="fire_mark"}
# 蒸发反应
VaporizeReaction:
Skills:
- hna-damage{amount=200;type=vaporize} @target
- hna-removebuff{key="fire_mark"} @target
- hna-removebuff{key="ice_mark"} @target
- effect:particles{p=EXPLOSION_LARGE;a=20} @target
- message{m="&e⚡ 蒸发反应!"} @targetDOT 组合反应(正确版本)
yaml
# 施加中毒
ApplyPoison:
Skills:
# 如果目标流血,施加剧毒
- skill{s=DeadlyPoison} @target ?hna-hasbuff{key="bleed"}
# 如果目标不流血,施加普通中毒
- hna-dot{key="poison";repeats=5;interval=20;amount=20} @target ?!hna-hasbuff{key="bleed"}
# 剧毒效果
DeadlyPoison:
Skills:
- hna-dot{key="deadly_poison";repeats=10;interval=20;amount=50} @target
- hna-removebuff{key="bleed"} @target
- effect:particles{p=SPELL_WITCH;a=30} @target
- message{m="&5⚠ 剧毒侵蚀!"} @target条件操作符
逻辑操作符
?condition- 条件为真时执行?!condition- 条件为假时执行?condition1 ?condition2- 多个条件都为真时执行(AND)
比较操作符(用于属性判断)
>=- 大于等于>- 大于<=- 小于等于<- 小于==- 等于!=- 不等于
常见错误
❌ 错误 1:在 Skills 中使用条件
yaml
# 错误!
MySkill:
Skills:
- hna-hasbuff{key="buff"} true
- hna-damage{amount=100} @target正确写法:
yaml
MySkill:
Conditions:
- hna-hasbuff{key="buff"} true
Skills:
- hna-damage{amount=100} @target或使用内联条件:
yaml
MySkill:
Skills:
- hna-damage{amount=100} @target ?hna-hasbuff{key="buff"}❌ 错误 2:条件语法错误
yaml
# 错误!缺少 true/false
Conditions:
- hna-hasbuff{key="buff"}正确写法:
yaml
Conditions:
- hna-hasbuff{key="buff"} true❌ 错误 3:混淆技能和条件
yaml
# 错误!hna-hasbuff 是条件,不是技能
Skills:
- hna-hasbuff{key="buff"}
- hna-damage{amount=100} @target