附加包教程第十四期——物品:盔甲进阶
本帖最后由 782 于 2022-5-24 21:19 编辑物品(七)
盔甲进阶
一、前言
上一期,我们学习了盔甲的基础内容,今天就来教大家如何在佩戴多个盔甲时添加事件
这有点难,但如果你希望你的自定义盔甲表现得像RPG游戏中的盔甲,我们可以添加一些代码来检查我们是否配备了这套盔甲,并用它做很多的事情。
在本例中,我们将增加一个事件,将攻击者传送到附近的某个地方,并输出一条消息。
由于我们希望这在玩家被攻击时触发,我们需要向player.json文件添加一些代码。
这是一个巨大的文件,不幸的是,由于它将覆盖原有的文件,我们需要确保它包含所有的默认内容。
因此,在本例中将不包括整个player.json文件,本例将只包括部分需要添加到components和events部内容。
如果找不到原版player.json,可以在教程底部找到原版文件,并将其复制到附加包中即可。
要注意它的路径:行为包/entities/player.json
本期教程假定读者已经基本了解第十一期(物品:武器进阶)并制作上一期的全套盔甲。
提示:使用此附加包时,必须打开“假日创造者功能”实验性玩法!
static/image/hrline/line4.png
二、添加检测部分
存放于player.json#components组件内
...
//伤害检测
"minecraft:damage_sensor": {
"triggers": {
"on_damage": {
"filters": {
"all_of": [
{
//“test”指定条件判断的内容
"test": "has_equipment",
//“subject”指定条件判断的对象
"subject": "self",
// 在这里,“domain”指身体部位
"domain": "head",
// “operator”表示比较符号
"operator": "==",
// 物品标识符
"value": "demo:my_helmet"
},
{
"test": "has_equipment",
"subject": "self",
"domain": "torso",
"operator": "==",
"value": "demo:my_chestplate"
},
{
"test": "has_equipment",
"subject": "self",
"domain": "leg",
"operator": "==",
"value": "demo:my_leggings"
},
{
"test": "has_equipment",
"subject": "self",
"domain": "feet",
"operator": "==",
"value": "demo:my_boots"
}
]
},
// 如果在“filters”中的条件都匹配,则执行事件
"event": "demo:armor_sets.my_custom.taken_damage"
},
// 这意味着即使条件匹配,仍会受到伤害
"deals_damage": true
}
}
...
这些组件在实体教程中(尤其是“filters”)会进行讲解
跟着注释,一步一步来就行了。
static/image/hrline/line3.png
三、添加事件部分
存放于player.json#events组件内
...
"demo:armor_sets.my_custom.taken_damage": {
"randomize": [
{
"weight": 1,
// 做一个事件序列以执行多个命令
"sequence": [
{
// 这将需要攻击者在伤害检测器中触发事件
"run_command": {
// 把实体传送走
"command": "spreadplayers ~~ 5 20 @s",
// 在攻击者上执行命令,而不是我们
"target": "other"
}
},
{
"run_command": {
"command": "tellraw @s{\\"rawtext\\":[{\\"text\\":\\"§a你的盔甲大显神威,敌人被打跑了\\"}]}"
}
}
]
},
{
// 虚拟事件,导致主事件有概率发生
"weight": 20
}
]
}
...
本部分的解析可以在附加包教程第十一期——物品:武器进阶内找到
这里就不作太多解释了,跟着注释来
就是这样简单,可以测试一下它是怎么执行事件的,也可以测试它是否只有装备了全套装备才会执行事件。
虽然player.json是关于实体的内容,但今天我们稍作了解,为以后打下基础。
static/image/hrline/line9.png
四、本期文件下载
player.json原版文件下载:
static/image/hrline/line2.png
预告:下一期会教大家继续为盔甲添加更高级的事件
大家的打赏是对楼主最好的鼓励!
附加包教程系列导航
上一期下一期
@lpyqzMinecraft
继续更新~ 782 发表于 2022-5-20 20:48
@lpyqzMinecraft
继续更新~
这期好水。 lpyqzMinecraft 发表于 2022-5-20 22:04
这期好水。
确实[抖音_504]
写的很不错,很多术语都用通俗易懂的语言表达出来了
页: [1]