Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 731|回复: 2

[命令方块] 【execute】实体排列

[复制链接]
发表于 2017-1-26 12:06:07 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
样子:

                               
登录/注册后可看大图


或者是


在不知道排列方向的情况下的确是不可能做到的,排列方向为-z
(间隔为1的情况下,假设第一个为0, 0, 0; 第二个则为0, 0, -1; 第三个则为0, 0, -2), 如此类推

我们需要做到的事情有两个:
1. 令实体之间间隔为1(本来大于1)
2. 令实体之间间隔为2(本来的间隔没有限制)

以下将会用全型字符代表排列...

第一个问题
我们怎么把实体间隔减少呢?我选择了把实体一个一个向后拉
原本:
A B C D E
第一步:
AB  C D E
第二步:
ABC   D E
...

有了解决方法之后就很简单了,我们可以在A的位置执行execute,让实体从A到E逐个逐个执行: 选择后方最接近的实体,然后把后方最接近实体的前方最接近实体(也就是外面那execute的实体)teleport到前方一格
(很难讲得好,举个例子吧: B的后方最接近实体就是A,A的前方最接近实体就是B,所以整个过程就是B让A把B teleport到A前方1格)
注意:
命令: execute @e[type=armor_stand] ~ ~ ~ execute @e[type=armor_stand,rm=1,dz=100,c=1] ~ ~ ~ teleport @e[c=1,rm=1,type=armor_stand,dz=-100] ~ ~ ~-1


第二个问题
我们如果用上面那解决方法逐个逐个解决的话会有个难题: 实体重叠/前后不确定
重叠/前后不确定的情况这里就不展示了,毕竟文字很难展示重叠的现象...

这问题有两个解法: 1. 只适用于间隔为1的情况;2. 适用于任何情况

1:
思路: 既然会重叠,那么不如把后方的全部退后吧。
命令: execute @e[type=armor_stand] ~ ~ ~-1 tp @e[dz=-200] ~ ~ ~-1
execute那里的-1是为了避免之后[dz=-200]选择到自己

2:
思路: 重叠/前后不一致么? 那么我把处理过的标记好,只处理没标记过的不就好了么。(使用stats)
前后不一致?那么我到最前方去选择最近的就好了啊。(这方法能处理堆叠在一起,或者是相隔很远的特殊情况)
命令:
  1. scoreboard players set @e[type=armor_stand] a 0
  2. stats entity @e[type=armor_stand] set SuccessCount @e[c=1] a
  3. scoreboard players set @e[type=armor_stand,c=1] a 1

  4. execute @e[type=armor_stand] ~ ~ ~-100 execute @e[score_a_min=1,c=1] ~ ~ ~100 teleport @e[score_a=0,c=1] ~ ~ ~-102
复制代码

最后

如果对上面execute有不明白的地方的话,建议先看看https://pca006132.neocities.org/execute.html,以及选择器https://pca006132.neocities.org/tutorials/selector/selector.html

这帖子的主要目的在于告诉大家有时候命令是非常注重坐标的,也非常注重执行坐标

感谢@kongbaiyo 昨晚很快就解决了我给的问题,也给了一些不错的思路(第二条问题第一个解决方法就是他的,我是第二个解决方法)
来自群组: Command Block Logic

评分

参与人数 3人气 +6 收起 理由
玄素 + 2 哼!(
FHC红石 + 3 慢慢看
volta薯片~ + 1 厉害了

查看全部评分

回复

使用道具 举报

发表于 2017-1-27 19:11:03 | 显示全部楼层
还是1gt分队伍有意思
回复

使用道具 举报

发表于 2017-1-28 17:10:08 来自手机 | 显示全部楼层
可以的 很强 exe神教万岁
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 手机版本

GMT+8, 2017-11-20 01:34 , Processed in 0.137805 second(s), 7 queries , Memcache On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标。本站与Mojang以及微软公司没有从属关系。

© 2010-2017 我的世界中文论坛 版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。

快速回复 返回顶部 返回列表