飞行实体 - woshiermuqwq/mythic-chinese GitHub Wiki
令不可飞行的生物(如僵尸)可以在战斗时飞行以追逐玩家
[]
由于实体一般都会看向它的仇恨目标(当然高频激活 Look的话就不是"一般"了)
所以我们可以通过 Pitch 检测 Pitch(视角俯仰视角度)
以检测仇恨目标在施法者的上/下方, 随后使用 Velocity
同时, 施法者下落到地面会摔伤, 所以需要 Cancel Event 令施法者免疫摔伤
当然, 伤害调整 内设摔伤为0也行.
现在, 我们先让制作一个平平无奇的僵尸(尸壳), 以及放入4个技能
飞行实体:
Type: husk
Skills:
- skill:锁敌 @target ~onTimer:1
- skill:起飞 @target ~onTimer:1
- skill:降落 @target ~onTimer:1
- undisguise @self ~onTimer:1 ?onground
- auraremove{aura=fly} @self ~onTimer:1 ?onground ?hasaura{aura=fly}
- cancelevent{sync=true} ~ondamaged ?damagecause{c=fall}
每 1tick 向自身的仇恨目标激活技能组: 起飞/降落/锁敌
若着地则立刻取消自身的伪装(这里的伪装是用于制作视觉效果)与移除光环: Fly
受伤后取消伤害类型为摔伤的受伤事件.
锁敌:
TargetConditions:
- distance{d=<2} false
Conditions:
- onground false
Skills:
- propel{v=0.3}
- look{ho=false;i=true}
起飞:
Conditions:
- targets{a=>0}
- pitch{p=0to90} false
TargetConditions:
Skills:
- velocity{m=subtract;x=0;y=0.1;z=0} @self
- disguise{d=111} @self ?!hasaura{auraname=fly} ?!onground
- aura{auraname=fly;d=555555} @self ?!onground
降落:
Conditions:
- targets{a=>0}
- pitch{p=0to90}
- onblock{m=air}
TargetConditions:
- distance{d=>1}
Skills:
- disguise{d=111} @self ?!hasaura{auraname=fly} ?!onground
- aura{auraname=fly;d=555555} @self ?!onground
- velocity{m=add;x=0;y=-0.1;z=0} @self
技能组: 锁敌 的条件为:
与仇恨目标的距离大于1格方块
技能组: 起飞 的条件为:
Pitch(视角俯仰视角度)的数值在0~90之间
技能组: 降落 的条件为:
Pitch(视角俯仰视角度)的数值不在0~90之间
不在地面
三技能组的共同条件为:
已选取实体数量>1(意味着拥有仇恨目标)
技能组: 锁敌 将令施法者视角锁定仇恨目标, 且向目标冲刺(由于施法者无法在空中走动)
技能组: 起飞 会给予施法者向上的速度, 同时Pitch在0~90之间意味着是仰视
这时意味着目标在施法者上方, 向上的速度能让施法者“起飞”
技能组: 降落 会给予施法者向下的速度, Pitch不在0~90之间意味着俯视
这时意味着目标在施法者下方, 向下的速度会将施法者送回地面.
同时, 这里的伪装能让施法者看上去跟在飞一样
若起飞且不在地面, 则给予施法者一个很短暂的光环, 若施法者没有这个光环
则伪装成正在游泳的玩家, 光环的目的是防止重复激活
异步机制, 先伪装后给予光环
这里的 Velocity 之所以不用 set 模式, 是因为set会导致无法使用Lunge