一哥手游欢迎您
QQ登陆 注册 找回密码
查看: 830|回复: 0

[精品玩法攻略] 我的世界指令方块矿石探测器展示

[复制链接]
  • TA的每日心情
    开心
    2022-10-5 18:24
  • 签到天数: 36 天

    [LV.5]

    管理员

    Rank: 9Rank: 9Rank: 9

    性别
    帅哥
    阳光
    690
    人气
    21535
    G点
    9570
    任务金卷
    0
    居住地
    湖北省 宜昌市
    QQ
    QQ
    玩的手游
    刀塔传奇

    卓越贡献元老勋章

    发表于 2015-10-10 19:47:13 | 显示全部楼层 |阅读模式

    大家好。今天教大家如何制作矿石探测器。就是当玩家手上拿了一个东西后,会出现积分板,告诉玩家地下有多少矿石,还告诉玩家是什么矿石。

    1.JPG
    2.JPG

    这个机器比较简单,主要是使用了新的{CommandStats},或者直接/stats。

    首先,我们需要一个探测玩家手里有没有拿着一个探测器。本人这里使用的探测器,是一个地狱星,有自定义名字和介。

    3.JPG

    像其他的指令方块作品,都要有脉冲来激活。这里本人使用指令方块高速脉冲。

    第一,就是要一个积分板变量。本人这里使用"Hold"名字的积分板,dummy变量。所以,第一个指令方块就是清空玩家的Hold积分板,分数变成0。指令:

    /scoreboard players set @a Hold 0

    复制代码

    这个Hold变量就是探测玩家有没有拿物品。如果拿了,那就把积分变成1,没拿就是0。之后,就是探测玩家又没有拿物品的指令方块了。一共有9个,因为玩家有9个物品栏。指令是:

    /scoreboard players set @a Hold 1

    {SelectedItemSlot:0,Inventory:[{id:"minecraft:nether_star",Damage:0s,Count:1b,Slot:0b,tag:{display:{Name:"Ore Detector",Lore:["Finds any ore"]}}}]}

    复制代码

    /scoreboard players set @a Hold 1

    {SelectedItemSlot:1,Inventory:[{id:"minecraft:nether_star",Damage:0s,Count:1b,Slot:1b,tag:{display:{Name:"Ore Detector",Lore:["Finds any ore"]}}}]}

    复制代码

    大家看见,唯一有改动的就是{SelectedItemSlot}和{Inventory}内的Item。这2NBT后面的数字都相同,分别是0-8。玩家手拿第一个就是0,然后第二个就是1,以此类推。(此类型指令还有7个,就不一一的列出了)。之后里面的“{id:"minecraft:nether_star",Damage:0s,Count:1b,Slot:1b,tag:{display:{Name:"Ore Detector",Lore:["Finds any ore"]}}}”,就是探测的物品。这里是一个名字叫“Ore Detector”的地狱星,并且介绍是"Finds any ore"。玩家要探测其他东西那就自行改下。

    注意:顺序一定要是先清空,然后再探测,否则就无法探测得到了。

    之后,下一步就是另外一个机器。这个机器可有可无,主要是美观使用。主要就是当玩家手拿物品后,屏幕左边会出现积分板,玩家没有手拿物品,那就不会出现。这个主要是使用积分板的teams做的。

    首先,我们要创建一个teams。指令是:

    /scoreboard teams add Gold

    复制代码

    这条指令,就是积分板里加一个名字叫“Gold”的Team(队伍)。这个名字大家可以自己改动,之后我们要把这个Team的颜色改掉,好让指令方块可以探测得到。指令是:

    /scoreboard teams option Gold color gold

    复制代码

    这条指令把刚才的“Gold”的队伍改成金色。当然,不一定要是金色,玩家打进指令后再颜色的地方按Tab,就会出现积分板所有的颜色。队伍创建完毕后,还要一个显示的指令。也就是一条让所有在金色颜色队伍内的玩家,可以看到积分板的矿石探测。指令是:

    /scoreboard objectives setdisplay sidebar.team.gold Underground

    复制代码

    这条指令把一个叫“Underground”的变量显示给所有金色队伍的人员看。其他没有队伍的玩家或者不同队伍的玩家是无法看到的。之后这个Underground积分板,之后是用来探测矿物用的。

    之后就要做一个机器了。刚才做的是,一旦有玩家在Gold队伍里面,就会看见积分板。所以我们需要一个装置:一旦玩家手拿物品,那就会进入Gold队伍,没拿那就会退出Gold队伍。指令分别是:

    /execute @a[score_Hold_min=1] ~ ~ ~ /scoreboard teams join Gold @a[r=0]

    复制代码

    这条指令探测所有的“Hold”积分板为最起码1的玩家,然后把他们加入到Gold队伍。后面的[r=0],也就是精准的选择那个玩家,而不是其他旁边的一些玩家。Hold积分板刚才说了,就是把拿着物品的玩家积分设成1。所以,拿了物品后,那个玩家就进入了Gold队伍,可以看到积分板了。之后,还要一个退出的指令。当玩家没有拿物品,那就会退出这个Gold队伍,导致看不见。指令是:

    /execute @a[score_Hold=0] ~ ~ ~ /scoreboard teams leave Gold @a

    复制代码

    (如果是多人游戏可能需要多个队伍,每个玩家一个)。以上指令把没有拿物品的玩家退出队伍。

    之后还需要一个显示的积分板,也就是Underground。玩家可以随便输入。所以先创建一个积分板:

    /scoreboard objectives add Underground dummy

    复制代码

    以上指令创建“Underground”积分板,拥有dummy变量。之后需要创建假名。有7个矿石,所以分别是:

    /scoreboard players set Diamond Underground 0

    复制代码

    /scoreboard players set Gold Underground 0

    复制代码

    /scoreboard players set Coal Underground 0

    复制代码

    /scoreboard players set Iron Underground 0

    复制代码

    /scoreboard players set Lapis Underground 0

    复制代码

    /scoreboard players set Emerald Underground 0

    复制代码

    /scoreboard players set Redstone Underground 0

    复制代码

    /scoreboard players set Air Underground 0

    复制代码

    大家看见,上面有8条指令。第8条是探测空气用的,来告诉玩家下面有没有矿洞。

    以上就是积分板系统了。之后就要使用/stats了。游戏里一共有7种矿石(不包括地狱石英矿),所以我们需要14个指令方块。2个指令方块控制一种矿石。首先,来控制煤。

    第一条指令是:

    /execute @a[score_Hold_min=1] ~ ~ ~ /fill ~ ~20 ~ ~ ~-30 ~ minecraft:jungle_stairs 0 replace minecraft:coal_ore 0

    复制代码

    这条指令,意思就是,探测所有拿着物品的玩家,然后把他们头上20格,脚下30格的所有煤矿,都换成台阶。本人使用台阶是因为台阶拥有很多Damage数值,因为每种不同的矿石都要有一个更换物品,所以用台阶就可以换掉所有的矿石,直接修改Damage数值就可以了。大家看见,煤矿本人用的是0的台阶。

    之后事情还没完。因为这条指令只是把煤换成了拥有Damage为0的台阶,之后还要把台阶换回煤。指令是:

    /execute @a[score_Hold_min=1] ~ ~ ~ /fill ~ ~20 ~ ~ ~-30 ~ minecraft:coal_ore 0 replace minecraft:jungle_stairs 0

    复制代码

    这和刚才的一样,只不过是玩家头上20格,脚下30格的所有0台阶换成煤矿。之后就使用/stats了。在这个指令方块上面站着,然后输入指令:

    /stats block ~ ~-1 ~ set AffectedBlocks Coal Underground

    复制代码

    这条指令的意思就是,一旦指令方块有改动(把台阶换成煤矿),那么就会用积分板显示换了多少次。所以,这样可以直接知道玩家附近有多少个煤矿。(激活顺序是首先煤块换台阶,然后台阶换煤块。这个推荐放到指令方块高速脉冲,这样子看不见变换的过程。)以上的/stats,Coal就是假名Coal,然后Underground就是积分板名字。其他就不需要改了。

    玩家会问,这么复杂做什么,直接把煤块换成煤块不就好了?答案是不行,因为/fill的replace功能和/setblock的一样。所以,如果是同一种方块,/fill并不会替换。所以我们要先替换成其他方块,然后再替换回来。

    之后就都是一样了。只要改下替换ID就可以了。比如:(/stats每个把台阶替换矿的指令方块都要弄一下。)

    /execute @a[score_Hold_min=1] ~ ~ ~ /fill ~ ~20 ~ ~ ~-30 ~ minecraft:jungle_stairs 1 replace minecraft:iron_ore 0

    复制代码

    /execute @a[score_Hold_min=1] ~ ~ ~ /fill ~ ~20 ~ ~ ~-30 ~ minecraft:iron_ore 0 replace minecraft:jungle_stairs 1

    复制代码

    把铁矿替换成拥有Damage 1的台阶,然后再替换回来。一直重复到空气,那么这个部分就做完了。玩家只要自行加入其他的矿物,然后替换成其他Damage数值的台阶就可以了。

    这个机器一个缺点是,如果玩家在低于30格(y<30),那么机器就会坏掉。因为/fill或者/setblock无法替换虚空内的方块。所以积分板只会显示0,无法进行探测。


        一哥手游平台是重庆一哥手游科技公司旗下手机游戏玩家平台,以精品运营为理念,以贴心服务为宗旨,致力于为各种不同渠道与玩家打造好玩的手机游戏服务平台,同时免费提供丰富的手机游戏下载,立志成为国内一流的综合性手机游戏娱乐平台,不断追求更加卓越的品质!一哥手游!


    捐赠方式支持论坛,捐赠获得阳光请捐赠  一哥网ACG游戏精英家园!
    -----------------------------------------------------------------------------------------------------------
    你就认真回复也行啊!总之!不要白瞟!从我做起,请发帖!请点评!请回复!
    -----------------------------------------------------------------------------------------------------------
    【 认真点评 】 【 认真回复  】认真发帖 】!谢谢大家!
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    客服:| 客服QQ: 2607818610 | 商务QQ:19878895 | 服务邮箱:ohyeah@vip.qq.com | 商务电话:13637860062

    公安机关备案号:50010602501574|网站地图|小黑屋|

    一哥ACG ( 渝ICP备13004552号-1)

    GMT+8, 2024-5-19 04:04 , Processed in 0.235310 second(s), 41 queries , Gzip On.

    Powered by 一哥网 X3.4

    © 2001-2013 www.1g31.com

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