我的世界1.9命令方块教程道具冷却补给系统制作

小编为大家带来了《我的世界》1.9命令方块教程道具冷却补给系统制作,这个东西非常得好,在pvp中和RPG类型的游戏地图可以为玩家带来不一样的游戏感受,有兴趣的玩家都来看看吧。

这个系统的核心只有两个字:穷举

没错……其实就是个苦力活儿,因为不同的道具的冷却时间不一样,所以要单独计算时间。

201602181020476284666

实现的功能就是,每种箭上限只有3支,当使用了以后,每10秒补给1支。

箭是其中的一个例子,其实基本上所有的道具都有类似的方法来制作冷却补给。

这里,主要给大家讲讲我的思路……我不知道有没有其他人发过类似的,但我没搜到,所以我按我自己的思路来做。

首先,要判断使用了箭的方法,毫无疑问需要使用记分板,这是第一步,也是变化最多的一步,为什么这么说呢?

因为有的道具是主动道具,需要你去“使用”它;而有的道具则是投掷型(按Q使用之类的),还有的是利用副手的位置等等

在做补给之前,你需要判断这个道具是如何使用的,例如我这里是,弓在副手,选中对应的箭拉弓即可,所以我选择了判断弓的使用

在贴指令之前,贴一下文中可能用到的简写和前缀:

默认不加前缀是CCB, Chain Command Block

icb前缀代表是ICB, Impulse Command Block

rcb前缀代表是RCB, Repeating Command Block

init前缀代表该指令只在激活OOC时执行一次

指令的话,肯定是添加记分板了,这里会把用到的记分板写出来

init:scoreboard objectives add bowUse stat.useItem.minecraft.bow 使用了弓

init:scoreboard objectives add arrowCoolDown1 dummy 属性箭1冷却

init:scoreboard players add @a arrowCoolDown1 0

复制代码

bowUse是用于判断玩家是否使用了弓(箭)

arrowCoolDown1是给属性箭1用的冷却时间记分板

当玩家使用了弓、选择了属性箭1号并且冷却时间不超过400刻(20秒)的时候,添加200刻(10秒)的冷却时间

rcb:scoreboard players add @ascore_bowUse_min=1,score_arrowCoolDown1=400] arrowCoolDown1 200 {SelectedItemSlot:1}

复制代码

在上图可以看见,属性箭1实际上位于2号快捷栏,在Inventory中,2号快捷栏的编号是1(0~8,以此类推)

注意到这里的“冷却时间不超过400刻”,为什么要这么设定呢?这个问题放到后面一些解答。

然后看下一条:

scoreboard players reset @a[tag=archer,score_bowUse_min=1] bowUse

复制代码

重置使用弓次数的记分板,这条没什么好说吧?不过注意的是执行顺序问题,就是这个需要放在比较后面来执行

接下来就是倒计时部分

scoreboard players remove @a[tag=archer,score_arrowCoolDown1_min=0] arrowCoolDown1 1

replaceitem entity @a[score_arrowCoolDown1_min=0,score_arrowCoolDown1=0] slot.hotbar.1 tipped_arrow 3 0 {相关NBT}

replaceitem entity @a[score_arrowCoolDown1_min=200,score_arrowCoolDown1=200] slot.hotbar.1 tipped_arrow 2 0 {相关NBT}

replaceitem entity @a[score_arrowCoolDown1_min=400,score_arrowCoolDown1=400] slot.hotbar.1 tipped_arrow 1 0 {相关NBT}

复制代码

解释一下每一条的意思,首先当冷却大于等于0的时候,会自动减1――所以,最后的数字会停留在-1

前面说了,每用一次该道具,冷却时间+200刻(10秒),而每10秒需要补一次,上限3支;

于是我们可以简单算出来,在倒计时到0的时候替换成3,在倒计时到200的时候替换成2,400的时候替换成1

超过400意味着什么?意味着此时这个槽位是空的,没有那个道具

那么问题来了,如果这个时候选中这个槽位使用弓,会怎么样?

很明显,冷却加10秒√

于是就需要设定,当冷却时间不超过400的时候使用弓,才能加冷却时间

以上就是“一个道具”要用到的指令

……当有多个道具的时候,就需要设定多个记分板(例如我这里有8种属性箭,所以是arrowCoolDown1,2,3,……,8)

简单来说,就是前面的指令*8

而我自己在写的时候,因为个人的一些强迫症,必须添加颜色黑科技以及防止扔道具误操作这样的系统,所以最后写出来的源指令就不短了,大概就是这个样子。

201602181023111886976

原创文章,作者:spike,如若转载,请注明出处:http://www.kz168.cn/50665.html