开启辅助访问      

站内搜索

搜索
热搜: 下载 1.19 1.20

Minecraft(我的世界)苦力怕论坛

[BE教程] 附加包教程第十四期——物品:盔甲进阶

782
发表于 2022-5-20 20:43:44 | 显示全部楼层 |阅读模式 IP:江苏省
本帖最后由 782 于 2022-5-24 21:19 编辑


物品(七)
盔甲进阶

一、前言
上一期,我们学习了盔甲的基础内容,今天就来教大家如何在佩戴多个盔甲时添加事件
这有点难,但如果你希望你的自定义盔甲表现得像RPG游戏中的盔甲,我们可以添加一些代码来检查我们是否配备了这套盔甲,并用它做很多的事情。
在本例中,我们将增加一个事件,将攻击者传送到附近的某个地方,并输出一条消息。
由于我们希望这在玩家被攻击时触发,我们需要向player.json文件添加一些代码。
这是一个巨大的文件,不幸的是,由于它将覆盖原有的文件,我们需要确保它包含所有的默认内容
因此,在本例中将不包括整个player.json文件,本例将只包括部分需要添加到components和events部内容。
如果找不到原版player.json,可以在教程底部找到原版文件,并将其复制到附加包中即可。
要注意它的路径:行为包/entities/player.json
本期教程假定读者已经基本了解第十一期(物品:武器进阶)并制作上一期的全套盔甲。

提示:使用此附加包时,必须打开“假日创造者功能”实验性玩法!

二、添加检测部分
存放于player.json#components组件内
  1. ...
  2. //伤害检测
  3. "minecraft:damage_sensor": {
  4.     "triggers": {
  5.         "on_damage": {
  6.             "filters": {
  7.                 "all_of": [
  8.                     {
  9.                         //“test”指定条件判断的内容
  10.                         "test": "has_equipment",
  11.                         //“subject”指定条件判断的对象
  12.                         "subject": "self",
  13.                         // 在这里,“domain”指身体部位
  14.                         "domain": "head",
  15.                         // “operator”表示比较符号
  16.                         "operator": "==",
  17.                         // 物品标识符
  18.                         "value": "demo:my_helmet"
  19.                     },
  20.                     {
  21.                         "test": "has_equipment",
  22.                         "subject": "self",
  23.                         "domain": "torso",
  24.                         "operator": "==",
  25.                         "value": "demo:my_chestplate"
  26.                     },
  27.                     {
  28.                         "test": "has_equipment",
  29.                         "subject": "self",
  30.                         "domain": "leg",
  31.                         "operator": "==",
  32.                         "value": "demo:my_leggings"
  33.                     },
  34.                     {
  35.                         "test": "has_equipment",
  36.                         "subject": "self",
  37.                         "domain": "feet",
  38.                         "operator": "==",
  39.                         "value": "demo:my_boots"
  40.                     }
  41.                 ]
  42.             },
  43.             // 如果在“filters”中的条件都匹配,则执行事件
  44.             "event": "demo:armor_sets.my_custom.taken_damage"
  45.         },
  46.         // 这意味着即使条件匹配,仍会受到伤害
  47.         "deals_damage": true
  48.     }
  49. }
  50. ...
复制代码

这些组件在实体教程中(尤其是“filters”)会进行讲解
跟着注释,一步一步来就行了。

三、添加事件部分
存放于player.json#events组件内
  1. ...
  2. "demo:armor_sets.my_custom.taken_damage": {
  3.     "randomize": [
  4.         {
  5.             "weight": 1,
  6.             // 做一个事件序列以执行多个命令
  7.             "sequence": [
  8.                 {
  9.                     // 这将需要攻击者在伤害检测器中触发事件
  10.                     "run_command": {
  11.                         // 把实体传送走
  12.                         "command": "spreadplayers ~~ 5 20 @s",
  13.                         // 在攻击者上执行命令,而不是我们
  14.                         "target": "other"
  15.                     }
  16.                 },
  17.                 {
  18.                     "run_command": {
  19.                         "command": "tellraw @s{\"rawtext\":[{\"text\":\"§a你的盔甲大显神威,敌人被打跑了\"}]}"
  20.                     }
  21.                 }
  22.             ]
  23.         },
  24.         {
  25.             // 虚拟事件,导致主事件有概率发生
  26.             "weight": 20
  27.         }
  28.     ]
  29. }
  30. ...
复制代码

本部分的解析可以在附加包教程第十一期——物品:武器进阶内找到
这里就不作太多解释了,跟着注释来

就是这样简单,可以测试一下它是怎么执行事件的,也可以测试它是否只有装备了全套装备才会执行事件。
虽然player.json是关于实体的内容,但今天我们稍作了解,为以后打下基础。

四、本期文件下载
player.json原版文件下载: player.json (5.07 KB, 下载次数: 19)

预告:下一期会教大家继续为盔甲添加更高级的事件
大家的打赏是对楼主最好的鼓励!
附加包教程系列导航
上一期  下一期


评分

参与人数 1铁粒 +16 收起 理由
WZMint + 16 感谢分享

查看全部评分

苦力怕论坛,感谢有您~
回复

使用道具 举报

782
 楼主| 发表于 2022-5-20 20:48:09 | 显示全部楼层 IP:江苏省
@lpyqzMinecraft
继续更新~
2# 2022-5-20 20:48:09 回复 收起回复
苦力怕论坛,感谢有您~
回复 支持

使用道具 举报

发表于 2022-5-20 22:04:18 来自手机 | 显示全部楼层 IP:吉林省
782 发表于 2022-5-20 20:48
@lpyqzMinecraft
继续更新~

这期好水。
3# 2022-5-20 22:04:18 回复 收起回复
苦力怕论坛,感谢有您~
回复 支持

使用道具 举报

782
 楼主| 发表于 2022-5-20 23:25:52 | 显示全部楼层 IP:江苏省
4# 2022-5-20 23:25:52 回复 收起回复
苦力怕论坛,感谢有您~
回复 支持

使用道具 举报

发表于 2022-6-3 22:39:05 来自手机 | 显示全部楼层 IP:湖北省
写的很不错,很多术语都用通俗易懂的语言表达出来了
5# 2022-6-3 22:39:05 回复 收起回复
苦力怕论坛,感谢有您~
回复 支持

使用道具 举报

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

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

粤公网安备 44200002445329号 | 由 木韩网络 提供云服务 | GMT+8, 2024-4-29 23:32

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4 粤ICP备2023071842号