通过这些指令方块,能将原版的金锄头变成沙漠之鹰,当蹲下时会消耗一块燧石,并发射出子弹,有弹道,子弹速度和音效,并可以自定义穿墙效果。
我们将它分为三列,咱们从左到右称作第一,二,三列,并挨个从下往上讲
第一列,用于检测玩家是否符合开枪条件
第一列第一个循环方块,检测玩家是否手持金锄头,并且按下潜行,如果符合要求,就给该玩家添加一个fire标签
execute as @a[hasitem={item=golden_hoe,location=slot.weapon.mainhand}] at @s positioned ~~1.6~ unless entity @s[dx=0] run tag @s add fire
第一列第二个,当检测玩家不是潜行状态,就去除fire标签
execute as @a at @s positioned ~~1.6~ if entity @s[dx=0] run tag @s remove fire
第一列第三个,这个是当玩家不再潜行,就去除shot标签,这个shot标签后面会讲到
execute as @a at @s positioned ~~1.6~ if entity @s[dx=0] run tag @s remove shot
第二列,用于处理玩家开枪逻辑
第二列第一个,给玩家头顶生成一个船,条件是有fire标签,背包中有燧石的玩家,并且没有shot标签
execute as @a[tag=fire,tag=!shot,hasitem={item=flint}] at @s positioned ~~51.5~ run summon boat ^^^1.5 ~~
第二列第二个,这个会在刚刚生成船的位置给船打上一个标签deagle
execute as @a[tag=fire,tag=!shot,hasitem={item=flint}] at @s positioned ~~51.5~ positioned ^^^1.5 run tag @e[c=1,type=boat,r=1] add deagle
execute as @a[tag=fire,hasitem={item=flint},tag=!shot] at @s run playsound random.explode @a ~~~ 1 2
第二列第四个,消耗一块燧石作为弹药
clear @a[tag=fire,tag=!shot] flint 0 1
第二列第五个,屏幕抖动效果
camerashake add @a[tag=fire,tag=!shot] 1 0.15
第二列第六个,添加shot标签,意思玩家的子弹已经打出了,只有取消潜行状态才能重置
第三列,用于处理子弹的行为
第三列第一个,给刚刚生成的带有标签的船再添加一个landed标签,用于区分子弹是否还在飞行
tag @e[tag=deagle] add landed
第三列第二个,用tp改变船的位置,模拟子弹向前移动
execute as @e[tag=deagle] at @s run tp @s ^^^0.6
第三列第三个,标记船的下方50格的位置,当触碰到方块的时候就将landed标签移除,如果方块是空气或者短草丛,就不会移除
execute as @e[tag=deagle] at @s positioned ~~-50~ unless block ~~~ air unless block ~~~ short_grass run tag @s remove landed
第三列第四个,还是标记船的下方50格的位置,对这个地方的实体造成伤害,设置伤害来源是手持金锄头的人
execute as @e[tag=deagle] at @s positioned ~~-50~ run damage @e[dx=0,type=!item,type=!armor_stand] 20 entity_attack entity @p[hasitem={item=golden_hoe}]
第三列第五个,在船的下方50格的位置添加烟雾粒子效果模拟弹道
execute at @e[tag=deagle] positioned ~~-50~ run particle minecraft:balloon_gas_particle
下面重复第二到第五个步骤,这样可以减少一点性能损耗,这里是重复了两次
最后一个,删除没有landed标签,但是有deagle标签的实体,也就是清除被标记为停止飞行的子弹
kill @e[tag=!landed,tag=deagle]
或许可以用于冈易的租赁服?但是经过测试,冈易手机版的优化像shit,同时存在两发子弹服务器就吃不消了,如果有优化方案,希望大家能不吝赐教,不过电脑的基岩版还是可以的,一直连发都很流畅。
非常巧妙的设计方式,想不到在有众多阉割的基岩版中也能实现枪械的效果。