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.
14 KiB
14 KiB
2022年12月18日 对应游戏版本v1.0.0 皮蛋初版未完成 2022年12月21日 对应游戏版本v1.0.0 皮蛋初版完成
根元素
类型名
<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
- 该兵种的默认分组
- 可填
- Infantry 步兵
- Ranged 远程
- Cavalry 骑兵
- HorseArcher 骑射
- 影响部队移动速度。前两者为步行单位,可受到“骑行步兵”效果的加成;后两者为骑乘单位,直接增加部队移动速度。
- 影响特长Perk的判定,比如效果:当部队中步行单位占比超过50%时……;此效果即用分组来判断是否是步行单位。
- 影响野外战斗时模拟战斗(坐镇指挥)的战斗力,是骑乘单位时,战斗力乘以1.2。
- level
- 该兵种的等级
- 不可空
- 游戏中会根据等级计算得出兵的等阶Tier
- 可填
- 1 零阶,对应原版的农民,在百科全书中显示为无标志。
- 6 一阶,对应原版的新兵,在百科全书中显示标志是“一个拐”。
- 11 二阶,对应原版的贵族兵的初始兵,在百科全书中显示标志是“两个拐”。
- 16 三阶,在百科全书中显示标志是“三个拐”。
- 21 四阶,在百科全书中显示标志是“三角”。
- 26 五阶,对应原版的普通兵种顶级,在百科全书中显示标志是“三角加一横线”。
- 31 六阶,对应原版的贵族兵种顶级,在百科全书中显示标志是“三角加两横线”。
- 36 七阶,原版没有,并且代码被屏蔽,需要用代码重新开放,在百科全书中显示标志是“五星加一横线”。
- 实际上,1至5会计算为零阶,6至10会计算为二阶,11至15计算为三阶,以此类推。升级不升阶可能会产生Bug。
- 影响模拟战斗(坐镇指挥)的战斗力,等阶是多少,战斗力即多少。
- 升级前和升级后的等级差决定了升级所需经验值的多少。由公式计算得出。
- name
- 该兵种的名称。
- 加入火星人的强制读取英语翻译文件的功能后,才可以正常读取英语的翻译文件显示英文,否则英文语言设置下,游戏中显示名称只显示name中的字符。
- 格式
name="{=此处填写翻译的StringID}此处填写英文名称"
- occupation
- 该兵种的职业。
- 不可空
- 对于兵种,填写
- Soldier 大部分兵种的职业。士兵。
- CaravanGuard 商队护卫的兵种。
- Bandit 强盗的兵种。
- is_basic_troop
- 该兵种是否是兵种树的起始。
- 可填参数:"true"
- 可空,空则默认为false
- 只有正确填写此项时,百科全书中显示的与之相关的兵种才能显示为正确的兵种树状态。
- is_hidden_encyclopedia
- 是否在百科全书中隐藏。
- 可填参数:"true"
- 可空,空则默认为false
- culture
- 该兵种的文化。
- 以"Culture.文化id"的格式填写
- 不可空,特殊情况可以考虑用neutral_culture
- 见文化xml文档wiki页面
- 子元素
- 该兵种使用的脸部码。
- 不可空
- 决定了该兵种的肤色、发色、身高、胖瘦、捏脸、发型、胡子、文身或疤痕等外观的随机范围。
- 可填写三种格式
- 标准的模板id 兵种应使用这种格式。见脸部码xml文档wiki页面
- 单独的模板 通常不使用这种格式。见脸部码xml文档wiki页面
- 单独的一个脸部码 兵种通常不使用这种格式。单独的一个码会使得该兵种长得完全一样。
格式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>
- 子元素
- 该兵种的技能等级
- 可空
- 通常范围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>
- 子元素
- 该兵种的装备
- 不可空
- 必须有一套战斗装备和一套日常装备;其中,带有"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找不到时,会以空为结果,但不会崩溃。发生该问题后,通常打开百科全书查看该兵种,即可发现该兵种没有佩戴该部位的装备。
- 可填写三种格式。三种格式可以共存。
- 子元素
- 兵种的战斗装备常用格式。
- 可空。
- 可以有多个EquipmentRoster。
- 每个EquipmentRoster中包含一套装备。
- 士兵进入战场时,每个装备槽位slot,都会从所有在EquipmentRoster中读取到的slot中随机。
- 可填写的槽位slot
- Item0 武器栏的第一个武器
- Item1 武器栏的第二个武器
- Item2 武器栏的第三个武器
- Item3 武器栏的第四个武器
- Head 防具栏的头部装备
- Cape 防具栏的肩部装备
- Body 防具栏的胸部装备
- Gloves 防具栏的手部装备
- Leg 防具栏的腿部装备
- Horse 骑乘栏的骑乘装备
- HorseHarness 骑乘栏的骑乘防具装备
- 子元素
- 兵种的日常装备常用格式。
- 可空
- 填写装备模板的id,见装备模板xml文档wiki页面
- 直接填写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>