Minecraft(我的世界)中文论坛

标题: 玩转1.13的新/execute [打印本页]

作者: PotatoMaster101    时间: 2017-12-2 20:02
标题: 玩转1.13的新/execute
本帖最后由 PotatoMaster101 于 2017-12-3 16:05 编辑

1.13大指令改革把PM蹦出来了!



今天来带大家玩弄玩弄1.13版的/execute指令。

刚开始玩当然是玩弄最基础的两个模式:as和at:
  1. /execute as @e[type=pig] run say I'm a pig!
复制代码
让满地图的猪都叫“I'm a pig!”。当然如果猪太多的话会起到刷屏效果,用这条指令来改善:
  1. /execute as @e[type=pig,limit=1,sort=nearest] run say I'm a pig!
复制代码
这样子地图里最近的猪会大叫“I'm a pig!”。以上都用这个as来实现,意思是直接以猪的名义来运行指令。后面这个run的意思就是“执行”。

当然把as换成at也会有几乎相同的效果,只不过是一个坐标的问题而已。使用以下指令:
  1. /execute at @e[type=pig,limit=1,sort=nearest] run say I'm a pig!
复制代码
这样子就不是猪大叫“I'm a pig!”,而是执行指令的东西大叫“I'm a pig!”,可以是CB或者玩家。at就不像as那样子返回一个实体,at是返回一个坐标。

有时候我们要返回一个和实体为中心但有偏差的坐标,这样子可以使用offset来实现:
  1. /execute at @e[type=pig,limit=1,sort=nearest] offset ~ ~30 ~ run summon tnt
复制代码
让猪上方30格地方刷出一个TNT,首先会执行at返回猪的坐标,然后会执行offset将坐标的y加30。十分的简单。

这些东西叠加也没什么关系:
  1. /execute at @e[type=pig,limit=1,sort=nearest] offset ~ ~10 ~ offset ~ ~10 ~ offset ~ ~10 ~ run summon tnt
复制代码
意思同上,让猪上方30格地方刷出一个TNT。用了3个offset y+10后就相当于y+30。十分的简单。

还有一个好玩的东西叫align,这个也是和坐标有关系的东西。意思是让返回的坐标变成一个整数:
  1. /execute at @e[type=pig] align xyz run summon minecraft:armor_stand ~ ~ ~
复制代码
这个让地图内所有的猪的地方刷一个armor stand,但是:这个armor stand必定会在方块的中间。如果猪在<1.3, 2.5, 3.8>,那么armor stand就会在<1, 2, 3>。好比编程时候把一个float/double转换成一个int。后面的xyz可以是任何组合,去掉一个也没关系,比如 xy,yzx,xz等等,去掉一个的话就代表那个axis不会被换整数。

更好玩的东西来自于ifunless,玩过编程的童鞋都知道什么意思:
  1. /execute if entity @e[type=pig] run say hello
复制代码
如果地图内有猪,那么执行指令的东西就会说“hello”。当然要让什么实体运行say的话可以加一个as进去,这个就不用举例了。
unless直接反转if
  1. /execute unless entity @e[type=pig] run say hello
复制代码
地图上没有猪的话,执行指令的东西才会说“hello”。当然if不一定要是探测实体,还可以探测方块或者一个区域的方块,或者探测两个积分。比如:
  1. /execute if score a funnnn > b funnnn run say pass
复制代码
在funnnn变量内,测试分数a是否大于分数b,是的话就说“pass”。可以用的一些比较符是<, <=, >, >=, = 。

最好玩的东西来自于store,好比当年最好玩的/stats指令。store内有两个选项:resultsuccess。当年一起玩弄CB的童鞋们一定知道/stats有AffectedBlocksSuccessCountAffectedEntities等等。store内的success就是SuccessCountresult就是四个其他的变量。一起玩CB的童鞋们还知道用/stats的话最好使用记分板假名来保存积分,然而这个store极为NB,可以直接将输出写入到某个实体/方块的NBT内(除了玩家)。举个例子:
  1. /execute as @e[type=zombie] store success entity @s IsBaby byte 1 if entity @e[name=FasterZombie]
