骑乘 AI(jockeys)

基本信息

属性 值
类 EntityAIRider(骑手)+ EntityAIRiderTarget(被骑者目标跟随)+ EntityAIAttackOnCollidePassive(被骑者的攻击)
互斥位 MOVEMENT + FACING(rider);TARGET_BIT(rider_target)
优先级 getPassivePriority

功能

  • EntityAIRider:每 50+ tick 搜索 16×8×16 范围内的 mount,靠近到 (width*2)^2 + target.width 距离后 mountEntity。
  • EntityAIRiderTarget:当自己身上有骑手且骑手有攻击目标时,把目标复制到自己。startExecuting 时若自己没有攻击 AI,会临时添加 EntityAIAttackOnCollidePassive(鸡 1.6,否则 1.4 速度,长记忆)。
  • EntityAIAttackOnCollidePassive:参考原版 EntityAIAttackOnCollide 但允许被分配给通常无 attackDamage 属性的被动生物(鸡、牛、羊);用 BaseAttributeMap 注入 attackDamage 属性并通过 EntityLivingBase.attackEntityAsMob 实现。

触发概率

  • rider_list 与 rider_list_small 中的生物以 _rider_chance(默认 0.1)概率获得 rider AI
  • mount_list 与 mount_list_small 中的生物总是获得 EntityAIRiderTarget

resetTask

EntityAIRiderTarget.resetTask 会移除临时注入的 EntityAIAttackOnCollidePassive。

适用场景

玩家在堡垒遗迹看到一只蜘蛛背上骑着骷髅,这是 SpecialMobs 模板配合 Special AI 的 jockey 系统生成的。Special AI 单独运行只会让蜘蛛"看见骑手有目标就跟过去打"。

相关条目