MINECRAFT数据包-进度[攻击检测篇]
注意!在学习本章内容前,最好需要了解wiki中进度的有关内容
上一章我们讨论了如何使用进度来实现自定义NBT合成。
本章,我们将讨论进度中的 攻击检测 相关内容。
下面是一个实例:
制作 [雷神之怒] 技能
技能要求如下:
1.使用有特定标签的钻石斧攻击触发(限主手)
2.攻击后在3格内最近的玩家处召唤闪电。
显然,完成这个技能最大的难点在于 [攻击检测]
在以往的方法中,通常会采用一个计分项:minecraft.custom:minecraft.damage_dealt
这样的方法唯一的缺点是: 需要循环执行检测,这样便会浪费性能
但是,进度中有一个触发器:minecraft:player_hurt_entity

我们知道,进度是不需要循环检测的,这样便可以优化我们的数据包性能。
(当然你想用伤害计分板我也没话说)
现在我们开始编辑这个数据包。
在data/test/advancements/目录下新建进度文件axe_damage.json

接下来,我们将开始编辑进度文件。
在创建好的文件中写入以下内容:
这样,我们就完成了进度的编辑
接下来,我们需要编辑进度达成后所执行的函数。
在data/test/functions/lightning/目录下新建summon.mcfunction文件
这便是进度文件中"rewards"下function对应的函数
在函数文件中写入以下内容:
这样,我们就完成了函数部分的编辑
最后,你可以参考上期的 进度与合成配方 教学给特殊标签的斧头加上特殊合成。
其中,物品给予部分如下
如果觉得对你有帮助的话,可以点个赞哦qwq (球球拉)