You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Wiki/pages/CraftingTemplates武器锻造类别.md

215 lines
11 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

**2023年02月11日**
**对应游戏版本v1.0.3** 皮蛋初版完成
# 根元素
<CraftingTemplates>
# 类型名
```
<CraftingTemplate 元素1=""
元素2=""
……>
<PieceDatas>
<PieceData piece_type="Handle"
build_order="0" />
<PieceData piece_type="Guard"
build_order="1" />
<PieceData piece_type="Blade"
build_order="2" />
<PieceData piece_type="Pommel"
build_order="-1" />
</PieceDatas>
<WeaponDescriptions>
<WeaponDescription id="填写该锻造类使用的武器用法" />
</WeaponDescriptions>
<StatsData>
<StatData stat_type="Weight"
max_value="7.0" />
<StatData stat_type="WeaponReach"
max_value="300" />
<StatData stat_type="ThrustSpeed"
max_value="200" />
<StatData stat_type="SwingSpeed"
max_value="200" />
<StatData stat_type="ThrustDamage"
max_value="500" />
<StatData stat_type="SwingDamage"
max_value="500" />
<StatData stat_type="Handling"
max_value="200" />
</StatsData>
<UsablePieces>
<UsablePiece piece_id="填写属于该锻造类的配件" />
<UsablePiece piece_id="填写属于该锻造类的配件" />
……
</UsablePieces>
</CraftingTemplate>
```
# 原版路径
Modules\Native\ModuleData\crafting_templates.xml
# 官方文档
[WEAPON SMITHING & CRAFTING PIECES](https://moddocs.bannerlord.com/asset-management/weapon_smithing/)
# 用途
- 所有锻造武器的类别。
- 该类别的武器用法有哪些。
- 武器各项属性的最大值。
- 物品挂在角色身体上的哪个部位(简单的例子:双手剑背在后背,而单手剑和剑鞘挂在身体一侧的腰间)。
- 类别中的武器有哪几个配件部位(刃部、连接处、杆、尾部)。
- 该类别武器拥有的用法,[见WeaponDescriptions武器用法页面](https://dev.azure.com/KnightOfTheArk/KnightOfTheArk/_wiki/wikis/KnightOfTheArk.wiki/85/WeaponDescriptions%E6%AD%A6%E5%99%A8%E7%94%A8%E6%B3%95)。
- 该锻造类可用的所有配件,[见CraftingPieces武器配件](https://dev.azure.com/KnightOfTheArk/KnightOfTheArk/_wiki/wikis/KnightOfTheArk.wiki/58/CraftingPieces%E6%AD%A6%E5%99%A8%E9%85%8D%E4%BB%B6)。
- 该xml中的数据转化为最直观的视觉图形展示及交互功能使用就是游戏中的铁匠铺中锻造武器的功能。
附一把锻造武器物品的逻辑图:
![锻造武器的逻辑图.png](../assets/锻造武器的逻辑图-911958dc-b56f-4bb5-87c9-f34b0b017034.png)
# 特点
- 模组难以往原版自己的锻造类别数据里添加新的配件,往往会崩溃,也研究不明白。所以都是创建模组自己的新的武器锻造类别,方便管理。
- 但是建议在规划好锻造类别后依然采用“原封不动地复制骑砍2自己的数据”的方法除了登记的可用配件以外大部分内容没有更改的需求。
- 建议武器可以用的配件部位都设定为四个全有。然后每个部位都创建一个“空”配件注册给所有的锻造类别。“空”配件的数据复制使用骑砍2自己的"default_polearm_pommel"配件改改类型即可。如果不这样做,后续美术或策划有新的给一把武器添加配重或特殊部位的需求的时候,就要大改这个类别下已有的所有锻造武器物品了。
- 手办类武器,即单手双手等多用法武器,在类别中的"<WeaponDescriptions>"元素中登记对应的特殊手办用法即可。后续元素说明中会详细展示,而用法部分详见[见WeaponDescriptions武器用法页面](https://dev.azure.com/KnightOfTheArk/KnightOfTheArk/_wiki/wikis/KnightOfTheArk.wiki/85/WeaponDescriptions%E6%AD%A6%E5%99%A8%E7%94%A8%E6%B3%95)。
# 格式示范
```
<CraftingTemplate id="OneHandedSword"
item_type="OneHandedWeapon"
modifier_group="sword"
item_holsters="sword_left_hip_3:sword_left_hip:sword_left_hip_2:sword_back"
piece_type_to_scale_holster_with="Blade"
hidden_piece_types_on_holster="Blade"
default_item_holster_position_offset="0,0,-0.1">
<PieceDatas>
<PieceData piece_type="Handle"
build_order="0" />
<PieceData piece_type="Guard"
build_order="1" />
<PieceData piece_type="Blade"
build_order="2" />
<PieceData piece_type="Pommel"
build_order="-1" />
</PieceDatas>
<WeaponDescriptions>
<WeaponDescription id="OneHandedSword" />
</WeaponDescriptions>
<StatsData>
<StatData stat_type="Weight"
max_value="7.0" />
<StatData stat_type="WeaponReach"
max_value="300" />
<StatData stat_type="ThrustSpeed"
max_value="200" />
<StatData stat_type="SwingSpeed"
max_value="200" />
<StatData stat_type="ThrustDamage"
max_value="500" />
<StatData stat_type="SwingDamage"
max_value="500" />
<StatData stat_type="Handling"
max_value="200" />
</StatsData>
<UsablePieces>
<UsablePiece piece_id="empire_blade_1" />
<UsablePiece piece_id="empire_noble_blade_1" />
<UsablePiece piece_id="empire_noble_blade_2" />
<UsablePiece piece_id="empire_noble_blade_3" />
<UsablePiece piece_id="empire_noble_blade_4" />
</UsablePieces>
</CraftingTemplate>
```
# 元素说明
- id
- 该锻造类的ID
- 不可空。
- item_type
- 该锻造类中的物品所属的物品类别。
- 单手类武器物品"OneHandedWeapon"
- 双手类武器物品"TwoHandedWeapon"
- 长杆类武器物品"Polearm"
- 投掷类武器物品"Thrown"
- 制作流程上通常最初规划完成后直接找到正确的类别数据完全复制骑砍2自己的这一项不作任何修改。
- 不可空。
- modifier_group
- 该锻造类中的物品的前缀系统类别。
- 剑类前缀"sword"
- 斧类前缀"axe"
- 锤类前缀"mace"
- 长杆类前缀"polearm"
- 飞刀类前缀"knife_throwing"
- 飞斧类前缀"axe_throwing"
- 矛类的可投掷型前缀"spear_dart_throwing"
- 制作流程上通常最初规划完成后直接找到正确的类别数据完全复制骑砍2自己的这一项不作任何修改。
- 不可空。
- 其他详见[ItemModifiers物品前缀页面](https://dev.azure.com/KnightOfTheArk/KnightOfTheArk/_wiki/wikis/KnightOfTheArk.wiki/147/ItemModifiers%E7%89%A9%E5%93%81%E5%89%8D%E7%BC%80)。
- item_holsters
- 很可能是用于:角色未手持该武器时,武器的模型物品挂在角色身体上的哪个部位。
- 例如:双手剑经常背在后背;单手剑经常和剑鞘挂在身体一侧的腰间。
- 格式上每一个位置的id用":"英文冒号键隔开。
- 制作流程上通常最初规划完成后直接找到正确的类别数据完全复制骑砍2自己的这一项不作任何修改。
- 不可空。
- piece_type_to_scale_holster_with
- 猜测是用于将剑鞘等的模型大小绑定至指定的配件尺寸大小。一般都是刃部。
- 制作流程上通常最初规划完成后直接找到正确的类别数据完全复制骑砍2自己的这一项不作任何修改。
- 只有有收纳容器的武器类别存在该元素。
- hidden_piece_types_on_holster
- 与武器的收纳容器模型有关,但不知道具体用途。
- 制作流程上通常最初规划完成后直接找到正确的类别数据完全复制骑砍2自己的这一项不作任何修改。
- 只有有收纳容器的武器类别存在该元素。
- default_item_holster_position_offset
- 可能与武器未手持时的模型挂在的部分坐标点有关,但不知道具体用途。
- 制作流程上通常最初规划完成后直接找到正确的类别数据完全复制骑砍2自己的这一项不作任何修改。
- 不可空。
- use_weapon_as_holster_mesh
- 可能是用于无收纳容器模型的武器类别。意思是这个武器挂在身上的样子与手持的模型完全一样,并不是收纳进容器后的模型样子。
- 可填"true"。
- 不填则默认为"false"。
- 制作流程上通常最初规划完成后直接找到正确的类别数据完全复制骑砍2自己的这一项不作任何修改。
- always_show_holster_with_weapon
- 猜测是用于那些手持该武器时也会同时展示收纳在容器状态的模型的武器类别。
- 可填"true"。
- 不填则默认为"false"。
- 制作流程上通常最初规划完成后直接找到正确的类别数据完全复制骑砍2自己的这一项不作任何修改。
- rotate_weapon_in_holster
- 在收纳进容器的状态时,该武器的模型是否旋转。
- 只用在标枪类中。
- 可填"true"。
- 不填则默认为"false"。
- 制作流程上通常最初规划完成后直接找到正确的类别数据完全复制骑砍2自己的这一项不作任何修改。
- PieceDatas
- 该锻造类别的武器拥有哪几个配件部位。
- 刃部——Blade。
- 连接处——Guard。在单手剑双手剑中也叫护手。
- 杆——Handle。也叫握把。
- 尾部——Pommel。也叫配重。
- 数字越大,越靠武器的前端,反之靠近角色手持的位置。
- 建议武器可以用的配件部位都设定为四个全有。然后每个部位都创建一个“空”配件注册给所有的锻造类别。“空”配件的数据复制使用骑砍2自己的"default_polearm_pommel"配件改改类型即可。如果不这样做,后续美术或策划有新的给一把武器添加配重或特殊部位的需求的时候,就要大改这个类别下已有的所有锻造武器物品了。
- 制作流程上,建议复制"OneHandedSword"中的该元素数据即可。
- 不可空。
- WeaponDescriptions
- 该锻造类别的武器能存在的用法。
- 在这里填写后,会去找用法文件中的对应用法进行读取。
- 不可空,可填写多个。但具体武器的用法情况还需要看配件是否在用法文件中登记。
- 详见[WeaponDescriptions武器用法页面](https://dev.azure.com/KnightOfTheArk/KnightOfTheArk/_wiki/wikis/KnightOfTheArk.wiki/85/WeaponDescriptions%E6%AD%A6%E5%99%A8%E7%94%A8%E6%B3%95)。
- StatsData
- 该锻造类别的武器各项属性的最大值。
- 制作流程上通常最初规划完成后直接找到正确的类别数据完全复制骑砍2自己的这一项不作任何修改。
- 不可空。
- UsablePieces
- 将该锻造类别中的所有配件的id登记在此处。
- 登记进来的配件就可以在创建具体的武器时使用了。
- 同时要将配件登记在正确的各个用法中,否则会缺失数据。