本帖最后由 End-Enderman 于 2015-9-1 18:31 编辑

注:至少要有双持的版本才可以运行,所以只支持1.9+(因为本人即将隐退,以后可能来不及改,所以先这么放着)。使用快照版本最好使用15w33b以上的快照版本,因为刷怪蛋利用的是15w33b的新特性。
所谓山田之术,大致意为"操控掉落物,使掉落物悬浮并砸向实体"。以下为原版和我做的装置的对比图↓

(手上的效果是模仿热血时代剧中发动山田之术时手上的闪光效果。由于时代剧通关起来非常麻烦(清兵慢),所以先用这个来代替)
1.发动山田之术的准备动作:
在发动山田之术时,盔甲架的双手会有闪光的效果并张开。注意观察gif便能看出,盔甲架手上实际上是两张纸。首先先利用的是两个命令方块,指令分别为
  1. replaceitem entity @e[type=ArmorStand,name=shantian] slot.weapon.offhand paper
复制代码
  1. replaceitem entity @e[type=ArmorStand,name=shantian] slot.weapon.mainhand paper
复制代码
之后连接非电路,让手上的纸变为空气,
  1. replaceitem entity @e[type=ArmorStand] slot.weapon.offhand air
复制代码
  1. replaceitem entity @e[type=ArmorStand] slot.weapon.mainhand air
复制代码
不断地高频便可以手上不断闪光的效果。而双手张开的动作当然是改变盔甲架的Pose。
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[0.0F,0.0F,270.0F],RightArm:[0.0F,0.0F,90.0F]}}
复制代码
2.掉落物悬空:
由于目前似乎没有让掉落物Item不会下落的nbt,这里使用的是放置屏障来阻挡掉落物下降。利用屏障不在手里拿着时会变成透明的特性(这里用的是创造模式)来做到这个效果。
首先使用
  1. tp @e[type=Item] ~ ~5 ~
复制代码
将所有的掉落物tp到离自己所在坐标5格以上。之后触发
  1. execute @e[type=Item] ~ ~ ~ setblock ~ ~-1 ~ minecraft:barrier
复制代码
让在空中的掉落物下方一格生成一个屏障,起到阻挡的效果。
3.扔物品的动作:
改变盔甲架双手的动作只需要将Pose中的LeftArm以及RightArm的度数改变即可。
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[180.0F,0.0F,0.0F],RightArm:[180.0F,0.0F,0.0F]}}
复制代码
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[160.0F,0.0F,0.0F],RightArm:[160.0F,0.0F,0.0F]}}
复制代码
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[140.0F,0.0F,0.0F],RightArm:[140.0F,0.0F,0.0F]}}
复制代码
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[160.0F,0.0F,0.0F],RightArm:[160.0F,0.0F,0.0F]}}
复制代码
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[180.0F,0.0F,0.0F],RightArm:[180.0F,0.0F,0.0F]}}
复制代码
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[200.0F,0.0F,0.0F],RightArm:[200.0F,0.0F,0.0F]}}
复制代码
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[220.0F,0.0F,0.0F],RightArm:[220.0F,0.0F,0.0F]}}
复制代码
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[240.0F,0.0F,0.0F],RightArm:[240.0F,0.0F,0.0F]}}
复制代码
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[260.0F,0.0F,0.0F],RightArm:[260.0F,0.0F,0.0F]}}
复制代码
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[290.0F,0.0F,0.0F],RightArm:[290.0F,0.0F,0.0F]}}
复制代码
  1. entitydata @e[type=ArmorStand,name=shantian] {Pose:{LeftArm:[300.0F,0.0F,0.0F],RightArm:[300.0F,0.0F,0.0F]}}
复制代码
每一个都用中继器延时。由于中继器貌似最少只能延时0.1秒,盔甲架的动作显得不太自然。
4.掉落物砸僵尸:
首先创造一个名称为1的积分板(变量为dummy即可),之后不断的高频
  1. scoreboard players set @e[type=Item] 1 1
复制代码
把每一个掉落物都加一分(这里高频速度太慢,会有个小bug)。之后利用
  1. tp @e[score_1_min=1] @e[type=Zombie,c=1]
复制代码
把附近所有掉落物都tp到最近的僵尸身上(这样可以优先砸到最近的僵尸身上)。而伤害则是利用的是effect来给予僵尸伤害。
  1. execute @e[type=ArmorStand,name=shantian] ~ ~ ~ effect @e[type=Zombie,c=1] 6 1 10
复制代码
可以更改c=1来让更多的僵尸受到伤害等等。
5.盔甲架和豹猫:
盔甲架在生成时,也会生成一只豹猫。豹猫在生成时时无敌隐身的,但是打掉盔甲架豹猫会死。原因就是利用了非电路。首先利用testfor指令探测盔甲架是否存在。

指令方块后面连接比较器,上面利用红石火把并连接kill指令做一个非电路。如果探测到盔甲架不存在的话,比较器会熄灭,上面的红石火把会被激活并触发kill指令。若盔甲架生成,比较器会输出,火把会熄灭。其他的可以进入存档来探索。
bug:
1.若掉落物太多或者因为高频的时差,可能会造成当掉落物在空中待一小会之后会直接下落,之后僵尸死了才tp到它身上的问题。这个bug已经尝试用延时来修复,但是似乎没有什么成果(不知是不是因为渣机自身的问题)
2.掉落物起来的速度有时可能不太理想。这似乎跟高频积分板的速度有关。
3.因为我用的是探测僵尸的基础上探测掉落物,所以有时先放掉落物再放僵尸可能会出点小问题。
4.若连续使用并不停止有可能会出现电路暂停工作。这一点正在修复中。
进入存档须知:
绿色旗帜:可以获得一颗生成特定盔甲架的蛋。
蓝色旗帜:生成豹猫的命令方块。这里是必改项目!不然豹猫不会跟着你而造成不便。
钻石块:调整探测的实体和探测半径。
金块:调整探测掉落物的半径。
铁块:调整要针对的实体(进入存档默认为僵尸)。
尽量不要随意调整中继器的延时,否则可能会造成在掉落物底下的屏障被消除之前就tp到了僵尸身上,以至于僵尸掉到虚空。

↓存档在此

支持一下吧...为了一个gif还要玩到通关我容易吗...最起码要回复吧
因为自身时间越来越少,所以没有办法专心来做这些东西,还请见谅。如果不出意外的话,这应该是我2015年最后一个帖子了(不算隐退贴),还请多多包涵。
出自索引:http://www.mcbbs.net/thread-440268-1-1.html

[groupid=1009]The Command's Power[/groupid]