tineseack_bk
本帖最后由 tineseack_bk 于 2020-4-22 20:52 编辑

如题,操作过程如下:
1. 将很远的(500+ 格)区块 A 加入 forceload 列表
2. tp 到该区块

结果:玩家下陷,比如传送至 y=5 会直接掉进虚空,看起来就像那地方的方块不存在一样……

单人多人均存在此情况。无论是直接 tp 坐标还是 tp 该区块的某个实体均有发生。有的时候 execute 该区块一个实体 run tp 玩家 ^ ^ ^1 这种命令甚至导致玩家直接飞上天
飞天那个说实话我怀疑是 /tp 本身的问题,比如我在 y=20 tp 到 y=25 它就会让我“往上走”然而不明原因使其并没有停止反而是让我继续往上,然而怎么想这都很扯淡

求分析及解决方法


1041159637
这个真的不是bug吗……
正常没被forceload 的区块会不会出现你描述的情况?

tineseack_bk
本帖最后由 tineseack_bk 于 2020-4-22 20:54 编辑
1041159637 发表于 2020-4-22 20:41
这个真的不是bug吗……
正常没被forceload 的区块会不会出现你描述的情况?

相应的我也测试过没有 forceload 的情况
结果是我很准确的到达了我要的 y 轴点
比如 tp x 5 z 我就确实到了 y=5 的地方即使那里是非空气
你可以测试一下,我的版本是 1.15.2,还没有试过其他的版本

小冰糖a
开飞行,飞起来再tp,应该不会掉
感觉你forceload失败了,或者说不完全成功

tineseack_bk
本帖最后由 tineseack_bk 于 2020-4-22 21:57 编辑
深拥v 发表于 2020-4-22 21:15
开飞行,飞起来再tp,应该不会掉
感觉你forceload失败了,或者说不完全成功

这是游戏地图没法这么干
我试过给 levitation 没用的,还会导致飞上天
如果是 “forceload” 失败又如何解释没有 forceload 反而正常呢




小冰糖a
tineseack_bk 发表于 2020-4-22 21:32
这是游戏地图没法这么干
我试过给 levitation 没用的,还会导致飞上天
如果是 “forceload” 失败又如何解 ...

你现在的状态:
玩家直接过去了然后下落
区块紧跟着完全加载
这时候玩家下落一定距离了
无force:
区块加载完了再把玩家丢过去
======
仅根据经验做出的设想

tineseack_bk
InitAuther97 发表于 2020-4-22 23:43
MC的设计很尿性,如果你仔细观察过一些现象,你会发现位移的计算客户端全权负责,服务器只管速度是不是过快 ...

果然如此,和我一开始遇到这个问题时候的想法一样
所以解决方法是给客户端一个适合的时间加载地形么
这个时间应该是 >1tick 的吧,我还得做一个 timer 来保证该区块在客户端真的加载好了?

tineseack_bk
InitAuther97 发表于 2020-4-23 09:03
据我所知不好解决,还是给mj发个bugreport吧。

我已经用旁观者解决
旁观者模式下不会发生这种情况
谢谢提供分析

小冰糖a
tineseack_bk 发表于 2020-4-23 12:30
我已经用旁观者解决
旁观者模式下不会发生这种情况
谢谢提供分析

是的,旁观者不会自动下落hhh