|
|
**2022年12月18日** **对应游戏版本v1.0.0** 皮蛋初版未完成
|
|
|
**2022年12月21日** **对应游戏版本v1.0.0** 皮蛋初版完成
|
|
|
# 根元素
|
|
|
<NPCCharacters>
|
|
|
|
|
|
# 类型名
|
|
|
```
|
|
|
<NPCCharacter id=""
|
|
|
元素1=""
|
|
|
元素2=""
|
|
|
……>
|
|
|
<face>
|
|
|
<face_key_template value="BodyProperty.fighter_vlandia" />
|
|
|
</face>
|
|
|
<skills>
|
|
|
<skill id="Athletics"
|
|
|
value="20" />
|
|
|
<skill id="Riding"
|
|
|
value="5" />
|
|
|
……
|
|
|
</skills>
|
|
|
<upgrade_targets>
|
|
|
<upgrade_target id="NPCCharacter.vlandian_levy_crossbowman" />
|
|
|
</upgrade_targets>
|
|
|
<Equipments>
|
|
|
<EquipmentRoster>
|
|
|
<equipment slot="Item0"
|
|
|
id="Item.vlandia_mace_1_t2" />
|
|
|
<equipment slot="Head"
|
|
|
id="Item.leather_cap" />
|
|
|
<equipment slot="Body"
|
|
|
id="Item.bandit_leather_water_flask" />
|
|
|
……
|
|
|
</EquipmentRoster>
|
|
|
<EquipmentSet id="vlandia_troop_civilian_template_t1"
|
|
|
civilian="true" />
|
|
|
</Equipments>
|
|
|
</NPCCharacter>
|
|
|
```
|
|
|
# 原版路径
|
|
|
Modules\SandBoxCore\ModuleData\spnpccharacters.xml
|
|
|
# 用途
|
|
|
## 兵种的信息
|
|
|
- 兵种的ID
|
|
|
- 兵种的默认分组
|
|
|
- 兵种的等级
|
|
|
- 兵种的名称
|
|
|
- 兵种的文化
|
|
|
- 兵种的脸部码
|
|
|
- 兵种的技能等级
|
|
|
- 该兵种的升级目标兵种
|
|
|
- 兵种的战斗装备和平民装备
|
|
|
# 特点
|
|
|
- 进入主菜单时不载入NPCCharacter角色的数据。只在载入存档的时候读取。
|
|
|
- 但如果存档中某部队中有A兵种,但在xml文件中删除了该兵种的id,游戏读取不到,就会导致存档无法进入。
|
|
|
- 所以,兵种id不可以改变,为了兼容老存档也不可以删除id。
|
|
|
- 下面未出现的元素,是做兵种时通常不出现的元素,NPCCharacter中有很多元素只在特定的情况给特定的角色用。
|
|
|
# 格式示范
|
|
|
```
|
|
|
<NPCCharacter id="vlandian_recruit"
|
|
|
default_group="Infantry"
|
|
|
level="6"
|
|
|
name="{=GEnwDYp1}Vlandian Recruit"
|
|
|
occupation="Soldier"
|
|
|
is_basic_troop="true"
|
|
|
is_hidden_encyclopedia="true"
|
|
|
culture="Culture.vlandia">
|
|
|
<face>
|
|
|
<face_key_template value="BodyProperty.fighter_vlandia" />
|
|
|
</face>
|
|
|
<skills>
|
|
|
<skill id="Athletics"
|
|
|
value="20" />
|
|
|
<skill id="Riding"
|
|
|
value="5" />
|
|
|
<skill id="OneHanded"
|
|
|
value="20" />
|
|
|
<skill id="TwoHanded"
|
|
|
value="10" />
|
|
|
<skill id="Polearm"
|
|
|
value="20" />
|
|
|
<skill id="Bow"
|
|
|
value="5" />
|
|
|
<skill id="Crossbow"
|
|
|
value="5" />
|
|
|
<skill id="Throwing"
|
|
|
value="5" />
|
|
|
</skills>
|
|
|
<upgrade_targets>
|
|
|
<upgrade_target id="NPCCharacter.vlandian_levy_crossbowman" />
|
|
|
<upgrade_target id="NPCCharacter.vlandian_footman" />
|
|
|
</upgrade_targets>
|
|
|
<Equipments>
|
|
|
<EquipmentRoster>
|
|
|
<equipment slot="Item0"
|
|
|
id="Item.vlandia_mace_1_t2" />
|
|
|
<equipment slot="Head"
|
|
|
id="Item.leather_cap" />
|
|
|
<equipment slot="Body"
|
|
|
id="Item.bandit_leather_water_flask" />
|
|
|
<equipment slot="Leg"
|
|
|
id="Item.empire_horseman_boots" />
|
|
|
</EquipmentRoster>
|
|
|
<EquipmentRoster>
|
|
|
<equipment slot="Item0"
|
|
|
id="Item.peasant_pitchfork_1_t1" />
|
|
|
<equipment slot="Body"
|
|
|
id="Item.bandit_leather_water_flask" />
|
|
|
<equipment slot="Leg"
|
|
|
id="Item.empire_horseman_boots" />
|
|
|
<equipment slot="Head"
|
|
|
id="Item.padded_cap" />
|
|
|
<equipment slot="Cape"
|
|
|
id="Item.scarf" />
|
|
|
</EquipmentRoster>
|
|
|
<EquipmentRoster>
|
|
|
<equipment slot="Item0"
|
|
|
id="Item.peasant_pickaxe_1_t1" />
|
|
|
<equipment slot="Body"
|
|
|
id="Item.sackcloth_tunic" />
|
|
|
<equipment slot="Leg"
|
|
|
id="Item.empire_horseman_boots" />
|
|
|
<equipment slot="Head"
|
|
|
id="Item.padded_cap" />
|
|
|
<equipment slot="Cape"
|
|
|
id="Item.hood" />
|
|
|
</EquipmentRoster>
|
|
|
<EquipmentSet id="vlandia_troop_civilian_template_t1"
|
|
|
civilian="true" />
|
|
|
</Equipments>
|
|
|
</NPCCharacter>
|
|
|
```
|
|
|
# 元素说明
|
|
|
- id
|
|
|
- 该兵种的ID
|
|
|
- 不可空
|
|
|
- default_group
|
|
|
- 该兵种的默认分组
|
|
|
- 可填
|
|
|
1. Infantry
|
|
|
步兵
|
|
|
2. Ranged
|
|
|
远程
|
|
|
3. Cavalry
|
|
|
骑兵
|
|
|
4. HorseArcher
|
|
|
骑射
|
|
|
- 影响部队移动速度。前两者为步行单位,可受到“骑行步兵”效果的加成;后两者为骑乘单位,直接增加部队移动速度。
|
|
|
- 影响特长Perk的判定,比如效果:*当部队中步行单位占比超过50%时……*;此效果即用分组来判断是否是步行单位。
|
|
|
- 影响野外战斗时模拟战斗(坐镇指挥)的战斗力,是骑乘单位时,战斗力乘以1.2。
|
|
|
- level
|
|
|
- 该兵种的等级
|
|
|
- 不可空
|
|
|
- 游戏中会根据等级计算得出兵的等阶Tier
|
|
|
- 可填
|
|
|
1. 1
|
|
|
零阶,对应原版的农民,在百科全书中显示为无标志。
|
|
|
2. 6
|
|
|
一阶,对应原版的新兵,在百科全书中显示标志是“一个拐”。
|
|
|
3. 11
|
|
|
二阶,对应原版的贵族兵的初始兵,在百科全书中显示标志是“两个拐”。
|
|
|
4. 16
|
|
|
三阶,在百科全书中显示标志是“三个拐”。
|
|
|
5. 21
|
|
|
四阶,在百科全书中显示标志是“三角”。
|
|
|
6. 26
|
|
|
五阶,对应原版的普通兵种顶级,在百科全书中显示标志是“三角加一横线”。
|
|
|
7. 31
|
|
|
六阶,对应原版的贵族兵种顶级,在百科全书中显示标志是“三角加两横线”。
|
|
|
8. 36
|
|
|
七阶,原版没有,并且代码被屏蔽,需要用代码重新开放,在百科全书中显示标志是“五星加一横线”。
|
|
|
- 实际上,1至5会计算为零阶,6至10会计算为二阶,11至15计算为三阶,以此类推。升级不升阶可能会产生Bug。
|
|
|
- 影响模拟战斗(坐镇指挥)的战斗力,等阶是多少,战斗力即多少。
|
|
|
- 升级前和升级后的等级差决定了升级所需经验值的多少。由公式计算得出。
|
|
|
- name
|
|
|
- 该兵种的名称。
|
|
|
- 加入火星人的强制读取英语翻译文件的功能后,才可以正常读取英语的翻译文件显示英文,否则英文语言设置下,游戏中显示名称只显示name中的字符。
|
|
|
- 格式
|
|
|
```
|
|
|
name="{=此处填写翻译的StringID}此处填写英文名称"
|
|
|
```
|
|
|
- occupation
|
|
|
- 该兵种的职业。
|
|
|
- 不可空
|
|
|
- 对于兵种,填写
|
|
|
1. Soldier
|
|
|
大部分兵种的职业。士兵。
|
|
|
2. CaravanGuard
|
|
|
商队护卫的兵种。
|
|
|
3. Bandit
|
|
|
强盗的兵种。
|
|
|
- is_basic_troop
|
|
|
- 该兵种是否是兵种树的起始。
|
|
|
- 可填参数:"true"
|
|
|
- 可空,空则默认为false
|
|
|
- 只有正确填写此项时,百科全书中显示的与之相关的兵种才能显示为正确的兵种树状态。
|
|
|
- is_hidden_encyclopedia
|
|
|
- 是否在百科全书中隐藏。
|
|
|
- 可填参数:"true"
|
|
|
- 可空,空则默认为false
|
|
|
- culture
|
|
|
- 该兵种的文化。
|
|
|
- 以"Culture.文化id"的格式填写
|
|
|
- 不可空,特殊情况可以考虑用neutral_culture
|
|
|
- [见文化xml文档wiki页面](https://dev.azure.com/KnightOfTheArk/KnightOfTheArk/_wiki/wikis/KnightOfTheArk.wiki/93/SPCultures%E6%96%87%E5%8C%96)
|
|
|
- 子元素<face>
|
|
|
- 该兵种使用的脸部码。
|
|
|
- 不可空
|
|
|
- 决定了该兵种的肤色、发色、身高、胖瘦、捏脸、发型、胡子、文身或疤痕等外观的随机范围。
|
|
|
- 可填写三种格式
|
|
|
1. 标准的模板id
|
|
|
兵种应使用这种格式。[见脸部码xml文档wiki页面](https://dev.azure.com/KnightOfTheArk/KnightOfTheArk/_wiki/wikis/KnightOfTheArk.wiki/97/BodyProperties%E6%8D%8F%E8%84%B8%E7%A0%81)
|
|
|
2. 单独的模板
|
|
|
通常不使用这种格式。[见脸部码xml文档wiki页面](https://dev.azure.com/KnightOfTheArk/KnightOfTheArk/_wiki/wikis/KnightOfTheArk.wiki/97/BodyProperties%E6%8D%8F%E8%84%B8%E7%A0%81)
|
|
|
3. 单独的一个脸部码
|
|
|
兵种通常不使用这种格式。单独的一个码会使得该兵种长得完全一样。
|
|
|
```
|
|
|
格式1:
|
|
|
<face>
|
|
|
<face_key_template value="BodyProperty.此处填写脸部模板id" />
|
|
|
</face>
|
|
|
格式2:
|
|
|
<face>
|
|
|
<BodyProperties version="4"
|
|
|
age="32.64"
|
|
|
weight="0"
|
|
|
build="0.4547"
|
|
|
key="000B7408803C10046F90BC00B2977887957995866795A3633A86FFFF29AB7B4A00070274070F1018000000000000000000000000000000000000000000F04040" />
|
|
|
<BodyPropertiesMax version="4"
|
|
|
age="32.64"
|
|
|
weight="0"
|
|
|
build="0.4547"
|
|
|
key="000B7408803C10046F90BC00B2977887957995866795A3633A86FFFF29AB7B4A00070274070F1018000000000000000000000000000000000000000000F04040" />
|
|
|
</face>
|
|
|
|
|
|
格式3:
|
|
|
<face>
|
|
|
<BodyProperties version="4"
|
|
|
weight="0.3"
|
|
|
build="0.4"
|
|
|
key="0000900A10143006685D493BBC780A4686D18674A5379AA596B62D5A727BC485017776130799B93A000000000000000000000000000000000000000068FC4083" />
|
|
|
</face>
|
|
|
```
|
|
|
- 子元素<skills>
|
|
|
- 该兵种的技能等级
|
|
|
- 可空
|
|
|
- 通常范围0至300
|
|
|
- 可填技能
|
|
|
- OneHanded
|
|
|
单手
|
|
|
- TwoHanded
|
|
|
双手
|
|
|
- Polearm
|
|
|
长杆
|
|
|
- Bow
|
|
|
弓
|
|
|
- Crossbow
|
|
|
弩
|
|
|
- Throwing
|
|
|
投掷
|
|
|
- Riding
|
|
|
骑术
|
|
|
- Athletics
|
|
|
跑动
|
|
|
- 填写其他角色存在的技能也能读取,但没有效果。特殊的,像希绝大陆模组的程序,制作了读取兵种的医疗Medicine技能等级作为其血量上限的功能。
|
|
|
```
|
|
|
格式示范:
|
|
|
<skills>
|
|
|
<skill id="OneHanded" value="此处填写单手技能值" />
|
|
|
<skill id="TwoHanded" value="此处填写双手技能值" />
|
|
|
<skill id="Polearm" value="此处填写长杆技能值" />
|
|
|
<skill id="Bow" value="此处填写弓技能值" />
|
|
|
<skill id="Crossbow" value="此处填写弩技能值" />
|
|
|
<skill id="Throwing" value="此处填写投掷技能值" />
|
|
|
<skill id="Riding" value="此处填写骑术技能值" />
|
|
|
<skill id="Athletics" value="此处填写跑动技能值" />
|
|
|
</skills>
|
|
|
|
|
|
```
|
|
|
- 子元素<upgrade_targets>
|
|
|
- 该兵种可以升级到的兵种
|
|
|
- 可空
|
|
|
- 可填写多个
|
|
|
```
|
|
|
格式:
|
|
|
<upgrade_targets>
|
|
|
<upgrade_target id="NPCCharacter.升级到的兵种id一号" />
|
|
|
<upgrade_target id="NPCCharacter.升级到的兵种id二号" />
|
|
|
……
|
|
|
</upgrade_targets>
|
|
|
```
|
|
|
- 子元素<Equipments>
|
|
|
- 该兵种的装备
|
|
|
- 不可空
|
|
|
- 必须有一套战斗装备和一套日常装备;其中,带有"civilian="true"的是日常装备,反之是战斗装备。
|
|
|
- 骑砍2的随机装备并非是按照“一套”为单位进行随机,而是每个槽位slot都进行随机。
|
|
|
- 所以,当某个兵种有五套装备时,他会使用套装A的头盔,套装B的胸甲,套装C的单手剑,套装D的盾牌,和套装E的马匹。
|
|
|
- 如果某个槽位slot出现了空,那么随机时会作为空进行随机。
|
|
|
- 所以,当某个兵种有五套装备,武器槽位二号slot Item1有两套是盾牌,有三套是空时,该兵种随机到装备盾牌的概率为五分之二;随机到不带盾牌,即空的概率为五分之三。以此方法制作概率佩戴盾牌,概率佩戴头盔等设计的兵种。
|
|
|
- 容易产生的报错
|
|
|
- 当没有日常装备,没有读取到时,会崩溃。
|
|
|
- 当日常装备中填写了非日常装备的物品时,会崩溃。(可见Items的wiki文档页面)[https://dev.azure.com/KnightOfTheArk/KnightOfTheArk/_wiki/wikis/KnightOfTheArk.wiki/122/Items%E9%98%B2%E5%85%B7%E6%9C%8D%E8%A3%85]
|
|
|
- 当装备槽位slot填写的物品不是该部位的装备时,会崩溃。
|
|
|
- 特殊的,当填写的物品id找不到时,会以空为结果,但不会崩溃。发生该问题后,通常打开百科全书查看该兵种,即可发现该兵种没有佩戴该部位的装备。
|
|
|
- 可填写三种格式。三种格式可以共存。
|
|
|
1. 子元素<EquipmentRoster>
|
|
|
- 兵种的战斗装备常用格式。
|
|
|
- 可空。
|
|
|
- 可以有多个EquipmentRoster。
|
|
|
- 每个EquipmentRoster中包含一套装备。
|
|
|
- 士兵进入战场时,每个装备槽位slot,都会从所有在EquipmentRoster中读取到的slot中随机。
|
|
|
- 可填写的槽位slot
|
|
|
- Item0
|
|
|
武器栏的第一个武器
|
|
|
- Item1
|
|
|
武器栏的第二个武器
|
|
|
- Item2
|
|
|
武器栏的第三个武器
|
|
|
- Item3
|
|
|
武器栏的第四个武器
|
|
|
- Head
|
|
|
防具栏的头部装备
|
|
|
- Cape
|
|
|
防具栏的肩部装备
|
|
|
- Body
|
|
|
防具栏的胸部装备
|
|
|
- Gloves
|
|
|
防具栏的手部装备
|
|
|
- Leg
|
|
|
防具栏的腿部装备
|
|
|
- Horse
|
|
|
骑乘栏的骑乘装备
|
|
|
- HorseHarness
|
|
|
骑乘栏的骑乘防具装备
|
|
|
2. 子元素<EquipmentSet>
|
|
|
- 兵种的日常装备常用格式。
|
|
|
- 可空
|
|
|
- 填写装备模板的id,[见装备模板xml文档wiki页面](https://dev.azure.com/KnightOfTheArk/KnightOfTheArk/_wiki/wikis/KnightOfTheArk.wiki/89/EquipmentRosters%E8%A3%85%E5%A4%87%E6%A8%A1%E6%9D%BF)
|
|
|
3. 直接填写equipment
|
|
|
- 不推荐使用。
|
|
|
- 会将填写的装备应用至所有的套装中的对应槽位slot。
|
|
|
```
|
|
|
格式示范:
|
|
|
<Equipments>
|
|
|
<!-- 此处开始格式1 -->
|
|
|
<EquipmentRoster>
|
|
|
<equipment slot="Item0"
|
|
|
id="Item.此处填写武器装备id" />
|
|
|
<equipment slot="Body"
|
|
|
id="Item.此处填写防具装备id" />
|
|
|
<equipment slot="Leg"
|
|
|
id="Item.此处填写防具装备id" />
|
|
|
<equipment slot="Horse"
|
|
|
id="Item.此处填写骑乘装备id" />
|
|
|
</EquipmentRoster>
|
|
|
<EquipmentRoster civilian="true">
|
|
|
<equipment slot="Body"
|
|
|
id="Item.此处填写日常装备可用的防具装备id" />
|
|
|
<equipment slot="Item0"
|
|
|
id="Item.此处填写日常装备可用的武器装备id" />
|
|
|
</EquipmentRoster>
|
|
|
<!-- 此处格式1结束 -->
|
|
|
<!-- 此处开始格式2 -->
|
|
|
<EquipmentSet id="此处填写装备模板id" />
|
|
|
<!-- 此处格式2结束 -->
|
|
|
<!-- 此处开始格式3 -->
|
|
|
<equipment slot="Horse"
|
|
|
id="Item.此处填写骑乘装备id" />
|
|
|
<equipment slot="HorseHarness"
|
|
|
id="Item.此处填写骑乘防具装备id" />
|
|
|
<!-- 此处格式3结束 -->
|
|
|
</Equipments>
|
|
|
``` |