我的世界官网中文百科zh.minecraft.wikiJava版服务器列表基岩版服务器列表
帖子

Memorial Edition

查看: 43|回复: 0

[1.19+]在基岩版用指令方块实现枪械效果

[复制链接]

Lv.4 矿工

人气
11 点
金粒
113 粒
宝石
0 颗
爱心
0 颗
钻石
55 颗
贡献
0 点
发表于 昨天 16:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 北方熬夜 于 2025-7-2 17:16 编辑

首先,这套指令搬运自油管,并非本人原创,只是搬运过来并解释
此外版本不一定只限于1.19+,我并没有去测试所有的版本,感兴趣可以其他低版本试试看?可以告诉我
acf4227a49b59b5ae38fa584be5ad815.webp

通过这些指令方块,能将原版的金锄头变成沙漠之鹰,当蹲下时会消耗一块燧石,并发射出子弹,有弹道,子弹速度和音效,并可以自定义穿墙效果。

我们将它分为三列,咱们从左到右称作第一,二,三列,并挨个从下往上讲

第一列,用于检测玩家是否符合开枪条件

第一列第一个循环方块,检测玩家是否手持金锄头,并且按下潜行,如果符合要求,就给该玩家添加一个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,同时存在两发子弹服务器就吃不消了,如果有优化方案,希望大家能不吝赐教,不过电脑的基岩版还是可以的,一直连发都很流畅。

非常巧妙的设计方式,想不到在有众多阉割的基岩版中也能实现枪械的效果。








您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋| MCBBS纪念版 ( 新ICP备2024014954号|兵公网安备66010002000149号 )|隐私政策| 手机版

GMT+8, 2025-7-3 13:45 , Processed in 0.123824 second(s), 20 queries , Redis On.

"Minecraft"以及"我的世界"为美国微软公司的商标 本站与微软公司没有从属关系

© 2010-2025 MCBBS纪念版 版权所有 本站内原创内容版权属于其原创作者,除作者或版规特别声明外未经许可不得转载

返回顶部