复制代码
选择地图内每一个僵尸,运行if entity @e[name=FasterZombie]来探测地图里有没有叫“FasterZombie”的这个实体。有的话就把那个僵尸的IsBaby这个NBT调成1,效果就是僵尸瞬间变成了小僵尸。由于使用@e的话会导致/execute给每一个僵尸都执行一遍指令,所以使用@s来让目前的僵尸变NBT。 再来一些好玩的:
  1. /execute as @e[type=!player] store result entity @s Motion[1] double 1 run data get entity @s OnGround 5
复制代码
  1. /execute as @e[type=creeper] store result entity @s ignited byte 1 run data get entity @s OnGround
复制代码
  1. /execute as @e[type=item] store result entity @s Item.Count byte 64 run data get entity @s OnGround
复制代码
  1. /execute as @e[type=slime] store result entity @s Size int 1 run effect give @e minecraft:blindness 1 1 true
复制代码
以上这些什么意思就不多说了,自己理解。233

======End======


作者: mkjkbn    时间: 2017-12-2 20:15
PM还活着哎
作者: pineapple_    时间: 2017-12-2 23:18
pm复活,是人性的扭曲还是道德的沦丧

本来看1.13的更新日志的xecute看的一头雾水

这么一看,还挺简单的,,
作者: zjxx    时间: 2017-12-3 07:17
我看到了谁!!
史前大佬诶
作者: ruhuasiyu    时间: 2017-12-3 12:52
突然诈尸……

只是现在快照命令感觉还有挺多问题的,像success和result的行为就有点奇怪
作者: BlackCB.    时间: 2017-12-3 14:01
我想问能不能execute和tp配合?
作者: sjx    时间: 2017-12-3 19:46
function+execute使用更佳
gameLoopFunction:

wrapped.mcfunction:

bugjang连续n个快照不修复macos崩溃问题

作者: pineapple_    时间: 2017-12-3 21:02
sjx 发表于 2017-12-3 19:46
function+execute使用更佳
gameLoopFunction:

然后不明真像的玩家在那瞎转鼠标
"啊啊啊啊怎么回事,别让我走,啊我怎么钻墙里了……"
"萌新 窒息身亡"
作者: 2105372313    时间: 2017-12-14 20:56
坐等大佬发下一个1.13命令教程帖
作者: joxs    时间: 2018-4-29 16:32
那怎么检测半径内的实体,testfor @e[r=]都没了
作者: chyx    时间: 2018-4-29 17:29
ruhuasiyu 发表于 2017-12-3 12:52
突然诈尸……

只是现在快照命令感觉还有挺多问题的,像success和result的行为就有点奇怪 ...

我已经提交到jira了
作者: lzs1234    时间: 2018-4-29 17:36
WOW滋磁PM
表示1.10以后就不知道MC更新了啥了=.=
作者: @凋影尘封    时间: 2018-5-16 21:57
乍一看貌似execute只能让生物说话?
作者: aa839829176    时间: 2018-5-17 00:29
玩转1.13这么厉害版本了
作者: iverson119    时间: 2018-5-22 18:01
命令方块的玩法靠你了!
作者: m050131    时间: 2018-6-11 20:41
天大佬发1.13的贴了我靠我觉得……简直666
作者: 命令方块mmp    时间: 2018-11-26 21:46
66666666666
作者: happy0o0    时间: 2018-12-3 20:11
有用有用,感谢楼主
作者: 2781212775    时间: 2019-8-14 14:06
大佬,继续出教程吗!!!就感觉你的好明白一点! 这个是真的不错 不过 1.14 除了 run align if 什么的还有很多,期待下一篇。
作者: 超级大三彩    时间: 2019-8-14 20:24
没错是的可以这样的,而且确实可行
作者: 2781212775    时间: 2020-2-13 20:42
我不信这里能被抓到水回复




欢迎光临 Minecraft(我的世界)中文论坛 (https://www.mcbbs.net/) Powered by Discuz! X3.5