亲,欢迎光临天天书吧!
错缺断章、加书:站内短信
后台有人,会尽快回复!
天天书吧 > 玄幻魔法 > Minecraft指令手册 > 第五十五章 effect-牛顿哭了
  • 主题模式:

  • 字体大小:

    -

    18

    +
  • 恢复默认

第五十五章 effect-牛顿哭了

如果你现在要自定义一个僵尸小boSS,你会怎么做?

使用Nbt是最好的方式。但是如果是要在基岩版里面做呢?况且你现在也不会使用Nbt,也就看得懂的水平罢了。

在这种情况下,我们就需要使用多个指令来达成目的,比方说可以使用\/replaceitem(\/item)指令来给僵尸上装备。

但血量和防御力该怎么修改?

其实不难修改,我们只需要使用一个特别的东西:状态效果

状态效果(Status Effect)在minecraft中非常有用,甚至可以提高生物的血量上限和防御力。我们可以使用指令\/effect来给生物添加、清除状态效果:

\/effect

作用:给一或多个实体添加或移除状态效果。

需要权限等级:Java-2,基岩-1

需要作弊:是

格式:

Java1.13更新之前和基岩版:

\/effect <目标选择器> clear ——清除目标所拥有的所有状态效果。

\/effect <目标选择器><状态效果Id>[<持续时间:秒>][<强度等级>][<是否隐藏粒子和图标:布尔值>]——给予目标指定的状态效果。

Java1.13更新后:

\/effect clear <目标选择器>[状态效果Id]——清除目标所拥有的所有状态效果,或只清除指定的状态效果

\/effect give <目标选择器><状态效果Id>[<秒数>][<强度等级>][<是否隐藏粒子和图标:布尔值>]——给予目标指定的状态效果。

格式总体来说还是十分简单的。现在让我们来试试给这只僵尸添加一个状态效果:

\/effect @e[type=zombie,c=1] regeneration(Java1.13更新前和基岩版)

\/effect give @e[type=zombie,limit=1,sort=nearest] regeneration (Java1.13更新后)

运行上面的指令,游戏将会给离执行地点最近的僵尸添加30秒的1级生命恢复效果(僵尸:危)。

如果我们想要将这个状态效果移除,可以使用:

\/effect @e[type=zombie,c=1] clear (Java1.13更新前和基岩版)

\/effect clear @e[type=zombie,limit=1,sort=nearest](Java1.13更新后)

这两条指令将会清除离执行地点最近的僵尸所拥有的所有状态效果。但如果这个僵尸拥有其他我们不想清除的状态效果怎么办?

在Java1.13及之后的版本中,我们可以执行\/effect clear @e[type=zombie,limit=1,sort=nearest] regeneration来清除生命恢复效果而不清除其他状态效果。可是在Java1.13前的版本和基岩版中似乎没有清除指定状态效果的方法呀?

还是有的。

想一想,当目标已经有了指定的状态效果,我们再添加一个状态效果上去会发生什么?

再想一想,当两个名称、类型一样的文件相遇的时候,计算机会给你提示什么?

想到了没有?没错,只有两种可能性:覆盖和保留原来的状态效果

而minecraft选择了什么呢?两者均有。当目标具有相同的状态效果时,游戏将会根据以下情况选择是保留还是覆盖:

1新状态效果持续时间比源状态效果要短,且持续时间不等于0,保留原来的状态效果

2新状态效果持续时间比源状态效果要长或相等,覆盖原来的状态效果

3新状态效果持续时间为0,移除原来的状态效果(实际上也是覆盖)。

发现了没有?我们可以通过添加一个持续时间为0的状态效果来移除指定的状态效果:

\/effect @e[type=zombie,c=1] regeneration 0

这样子就成功保住了那只僵尸的命。而且,这个方法在Java1.13更新后仍然可用。

状态效果的持续时间最大为秒(11.574天),如果指定更大的值将会被视为秒。默认的持续时间是30秒,即半分钟。(注,在基岩版1.16.200版本之前,持续时间最大为,但超过秒的话就没有效果了)

持续时间的单位一般是秒,但有三个状态效果的值例外:瞬间伤害、瞬间治疗和饱和。它们三所使用的单位是游戏刻,默认的持续时间也被改为了1游戏刻。毕竟是“瞬间”嘛,一“瞬间”持续太长时间就不正常了。

现在可以尝试给我们的僵尸boSS加血量上限了:

\/effect @e[type=zombie,tag=boss] health_boost (Java1.13前和基岩版)

\/effect give @e[type=zombie,tag=boss] health_boost

(Java1.13更新后)

health_boost是“生命提升”效果,可以提升生命最大值。上面的指令将会为我们的僵尸boss增加4点生命值上限,持续秒。

对于一个boss来说,24点血也太少了。因此我们要提高生命提升的等级。生命提升效果能够增加的最大生命值等于强度等级乘4的积。作为一个小型boss,100点血就足够了,也就是说我们需要给僵尸添加20级的生命提升:

\/effect @e[type=zombie,tag=boss] health_boost ,19(Java1.13前和基岩版)

\/effect give @e[type=zombie,tag=boss] health_boost ,19(Java1.13更新后)

(注:上面的逗号仅用于区分两个参数之用,实际在游戏中无需输入逗号)

你肯定会疑惑:不是添加20级吗,怎么是19级?

其实这就是添加20级。只不过这个“强度等级”参数有些特别,它的值范围是0~255。输入0相当于1级,输入1相当于2级.......输入255相当于256级。

明白了吧?

现在我们成功为僵尸提高了生命值上限。但是状态效果是有粒子的,到时候玩家过来打这个boss,发现这个boss有冒出粒子,不就露馅了么?

解决办法很简单。看见那个“是否隐藏粒子和图标”参数了没?默认它是false,如果将它改为true,游戏将会隐藏该状态效果的粒子,在Java版甚至还会把图标也给隐藏了。

现在你学会\/effect了没?赶紧去游戏中尝试一下吧!

(注:在minecraft中,状态效果持续时间超过1638秒的话,效果的持续时间将显示为**:**。在Java版中,计时仍然会照常进行。)

(你知道吗:在Java版中,当玩家拥有超过128级的跳跃效果时,玩家会因为特性而无法跳跃!)

effect历史:

Java

1.5——加入了\/effect

1.6.1——加入了clear参数

1.8——加入了“是否隐藏粒子和图标”参数

1.13——更改了\/effect的语法

1.15.2——较强效果覆盖较弱效果时,较弱效果只是被隐藏了。

携带版和基岩版

\\\\携带版\\\\

1.0.5——加入了\/effect

\\\\基岩版\\\\

1.16.200——现在持续时间上限和Java版一样为秒了。