大家好,我是CZM。我今天给大家带来的是命令方块大范围杀伤药水教程。
那么在此之前,先废话几句:
好的进入正题





------------------------------------------------------------------原理------------------------------------------------------------

(别告诉我你不会做高频?任何高频都可以的但是越快越好~)
命令:
下右
- scoreboard objectives add kill dummy
下中
- scoreboard players set @e[type=ThrownPotion] kill 1 {Potion:{Damage:16428s,tag:{display:{Name:"Mob Killer"}}}}
上面的Damage:16428s是判断是否为瞬伤2,tag:{display:{Name:"Mob Killer"}}判断名字
有一个小问题,为什么不判断id和 count?答:所有药水的id都是一样的没必要,count都是1也没必要
这条指令把所有的名字为Mob Killer的已扔出药水分数改为1
下左
- execute @e[score_kill_min=1] ~ ~ ~ kill @e[type=!Player,score_it=0,r=10,rm=1]
对于后面这段,我来详细讲解一下
type=!Player,表示除了玩家以外的实体,你不可能让你自己做的药水把你自己杀了吧
score_it=0这个等一下要讲
r=10确定范围
rm=1,我自己在实测时发现如果不加会导致药水吧自己杀掉。。。。。。只好这么加了,意思是最小范围为1
【感谢玩家@End-Enderman的建议,我已将此命令方块改为以下两个命令方块】
- execute @e[score_kill_min=1] ~ ~ ~ effect @e[type=!Player,r=10,rm=1] 7 1 100
- execute @e[score_kill_min=1] ~ ~ ~ effect @e[type=!Player,r=10,rm=1] 6 1 100
而且不会误伤到比如做模型用到的盔甲架
PS:更改了之后下面的指令都可以不要了 除了最后一个
上右
- scoreboard objectives add it dummy
上中
- scoreboard players set @e[type=Item] it 1
这样上面的那个score_it=0就不会把物品杀掉
上左
- entitydata @e[type=Item] {Age:1000}
好吧这是我闲着没事时弄的,对这个系统没有帮助
突然发现下面还有一个命块
- scoreboard players set @e[type=!Item] it -1
因为:
在实测中发现如果不设的话那么
其他实体就没有分数,无法与score_it=0进行比较
(貌似是bug?我用的是1.8)
所以要设个-1
当然设成0也没关系,我为了保险设-1
最后一个,左侧
- execute @e[score_kill_min=1] ~ ~ ~ tp @e[type=Item,r=12] @p
如果是多人游戏请自己看着办吧反正最好不要用@p
The end~谢谢大家~