首页 男生 游戏竞技 Minecraft指令手册

第五十五章 effect-牛顿哭了

Minecraft指令手册 你好MC 3483 2024-07-09 15:29

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

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

  在这种情况下,我们就需要使用多个指令来达成目的,比方说可以使用/rebr /laceitem(/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[tybr /e=zombie,c=1] regeneration(Java1.13更新前和基岩版)

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

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

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

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

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

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

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

  还是有的。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /effect give @e[tybr /e=zombie,tag=boss] health_boost 1000000,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版一样为1000000秒了。

目录
设置
手机
书架
书页
评论