我的世界1.9命令方块教程之趣味炸弹III

Hey!这次给大家带来一个新的commandblock教程贴。(灵感来自于小游戏服务器的Survival Games)教材大概意思就是:当你拿到一个TNT并放置时,TNT会自动爆炸,注: 本教材由本人独立完成,并非抄袭!!

首先,创建几个积分榜:

/scoreboard objectives add usetnt stat、useItem、minecraft:tnt

/scoreboard objectives add usetnt2 stat、useItem、minecraft:tnt

两个积分榜看似差不多,但是实际用途不同。

积分榜usetnt用于召唤指定实体和放置方块

积分榜usetnt2用于召唤用于探测TNT位置的实体

下面给自己一个TNT(创造模式自己拿出也行)

/give @p minecraft:tnt 1 0 {ench:[{id:0,lvl:10}]}

-------------------------------------

当玩家放置了TNT后,usetnt和usetnt2的积分都会加1、

以下指令2条指令命令方块循环激活:

玩家放置TNT后,生成一个盔甲架,用于召唤指定实体和放置方块

/execute @a[score_usetnt_min=1] ~ ~ ~ /summon ArmorStand ~ ~ ~ {CustomName:"tnt",Marker:1,Invisible:1b,Silent:1b,NoGravity:1b}

当tnt盔甲架生成后,放置一个红石块在指定位置(坐标自己订):

/execute @e[name=tnt] ~ ~ ~ /setblock 122 4 -421 minecraft:redstone_block

在坐标处旁用红石连上命令方块:

下面进行探测TNT方块的位置,据估计需要81个命令方块进行探测,因为进过本人测试:玩家在生存模式是放置方块是最多只能放4格远。通过计算得出放置方块的面积:(4x2+1)x(4x2+1)=81 ,所以需要81的命令方块进行探测。

因为指令太多,不一一列出,拿几个当例子:

/execute @a[score_usetnt2_min=1] ~ ~ ~ /summon ArmorStand ~-2 ~5 ~-4 {CustomName:"tnt1",Silent:1b,Marker:1b}

/execute @a[score_usetnt2_min=1] ~ ~ ~ /summon ArmorStand ~-2 ~5 ~ {CustomName:"tnt1",Silent:1b,Marker:1b}

/execute @a[score_usetnt2_min=1] ~ ~ ~ /summon ArmorStand ~-2 ~5 ~1 {CustomName:"tnt1",Silent:1b,Marker:1b}

/execute @a[score_usetnt2_min=1] ~ ~ ~ /summon ArmorStand ~-1 ~5 ~2 {CustomName:"tnt1",Silent:1b,Marker:1b}

当玩家放置TNT方块时,生成81个盔甲架进行对在81格范围内的TNT方块进行探测,因为给盔甲架加了个Marker的NBT,所以若有生物想攻击玩家,"tnt1"不会挡住攻击并影响伤害。

因为玩家最多只能放4格远,所以生成的盔甲架的x和z坐标的绝对值不能大于4,y坐标不能小于5,因为TNT方块的y坐标和玩家的y坐标可能会不同,所以“tnt1"的y坐标必须大于玩家的最大放置距离,盔甲架从上方5格落下便可探测到与玩家的y坐标不同的TNT方块。

-------------------------------------

以下7条指令命令方块循环激活:

给落下的盔甲架一个隐形的效果,不挡视线:

/entitydata @e[name=tnt1] {Invisible:1b}

当盔甲架落到TNT方块上(也就是说探测到了TNT方块的方位时),生成一只蝙蝠,蝙蝠用于生成炸弹并清除TNT方块:

/execute @e[name=tnt1] ~ ~ ~ detect ~ ~-1 ~ minecraft:tnt 0 summon Bat ~ ~1 ~ {NoAI:1,Silent:1b,CustomName:tntbat,CustomNameVisible:1,ActiveEffects:[{Id:14,ShowParticles:0b,Duration:99999}]}

清除TNT方块:

/execute @e[type=Bat,name=tntbat] ~ ~ ~ /setblock ~ ~-2 ~ minecraft:air

生成”伪炸弹“,”伪炸弹“只是为了造成视觉的错觉,真正的爆炸还是要靠苦力怕(因为开了防爆后苦力怕不会破坏地形,而TNT会)

/execute @e[type=Bat,name=tntbat] ~ ~ ~ /summon PrimedTnt ~ ~-2 ~ {Fuse:10000}

伪炸弹爆炸慢,待清除、、、

生成苦力怕进行爆炸:

/execute @e[type=Bat,name=tntbat] ~ ~ ~ /summon Creeper ~ ~-2、6 ~ {ActiveEffects:[{Id:14,ShowParticles:0b,Duration:99999}],Silent:1b,ignited:1,ExplosionRadius:3,Fuse:60,CustomName:TNTCreeper}

清除蝙蝠:

/effect @e[type=Bat,name=tntbat] 7 1 1 true

爆炸前TNT特效:

/execute @e[type=PrimedTnt] ~ ~ ~ /particle lava ~ ~0、1 ~ 0 0 0 0、2 1

这样在放置的TNT处产生爆炸就完成了

-------------------------------------

在坐标处另一旁用红石连上命令方块:

把玩家的usetnt2的分数设为0,以便重复激活:

/scoreboard players set @a[score_usetnt2_min=1] usetnt2 0

清除tnt1盔甲架:

/kill @e[name=tnt1]

-------------------------------------

当生成Creeper过一段时间后,把”伪炸弹“清除:

探测苦力怕:

/testfor @e[name=TNTCreeper] (循环)

红石比较器和中续器连上:

/execute @e[name=TNTCreeper] ~ ~ ~ /kill @e[type=PrimedTnt] (循环红石激活)

-------------------------------------

[-TNT-]

视频介绍: