UID196429性别保密经验 EP铁粒 粒回帖0主题精华在线时间 小时注册时间2021-12-18最后登录1970-1-1
| 本帖最后由 782 于 2022-5-24 21:19 编辑
物品(七) 盔甲进阶 一、前言
上一期,我们学习了盔甲的基础内容,今天就来教大家如何在佩戴多个盔甲时添加事件
这有点难,但如果你希望你的自定义盔甲表现得像RPG游戏中的盔甲,我们可以添加一些代码来检查我们是否配备了这套盔甲,并用它做很多的事情。
在本例中,我们将增加一个事件,将攻击者传送到附近的某个地方,并输出一条消息。
由于我们希望这在玩家被攻击时触发,我们需要向player.json文件添加一些代码。
这是一个巨大的文件,不幸的是,由于它将覆盖原有的文件,我们需要确保它包含所有的默认内容。
因此,在本例中将不包括整个player.json文件,本例将只包括部分需要添加到components和events部内容。
如果找不到原版player.json,可以在教程底部找到原版文件,并将其复制到附加包中即可。
要注意它的路径:行为包/entities/player.json
本期教程假定读者已经基本了解第十一期(物品:武器进阶)并制作上一期的全套盔甲。 提示:使用此附加包时,必须打开“假日创造者功能”实验性玩法!
二、添加检测部分
存放于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”)会进行讲解
跟着注释,一步一步来就行了。
三、添加事件部分
存放于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是关于实体的内容,但今天我们稍作了解,为以后打下基础。
四、本期文件下载
player.json原版文件下载:
player.json(5.07 KB, 下载次数: 37)
预告:下一期会教大家继续为盔甲添加更高级的事件
附加包教程系列导航 上一期 下一期
|
评分查看全部评分
|