今天小编为大家解析一下我的世界1.13新的/execute指令,让玩家知道这个指令怎么使用,想知道的玩家一定要看下面的内容!
1.13大指令改革把PM蹦出来了!
今天来带大家玩弄玩弄1.13版的/execute指令。
刚开始玩当然是玩弄最基础的两个模式:as和at:
/execute as @e[type=pig] run say I'm a pig!
让满地图的猪都叫“I'm a pig!”。当然如果猪太多的话会起到刷屏效果,用这条指令来改善:
/execute as @e[type=pig,limit=1,sort=nearest] run say I'm a pig!
这样子地图里最近的猪会大叫“I'm a pig!”。以上都用这个as来实现,意思是直接以猪的名义来运行指令。后面这个run的意思就是“执行”。
当然把as换成at也会有几乎相同的效果,只不过是一个坐标的问题而已。使用以下指令:
/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来实现:
/execute at @e[type=pig,limit=1,sort=nearest] offset ~ ~30 ~ run summon tnt
让猪上方30格地方刷出一个TNT,首先会执行at返回猪的坐标,然后会执行offset将坐标的y加30。十分的简单。
这些东西叠加也没什么关系:
/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,这个也是和坐标有关系的东西。意思是让返回的坐标变成一个整数:
/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不会被换整数。
更好玩的东西来自于if和unless,玩过编程的童鞋都知道什么意思:
/execute if entity @e[type=pig] run say hello
如果地图内有猪,那么执行指令的东西就会说“hello”。当然要让什么实体运行say的话可以加一个as进去,这个就不用举例了。
unless直接反转if:
/execute unless entity @e[type=pig] run say hello
地图上没有猪的话,执行指令的东西才会说“hello”。当然if不一定要是探测实体,还可以探测方块或者一个区域的方块,或者探测两个积分。比如:
/execute if score a funnnn > b funnnn run say pass
在funnnn变量内,测试分数a是否大于分数b,是的话就说“pass”。可以用的一些比较符是<, <=, >, >=, = 。
最好玩的东西来自于store,好比当年最好玩的/stats指令。store内有两个选项:result和success。当年一起玩弄CB的童鞋们一定知道/stats有AffectedBlocks,SuccessCount,AffectedEntities等等。store内的success就是SuccessCount,result就是四个其他的变量。一起玩CB的童鞋们还知道用/stats的话最好使用记分板假名来保存积分,然而这个store极为NB,可以直接将输出写入到某个实体/方块的NBT内(除了玩家)。举个例子:
/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。 再来一些好玩的:/execute as @e[type=!player] store result entity @s Motion[1] double 1 run data get entity @s OnGround 5
/execute as @e[type=creeper] store result entity @s ignited byte 1 run data get entity @s OnGround
/execute as @e[type=item] store result entity @s Item.Count byte 64 run data get entity @s OnGround
/execute as @e[type=slime] store result entity @s Size int 1 run effect give @e minecraft:blindness 1 1 true
以上这些什么意思就不多说了,自己理解。233
======End======
19游戏网整理报道