我的世界检查手中拿着东西的指令,我的世界怎么换手中的东西

首页 > 游戏 > 作者:YD1662023-06-27 22:00:43

很多地图都会有一些特定的交互物品方式,最常见的有丢弃物品侦测和右键侦测

特此说明:这里我使用的物品名称为繁体中字译名

这篇专栏教学的是最常见的右键侦测

右键侦测,其目的就是记录你使用物品的次数统计,大多数地图制作者用用到的右键侦测的物品有:胡萝卜钓竿,地图,雪球,鸡蛋,终界珍珠,烟花火箭,飞溅 水瓶等

这里用到的是1.16新加入的扭曲蕈菇钓竿

无论是侦测丢弃的物品还是右键·,都需要用到一个scoreboard.

那如何做到右键侦测呢?

这里我们不再用到普通的准则(如:"dummy","health","deathcount"等),这里我们需要用到复合准则

指令如下

scoreboard objectives add rc_tut Minecraft.used:minecraft.warped_fungus_on_a_stick

这样右键侦测的准备工作就完成了,但单独靠上面的还不够,我们需要做到的是让玩家右键物品,它会触发一个事件,这里我们让他触发后向大家say hi,<player_id>,这时,我们就需要用到指令包了(当然指令方块也可,但很麻烦,我不喜欢.w.)

我的世界检查手中拿着东西的指令,我的世界怎么换手中的东西(1)

创建指令包这里不会说明

来到资料夹内部,可以看到已经有创建好的mcfunction档,这些是我常用到的格式

loaded-用于重载世界后自动加载

main-用于指令包重复执行,1秒会执行20次

scoreboard-用于重载世界后自动加载(主要用于建立scoreboard)

empty-这是一个空白的mcfunction档,主要用来快速创建一个新的mcfunction档

我的世界检查手中拿着东西的指令,我的世界怎么换手中的东西(2)

打码部分防破梗=w="

这里我们需要做到指令包不断侦测我们的右键次数,故需要用到main档(使用编辑软体:visual studio code)

我们要做到的是:当有玩家右键了一个物品,就会执行say.mcfuction

指令如下

execute as @a[scores={rc_tut=1..}] at @s run function rc:say

我的世界检查手中拿着东西的指令,我的世界怎么换手中的东西(3)

这里不用if score @s rc_tut matches 1.. 的原因是这样做执行者是伺服器而不是玩家自己,而as的作用改变命令的执行者,at的作用是改变命令的执行位置.

接下来我们创建一个叫做say的mcfunction档,这里我们让say.mcfunction执行后会say hi,@a 同时清除掉自己rc_tut的使用次数(不清除会导致say hi,@a 一直洗板)

指令如下

say hi,@a

scoreboard players reset @s rc

我的世界检查手中拿着东西的指令,我的世界怎么换手中的东西(4)

这两条指令不可以调换执行顺序,否则会出现分数正常清除了但还未执行say hi,@a的bug

当然还未结束,你一定不希望别人随便拿一根扭曲蕈菇钓竿就执行一个事件吧,这时就可以给自己一根带有自订NBT标签的扭曲蕈钓竿,这里我们用{rc:1},然后侦测玩家手上是否有带有这个NBT标签就可以了

give @s warped_fungus_on_a_stick{rc:1}

我们可以在原有的基础上进行修改

execute if entity @s[nbt={SelectedItem:{tag:{rc:1}}}] run say hi,@a

我的世界检查手中拿着东西的指令,我的世界怎么换手中的东西(5)

我的世界检查手中拿着东西的指令,我的世界怎么换手中的东西(6)

如果需要给它一个不同的材质,可以用{CustomModelData:<value>}解决,这里不做赘述

那右键侦测的教学就到这里,评论区会附上指令包下载的载点,如果不会可以在评论区留言,我会尽量解决=w="也别忘了素质三连

本文禁止转载!!!!!

Ps:写指令包一定要记得多保存,否则哪天出来什么问题不关我的事=w="同时,如果你使用的软体可以开启自动保存也可以开启来,这样就省去了不停按Ctrl S的步骤XD

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.