This commit is contained in:
boybook
2025-12-01 20:59:16 +08:00
parent 12738a142c
commit 760c2dd9ad
5535 changed files with 21070 additions and 2021 deletions

View File

@@ -0,0 +1,69 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/1_1.48802b15.jpg
hard: 进阶
time: 30分钟
---
# 自定义远程武器
#### 作者:境界
目前我的世界中国版支持以弓为主的自定义远程武器。使用附加包可以添加新的弓道具以及弓的手持位置与拉伸动画。使用弓的功能逻辑则会依赖MODSDK我们将这两个部分各自拆解一下。
#### 材质包配置
![](./images/1_1.jpg)
①自定义弓的命名必须在符号“:”后以bow结尾这样子才会在接下来为物品添加使用弓动画组件行为时动画会正常播放。
②minecraft:icon会指向一个贴图资源短名路径它会由开发者自己在textures文件夹下的item_texture.json定义。
③minecraft:use_animation会为物品在玩家使用时做出某个动画这里我们添加bow这个值以便玩家拉伸弓的时候默认下会慢慢移动并且视角缩小。
④netease:frame_animation内有三个键对frame_count指的是弓箭拉伸时一共有多少张序列图会播放在原版的弓中玩家拉伸弓到最底一共会播放三张贴图。
#### 行为包配置
![](./images/1_2.jpg)
①必须将custom_item_type设置为ranged_weapon
②minecraft:max_damage用来设置弓的最大耐久值。
③minecraft:use_duration用来设置弓的可拉伸蓄力的使用时间我们需要将时间设置的足够长以免出现在一段时间内出现重复蓄力的问题。
④minecraft:max_stack_size用来设置弓的堆叠数量弓属于武器装备范畴因此建议一个栏中只能堆叠一个。
⑤minecraft:hand_equipped用来将自定义弓在第三人称的渲染形象和原版弓一致。
⑥netease:render_offsets用来设置自定义弓在第一人称的手持位置其中controller_position_adjust用来控制位置controller_rotation_adjust用来控制角度controller_scale用来控制大小缩放。
#### 发射投掷物功能
![](./images/1_3.jpg)
①监听ItemReleaseUsingServerEvent事件
②根据蓄力的时间,由开发者决定根据时间的长短来划分箭的伤害,以达到模拟出原版弓箭发射时的动态伤害效果。
![](./images/1_4.jpg)
③判断玩家的游戏模式,若为创造模式,不消耗弓的耐久和箭的数量的前提下,即可发射箭。若非创造模式,则会搜索背包内是否有箭道具,有则消耗并扣除一点弓耐久,否则直接返回,不执行后面发射箭的逻辑。

View File

@@ -0,0 +1,65 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/2_2.044dfe8c.jpg
hard: 进阶
time: 20分钟
---
# 自定义武器词条
#### 作者:境界
物品包含词缀当玩家点选物品时词缀会包含物品的一些信息如武器的附魔、伤害等。由于当前接口限制无论是附加包自带的接口还是中国版MODSDK自带的接口都无法一开始就自定义词缀注册在道具上如从创造背包选取下来的道具等。以下优先教给大家如何自定义武器词缀。
#### 利用战利品功能添加词缀
![](./images/2_1.jpg)
使用战利品表的set_lore功能可以将词缀写入武器道具内。但是新增的词缀不会覆盖原来的词缀。
战利品表可以随组件行为、村民交易等地方一起使用。
#### 效果图:
![](./images/2_2.jpg)
#### 使用MODSDK添加词缀
物品信息字典带有一对customTips的数据里面会包含着使用接口所改变的物品词缀信息。
使用生成物品或者是ChangePlayerItemTipsAndExtraId接口可以改变物品词缀信息。其中词缀改变时是直接覆盖掉原来的词缀。这一点与战利品表的词缀添加功能有着明显不同。
同时customTips支持自定义格式包含四种自带格式
【%name%:物品名】
【%category%:物品类型】
【%enchanting%:附魔属性】
【%attack_damage%:攻击伤害】
自带格式可以与自定义文本自由组合,顺序可以打乱,物品的自定义格式的文本不存在时不予显示。
自带格式的字符串采用原版的显示格式,物品名前面不带换行符,物品类型、附魔属性前面自带一个换行符,攻击伤害前面自带两个换行符。
举个例子:
```
head%name%after%category%%enchanting%/nnewline%attack_damage%/n/nend
```
#### 效果如下:
![](./images/2_3.jpg)

View File

@@ -0,0 +1,33 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/3_1.f375f404.jpg
hard: 进阶
time: 15分钟
---
# 自定义3D防具模型
#### 作者:境界
目前中国版与国际版一样,支持自定义防具模型。同时防具在被附魔后,模型也会呈现附魔的流光效果。这里会教大家解读防具资源包内容的数据格式,在本大章的最后会提供一个防具模型给开发者,尝试自己导入进去。
#### 数据格式解析
![](./images/3_1.jpg)
①自定义防具定义文件需要放在资源包下的attachables文件夹内。
②format_version有1.8.0和1.10.0两种格式,理论上支持粒子和动画。但由于硬编码缘故,无法对模型进行绑定定位器,且防具模型只支持方块自旋转,不支持骨骼旋转,所以若使用粒子和动画在防具资源上可能会得出错误的效果。
③identifier即相对应的物品ID使用自定义防具时需要将identifier和对应的物品设置为同一个ID。
③scripts中的parent_setup是用于配合官方商店中由官方推出的3D皮肤包的显示与隐藏。若玩家装备了3D头饰皮肤则定义了parent_setup的头部防具将不予以显示。
④其他四项里除了geometry、textures的default键指向自定义的防具贴图和模型资源以外其他可以保持不做更改。

View File

@@ -0,0 +1,38 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/4_4.554e8eb8.jpg
hard: 进阶
time: 15分钟
---
# 简易教程① 增加一顶帽子装备
#### 作者:境界
渔夫帽示例包下载:下载[示例包](https://g79.gdl.netease.com/guidedemo-case15.zip)。
#### 注册物品
![](./images/4_1.jpg)
#### 添加模型
![](./images/4_2.jpg)
#### 定义行为
![](./images/4_3.jpg)
#### 效果图如下:
![](./images/4_4.jpg)

View File

@@ -0,0 +1,31 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/5_2.4fbaff36.jpg
hard: 进阶
time: 20分钟
---
# 简易教程② 增加武器吸血属性
#### 作者:境界
吸血剑示例包下载:下载[示例包](https://g79.gdl.netease.com/guidedemo-case15.zip)。
#### 代码逻辑
![](./images/5_1.jpg)
①监听ServerChatEvent和PlayerAttackEntityEvent通过输入聊天信息“吸血剑”获得带有吸血词缀的钻石剑。
②在玩家攻击实体的事件回调函数内获取手持物品并匹配词缀信息然后通过attr组件来获得玩家生命值并设置新的生命值。
#### 效果图如下:
![](./images/5_2.jpg)