跳到正文

Player Vehicle Desync Fix

修复服务器与客户端之间 player.hasVehicle() 的不同步问题。

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

在服务端调用 ServerPlayerEntity.startRiding(vehicle) 时,如果该载具距离很远甚至尚未加载,就会出现异常行为,例如:

  • 玩家会直接传送到载具处骑乘
  • 在客户端视角下玩家可以自由走动,而服务端仍认为玩家正在骑乘载具。这会导致玩家无法与距离载具较远的其他对象交互,因为在服务端上它们处于不可达距离。此外,按下下车按钮会让玩家在载具旁边下车,而在客户端视角下看起来像是传送到了载具处。
  • 如果载具在客户端侧正处于传送过程中(服务端侧的传送可以立即处理),而玩家在客户端侧骑乘到它上面,该载具的传送实际上会在该点停止,玩家可能会卡在方块中间。

而这个模组通过做两件事解决了该问题:

  • 当服务端检测到玩家骑乘状态不同步时(服务端认为玩家正在骑乘,而客户端不是),服务端会持续发送骑乘状态同步数据包。
  • 客户端收到该数据包后,会在实际调用 ClientPlayerEntity.startRiding(entity) 之前检查目标载具是否确实在玩家附近,以防止出现不想要的副作用。

常见问题

Player Vehicle Desync Fix 支持哪些 Minecraft 版本?

Player Vehicle Desync Fix 支持 Minecraft Java 版 1.17.1,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。

Player Vehicle Desync Fix 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

yunseong_hwang 的其他作品

查看全部 →