骑乘 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 AImount_list与mount_list_small中的生物总是获得EntityAIRiderTarget
resetTask
EntityAIRiderTarget.resetTask 会移除临时注入的 EntityAIAttackOnCollidePassive。
适用场景
玩家在堡垒遗迹看到一只蜘蛛背上骑着骷髅,这是 SpecialMobs 模板配合 Special AI 的 jockey 系统生成的。Special AI 单独运行只会让蜘蛛"看见骑手有目标就跟过去打"。