当前位置: 我的世界 > 游戏攻略 > 正文

我的世界1.8命令方块 冰冻之箭代码以及效果分享

小编:铅笔时间:2014-10-18 14:52回到游戏园首页

  今天游戏园的小编就为大家带来我的世界1.8命令方块冰冻之箭的代码以及效果演示!希望此篇文章能帮到大家!

  截图:

  ------------原理/运行------------

  这个机器十分的简单。主要还是有积分版来完成。首先需要创建积分版:

  1. /scoreboard objectives add UseBow stat.useItem.minecraft.bow

  UseBow积分版,如果玩家使用了弓箭,那积分就+1。

  1. /scoreboard objectives add IsFrozArrow dummy

  IsForzArrow积分版,如果是使用冰冻之弓射出去的箭,那么哪个箭就会有这个积分。

  1. /scoreboard objectives add SelecBow dummy

  SelecBow积分版,探测玩家是否手拿冰冻只弓。

  1. /scoreboard objectives add ArrowInG dummy

  ArrowInG积分版,地图里的每个射出去的箭都会有这个积分。如果箭在天上飞,积分为0,落地后,积分为1。

  1. /scoreboard objectives add RightMob dummy

  RightMob积分版,探测落地箭旁边的生物。

  之后还要一个指令方块拿到弓箭。指令:

  1. /give @p minecraft:bow 1 0

  2. {display:{Name:"Frozen",Lore:["PotatoMaster101's Secret Weapon"]},ench:[{id:51,lvl:999}],Unbreakable:1b,HideFlags:63}

  给玩家一个叫“Frozen”的弓。

  之后就是运行原理了。(以下机械都是有高速脉冲激活的)

  第一步:探测玩家手上是否拿着正确的弓(Frozen)。如果拿着,那么把该玩家的SelecBow积分版设为1。指令:

  1. /scoreboard players set @a SelecBow 0

  以上指令清空玩家的SelecBow积分。

  1. /scoreboard players set @a SelecBow 1

  2. {Inventory:[{id:"minecraft:bow",Damage:0s,tag:{display:{Name:"Frozen"}},Slot:0b}],SelectedItemSlot:0}

  1. /scoreboard players set @a SelecBow 1

  2. {Inventory:[{id:"minecraft:bow",Damage:0s,tag:{display:{Name:"Frozen"}},Slot:4b}],SelectedItemSlot:4}

  1./scoreboard players set @a SelecBow 1

  2. {Inventory:[{id:"minecraft:bow",Damage:0s,tag:{display:{Name:"Frozen"}},Slot:7b}],SelectedItemSlot:7}

  1. /scoreboard players set @a SelecBow 1

  2. {Inventory:[{id:"minecraft:bow",Damage:0s,tag:{display:{Name:"Frozen"}},Slot:2b}],SelectedItemSlot:2}

  1. /scoreboard players set @a SelecBow 1

  2. {Inventory:[{id:"minecraft:bow",Damage:0s,tag:{display:{Name:"Frozen"}},Slot:3b}],SelectedItemSlot:3}

  1. /scoreboard players set @a SelecBow 1

  2. {Inventory:[{id:"minecraft:bow",Damage:0s,tag:{display:{Name:"Frozen"}},Slot:8b}],SelectedItemSlot:8}

  1. /scoreboard players set @a SelecBow 1

  2. {Inventory:[{id:"minecraft:bow",Damage:0s,tag:{display:{Name:"Frozen"}},Slot:1b}],SelectedItemSlot:1}

  1. /scoreboard players set @a SelecBow 1

  2. {Inventory:[{id:"minecraft:bow",Damage:0s,tag:{display:{Name:"Frozen"}},Slot:5b}],SelectedItemSlot:5}

  1. /scoreboard players set @a SelecBow 1

  2. {Inventory:[{id:"minecraft:bow",Damage:0s,tag:{display:{Name:"Frozen"}},Slot:6b}],SelectedItemSlot:6}

  以上的9个指令方块分别给玩家手里拿着Frozen弓积分。因为玩家物品栏可以放9个物品,所以每个物品栏都要有自己的单独探测。以上9条指令分辨探测玩家的9个物品栏。

  所以,如果玩家没拿,那他的积分始终是0,如果拿了,那就是1。

  第二步:探测弓箭是在天上还是在地上。指令:

  1. /scoreboard players set @e[type=Arrow] ArrowInG 0

  2. {inGround:0b}

  1. /scoreboard players set @e[type=Arrow] ArrowInG 1

  2. {inGround:1b}

  以上两条指令,分别把在空中的箭,ArrowInG设为0分。落地的箭(卡在方块里),ArrowInG设为1分。探测箭的状态。

  第三步:主要的机械运行。这一步主要就是探测正确的弓箭,和弓箭对生物的影响。指令:

  1. /execute @a[score_SelecBow_min=1,score_UseBow_min=1] ~ ~ ~

  2. /execute @e[type=Arrow,r=3,score_ArrowInG=0] ~ ~ ~

  3. /scoreboard players set @e[type=Arrow,r=0] IsFrozArrow 1

  这条/execute指令套着一个/execute套着一个/scoreboard指令。主要是,如果玩家手拿正确的弓箭,并且射了一支箭(score_SelecBow_min=1,score_UseBow_min=1),那么就会把该玩家附近3格范围的所有在飞的箭(type=Arrow,r=3,score_ArrowInG=0),IsFrozArrow积分设为1(set @e[type=Arrow,r=0] IsFrozArrow 1)。这个用处就是让机器知道哪支箭是Frozen弓射出的。如果是普通的弓箭射出的,那么就不会被机器探测到

  之后就是探测正确的生物:

  1. /execute @e[type=Arrow,score_ArrowInG_min=1,score_IsFrozArrow_min=1] ~ ~ ~

  2. /execute @e[type=!Arrow,r=2] ~ ~ ~

  3. /scoreboard players set @e[r=0] RightMob 1

  探测已经落地了,而且是Frozen射出的箭(type=Arrow,score_ArrowInG_min=1,score_IsFrozArrow_min=1),然后再探测周围2格非弓箭的实体(type=!Arrow,r=2),把那些实体的RightMob积分设为1。这个用处就是如果箭落在了一个生物旁边,那么那个生物的RightMob就会变成1,RightMob为1的生物就是被选中的生物。(如果箭没落地,而打中了生物,那就没用了,目前MC没办法探测是否有箭在生物里)。

  最后就是对RightMob积分为1的生物输出:

  1. /execute @e[score_RightMob_min=1,type=!Player] ~ ~ ~

  2. /setblock ~ ~ ~ minecraft:ice

  给正确的生物(score_RightMob_min=1,type=!Player),身体里放冰块(/setblock ~ ~ ~ minecraft:ice)。这个就是视觉效果,假装被冰了。

  1. /entitydata @e[score_RightMob_min=1]

  2. {NoAI:1b}

  把正确的生物的AI锁定掉(score_RightMob_min=1,{NoAI:1b})。没有AI的生物是不会动的,所以看起来被冰起来了。

  第四步:清空机器,指令:

  1. /kill @e[type=Arrow,score_ArrowInG_min=1,score_IsFrozArrow_min=1]

  1. /scoreboard players reset * RightMob

  以上指令杀掉箭,清空RightMob积分版。

  这就是整个机器,箭打到生物旁边后那个生物会冰起来。对玩家无效。之后,刚才说过,如果箭打到生物上,那就会没用,因为指令方块只能探测落得的箭,而无法探测打在生物上面的箭。但是有一个解决方法,就是使用/execute detect功能探测马上要落地的箭,然后冰冻下面的生物,但是本机器不会加入此装置。

  》》》点我下载《《《

分享到:更多

游戏信息

我的世界
我的世界类型:休闲娱乐平台:PC,iOS,安卓电脑版下载
  • 游戏大礼包
  • 手游开测表