omnitx
本帖最后由 omnitx 于 2022-12-12 18:34 编辑

求助!为什么这个二维地皮指令总是传送出错我本来想制作一个庄主创造服那样的超平坦世界(有地皮划分区域),后来我想自己做,在B站找做地皮的指令学习。后来只找到基岩板的,有一位up主(晴渊蓝)的视频BV1ba411T7rV我觉得讲的很有道理的,我就想在Java版里面复刻一个。
有些指令是基岩板和Java版有所区别,但我也尽量的找到并且改到Java版能识别的指令。
目前主要问题是每次启动“创建地皮”指令方块列,都会出现在错误的地方并且克隆地皮到错误位置造成“返回地皮”指令方块组的缺失


有栅栏连着的指令方块是因为,原指令是将指令执行提示隐藏。因为想找失败原因所以将其先改成更改时间指令,不影响指令列其他的连锁。

运行后失败结果:

注:全部名称设置均为拼音形式,除了唯一一个“地皮次数”,为“dpcishu
我想将地皮克隆至与地平面相平,并非像up那样高空地皮。

另附上地图包 dipi.zip (1.15 MB, 下载次数: 1)

拜托各位大神帮忙看看啦

omnitx
“创建地皮”之后,会激活“二分法传送”指令列,
但是每次都是传送到那几个位置。
排除过“创建地皮”中的二维定位基本没问题,很怀疑是“二分法传送”里面的问题,但是我找不出究竟是哪里没写对

实况主小博
本帖最后由 实况主小博 于 2022-12-12 21:05 编辑

首先,看了一下,我大概知道你的问题了,你对java版的execute怎么用是不是不太熟练,旧版的execute @a ~ ~ ~ 并不等价于execute as @a 而是execute as @a at @s,只写as你并没有修改命令的执行位置而是只改变的命令的执行者,旧版的execute是同时改变执行位置和执行者,而新版把两个功能拆开为了两个子命令as和at,只加as当然会出错(每次地皮把命令方块弄没就是因为执行位置没有改变,clone直接以那个命令方块为基准点执行了)
但是你的初始坐标其实离你的命令方块区域太远了,视距小一点可能clone都没办法执行了,因为没加载原建筑,建议先把初始坐标调到附近一点的地方


然后,毕竟是java版1.17了已经,其实不太建议完全照搬基岩版的东西,虽然二分传送很有意思,之前也有人研究过二分法传送,但是没有超过计分板容纳限度的坐标利用数据包中的函数的话实际上完全可以把玩家传送到与计分板相同数值的坐标,传送部分完全可以直接计分板计算完目标坐标后生成marker,然后在一个函数里同时用execute把坐标赋值并把玩家tp过去。以及函数可以代替命令串,既然已经用了不需要条件限制的命令逻辑,其实完全可以全部换成函数执行,省空间省性能也省事

omnitx
实况主小博 发表于 2022-12-12 20:56
首先,看了一下,我大概知道你的问题了,你对java版的execute怎么用是不是不太熟练,旧版的execute @a ~ ~  ...

确实对execute指令比较生疏,业余学习的小白一枚,嘿嘿
按照你的方法,加上@s之后确实能正常工作啦
不过就像你说的那样,初始坐标调到指令区域附近之后,出现近一点的坐标可以被克隆过去,但是地皮复制几个后又离指令区域远了
请问怎么样才能让被克隆区域保持能被克隆的呀?!(不过不是说出生点的区块常加载吗,难道只强加载指令,方块无效?)

实况主小博
omnitx 发表于 2022-12-13 13:33
确实对execute指令比较生疏,业余学习的小白一枚,嘿嘿
按照你的方法,加上@s之后确实能正常工作啦
不过就 ...

所以视频里面才用了结构方块,结构会被储存到存档文件中可以随时调用,不过还有另一个办法,就是把克隆区域的区块用/forceload设置为强加载,语法是/forceload add x1 z1 x2 y2,可以把两个坐标形成的方形区域内所有区块强加载,但是一般来说不要用太多,强加载区块多了也会消耗性能,尽量把需要强加载的东西放到一起,不过你那个地皮不大,也没关系

omnitx
实况主小博 发表于 2022-12-13 13:41
所以视频里面才用了结构方块,结构会被储存到存档文件中可以随时调用,不过还有另一个办法,就是把克隆区 ...

我始终没搞懂没啥java没得structure指令,基岩版可以直接指令加载,非常羡慕。我愣是找不到java版的结构命令,应该是没有吧?难道是有什么更简单的指令代替

实况主小博
本帖最后由 实况主小博 于 2022-12-13 16:40 编辑
omnitx 发表于 2022-12-13 15:57
我始终没搞懂没啥java没得structure指令,基岩版可以直接指令加载,非常羡慕。我愣是找不到java版的结构 ...

不知道,但应该是没有可以直接生成结构的命令,不过结构方块和拼图方块我平常研究的比较少,可以自己找一下相关的教程,说不定有其他办法

不过其实生成一个已经激活的结构方块应该相当于直接生成结构,大概就是因为可以直接生成带有nbt的结构方块所以官方才没有给java版加这个命令吧(

omnitx
实况主小博 发表于 2022-12-13 16:34
不知道,但应该是没有可以直接生成结构的命令,不过结构方块和拼图方块我平常研究的比较少,可以自己找一 ...

这个是半成品, 12-14dipi.zip (1.65 MB, 下载次数: 1) 以前的问题解决了大部分,但是总会有新的问题出现,头疼
目前发现的问题1.貌似结构方块的摆放会对地皮生成方向有关系,2.指令部分在出生点设置没问题,地皮生成的太远还是会生成失败,怀疑是人物刚传送到目的点就执行生成指令,而地图又未加载完成,遂系统默认为在虚空而不生成。(用假人放在预置位置可解决得出)解决办法:生成结构方块并且激活指令之前可以加一个延时(还不会做)
虽然热爱mc,但目前有事不能继续完善,万一有有缘人就拿来倒腾倒腾吧,我想基本完成了80%左右啦,等有空再回来弄

第一页 上一页 下一页 最后一页