搜索

0.29.8 鱼类水中跟随与骑乘

水路三维跟随、骑乘松键稳定与空格上浮,保留原生物理和外部模型控制。

修复的问题

鱼类水中跟随曾出现路径已接受但水平推进极弱、看起来主要上下浮沉的情况。原版鱼骑乘还被当作地面坐骑处理:保留下沉速度,并且只有落地才能用跳跃键,因此在水中无法主动上浮。

本版针对水中行为修复,不把鱼变成离水飞行宠物:

  • 鳕鱼、鲑鱼、热带鱼、河豚和蝌蚪在水中使用原生水路的下一路点,由 LiPet 提供三维移动速度;保留物理碰撞及绕障,不关闭 AI、不用传送模拟游泳。
  • 水路节点按鱼的占格宽度换算到可通行中心,避免追向方块边角而卡在水下墙边。
  • 水中跟随不再叠加地面停靠偏移,避免停在配置的停止距离之外。路径不可达时停止推进,不把水中路径失败自动转成岸上传送。
  • 鱼类水中战斗追击也使用同一路点移动逻辑,攻击可见性与 WG 检查仍保留。
  • 原版骑乘 AUTO 模式识别鱼类在水中游泳,松键不沿用累计下沉速度,支持水平移动与主动升降。
  • 新增显式 SWIMMING 骑乘模式,只在水中启用三维输入;离水后恢复原有地面物理。不会永久改写重力、原生体型或管理员设置。

骑乘操作

  • W/S/A/D:前后左右移动。
  • 空格:上浮,无需落地。
  • 朝下看并按 W:下潜;朝上看并按 W 也可爬升。
  • 松开移动和跳跃键:停止主动升降,避免持续下沉。
  • Shift:沿用下马操作,不作为下潜键。

配置

原版鱼使用默认 behavior.mount-type: AUTO 即可,无需逐个修改文件。若旧服曾强制写为 GROUND,需要管理员改回 AUTO,或使用 SWIMMING。更新不会覆盖已有值。

下面是合并到已有宠物节点的片段,不要覆盖原文件中的其他配置:

types:
  vanilla_cod:
    behavior:
      # AUTO 自动识别原版鱼;SWIMMING 强制水中三维骑乘;GROUND 地面;FLYING 飞行。
      mount-type: AUTO

骑乘速度、疾跑倍率及上浮力度继续使用 behavior.riding-speed、behavior.riding-sprint-multiplier 和 behavior.jump-velocity,不新增另一套硬编码速度。修改配置后可 /lipet reload。

本次原版骑乘修复不会抢占 ModelEngine 虚拟驾驶座;实际 ME 座位仍由 ModelEngine 控制,不能据此声称任意 MM/ME 鱼模型的驾驶控制都已验收。鱼离水后的生存、空气和岸上传送策略不在此次变更范围。

验证

  • 默认 API 与 Paper 26.2 API 构建各通过 480 项测试,无失败、错误或跳过。
  • 旧版 0.29.7 在隔离 Folia 水池复现:鳕鱼连续跟随 180 tick,水平位移约 0.4 格,仍距主人约 12 格。
  • 新版隔离 Paper 26.2 与 Folia 26.2 逐项检查上述五种鱼的水平跟随、停止距离、骑乘松键稳定、空格上浮及低头前进下潜,并验证水中绕墙。
  • 升降测试保持在水中完成,避免将离水自由落体误认为受控下潜。松键 40 tick 的高度变化不超过 0.05 格,未出现持续下沉。
  • 使用模拟骑手及服务端真实物理,不代表真人客户端动画和客户特定模型组合验收;正式服未重启。

更新

维护时正常停止 Minecraft 服务端,替换旧 LiPet Jar 并保留配置和数据库,启动确认 Enabling LiPet v0.29.8-SNAPSHOT。不要使用 PlugManX 热卸载;只执行 /lipet reload 无法替换已加载代码。不需要关闭电脑。

保留 0.29.7 原生宠物体型缩放、0.29.6 info 界面行数修复及之前的 WG、监守者和 Parro 功能。