骑砍二 ATC MOD 使用教程与应用案例解析

news2024/9/23 23:33:36

骑砍二 ATC MOD 使用教程与应用案例解析

作者:blibli-财不外漏 / NEXUSMODS-PuepleKarmen

案例MOD依赖:ATC - Adonnay’s Troop Changer & AEW - Adonnay’s Exotic Weaponry & New Armor

文本编辑工具:VS Code(推荐使用,简单易上手)

文章目录

  • 骑砍二 ATC MOD 使用教程与应用案例解析
    • 一、xml文件
      • 1. XML声明
      • 2. 标准XML文档格式
        • 2.1 标签格式
        • 2.2 标签属性
        • 2.3 标签元素
        • 2.4 XML 命名规则
        • 2.5 XML注释
    • 二、ATC MOD模板解析
      • 1. 兵种模板
      • 2. 配置文件
        • 2.1 大地图中兵种概率
        • 2.2 玩家领地兵种概率
    • 三、应用案例解析
      • 1. T1 登州镇民勇
        • 1.1 NPCCharacter 属性
        • 1.2 Face NPC外貌
        • 1.3 Skill 技能点数
        • 1.4 upgrade_target 升级兵种
        • 1.5 Equipments 装备
      • 2. T5 登州镇哨骑
        • 2.1 NPCCharacter 属性
        • 2.2 Face NPC外貌
        • 2.3 Skill 技能点数
        • 2.4 upgrade_target 升级兵种
        • 2.5 Equipments 装备
    • 四、如何汉化MOD

使用ATC MOD进行兵种定制不仅能够高度化定制兵种,除了决定兵种的装备、性别外,还能决定兵种的年龄范围、外貌甚至统一发型。并且其相比其他兵种自定义mod更加底层,不容易出BUG引起游戏崩溃。

20230728235705_1

一、xml文件

以下内容改编于Mozilla-XML 简介 与 菜鸟教程:XML

XML(Extensible Markup Language)是一种类似于 HTML,但是没有使用预定义标记的语言。因此,可以根据自己的设计需求定义专属的标记。这是一种强大将数据存储在一个可以存储、搜索和共享的格式中的方法。最重要的是,因为 XML 的基本格式是标准化的,如果你在本地或互联网上跨系统或平台共享或传输 XML,由于标准化的 XML 语法,接收者仍然可以解析数据。

总结: XML 和基于 XML 的语言的整个结构是建立在标签(tag)之上的。 ----XML 核心思想

1. XML声明

XML——声明并非是一种标签,其用于传输文档的元数据。

XML 文档第一行以 XML 声明开始,用来表述文档的一些信息,如:

<?xml version="1.0" encoding="UTF-8"?>

version: 当前文档使用的版本。(骑砍二所有xml版本均为1.0)

encoding: 当前文档使用的编码,英文用UTF-8,中文用UTF-16(一般只需用于汉化文件)。

image-20230730224946540

2. 标准XML文档格式

XML 定义结构、存储信息、传送信息。

2.1 标签格式

<?xml version="1.0" encoding="UTF-8"?>
<site>
  <name>RUNOOB</name>
  <url>https://www.runoob.com</url>
  <logo>runoob-logo.png</logo>
  <desc>编程学习网站</desc>
</site>

、、、 分别为标签,标签内包含了要传递的信息。

标签必须成对出现,有开始标签就需要有结束标签,例如:

  • 开始标签:
  • 结束标签:

所有的 XML 元素都必须有一个关闭标签

2.2 标签属性

与 HTML 类似,XML 元素也可拥有属性(名称/值的对)。

XML 的属性值必须加引号。

<NPCCharacters>
	<NPCCharacter id="DZ_Inf0_T1"
		is_female="true"
		default_group="Infantry"
		is_hero="false"
		is_basic_troop="true"
		level="6"
		name="{=dz_inf1_t1}Dengzhou Volunteer"
		occupation="Soldier"
		culture="Culture.empire">
        ………………
    </NPCCharacter>
    ……………
</NPCCharacters>

2.3 标签元素

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。

空元素:空元素只有开始标签,没有元素体和结束标签,但空元素一定要闭合。例如:<hello/>

一个元素可以包含:

  • 其他元素(其他标签)
  • 文本
  • 属性
  • 或混合以上所有…

XML 必须包含根元素,它是所有其他元素的父元素,比如以下实例中<Equipments>就是根元素:

		<Equipments>
			<EquipmentRoster>
				<equipment slot="Item0" id="Item.empire_sword_1_t2" />
				<equipment slot="Cape" id="Item.Grifons Archer Shoulders Black1"/>
				<equipment slot="Body" id ="Item.Grifons Knight Armor Black1"/>
				<equipment slot="Gloves" id="Item.Grifons Archer Gloves Black1"/>
				<equipment slot="Leg" id="Item.Grifons Archer Boots Black1"/>
			</EquipmentRoster>
			<EquipmentRoster>
				<equipment slot="Item0" id="Item.vlandia_sword_1_t2" />
				<equipment slot="Cape" id="Item.Grifons Archer Shoulders Black1"/>
				<equipment slot="Body" id ="Item.Grifons Knight Armor Black1"/>
				<equipment slot="Gloves" id="Item.Grifons Archer Gloves Black1"/>
				<equipment slot="Leg" id="Item.Grifons Archer Boots Black1"/>
			</EquipmentRoster>
		</Equipments>

2.4 XML 命名规则

XML 元素必须遵循以下命名规则:

  • 名称可以包含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字母 xml(或者 XML、Xml 等等)开始
  • 名称不能包含空格

可使用任何名称,没有保留的字词。

最佳命名习惯:

使名称具有描述性。使用下划线的名称也很不错:<first_name>、<last_name>。

名称应简短和简单,比如:<book_title>,而不是:<the_title_of_the_book>。

避免 “-” 字符。如果您按照这样的方式进行命名:“first-name”,一些软件会认为您想要从 first 里边减去 name。

避免 “.” 字符。如果您按照这样的方式进行命名:“first.name”,一些软件会认为 “name” 是对象 “first” 的属性。

避免 “:” 字符。冒号会被转换为命名空间来使用(稍后介绍)。

XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的命名规则来命名 XML 文档中的元素。

在 XML 中,éòá 甚至中文等非英语字母是完全合法的,不过需要留意,您的软件供应商不支持这些字符时可能出现的问题。

2.5 XML注释

注释格式为以 <!--开头,以-->结束,可以理解为常用的注释手段/**/

<!-- xml define -->
<?xml version="1.0" encoding="UTF-8"?>

二、ATC MOD模板解析

1. 兵种模板

注意,在<NPCCharacter>标签前还有一个<NPCCharacters>作为根标签,这里主要展示的是单个兵种的基础信息。

NPCCharacterWhite2

当有些标签或属性没有内容时,可以不在代码中写出来,例如一般步兵升级不像骑兵一样需要额外的马匹,所以upgrade_requires这个属性可以不写。再例如低级步兵没有那么多装备,一般就一把近战武器,所以item1、2、3也可以不写。

装备解析图:

image-20230805231949459

2. 配置文件

ATC MOD的配置文件主要是用来调整兵种生成概率。

2.1 大地图中兵种概率

一个国家通常有两种基础兵种:普通步兵和贵族步兵。拿帝国来举例就是帝国新兵和帝国禁卫新兵两种,两者在生成概率上互相独立,你可以理解为两套体系。

<?xml version="1.0" encoding="utf-8" ?>
<ATCConfig>
	<!-- Faction configuration -->
	<!-- id taken from spkingdoms.xml -->
	<!-- special case: player_faction -->
	<MapFaction id="empire">
		<Culture id="default">
			<basicTroops>
				<volunteer id="DZ_Inf0_T1" percent="80" playeronly="true" replacewith="imperial_recruit" />
			</basicTroops>
			<eliteTroops>
				<volunteer id="DZ_Kng1_T2" percent="80" playeronly="true" replacewith="imperial_vigla_recruit" />
			</eliteTroops>
		</Culture>
	</MapFaction>
	<MapFaction id="empire_w">
		<Culture id="default">
			<basicTroops>
				<volunteer id="DZ_Inf0_T1" percent="80" playeronly="true" replacewith="imperial_recruit" />
			</basicTroops>
			<eliteTroops>
				<volunteer id="DZ_Kng1_T2" percent="80" playeronly="true" replacewith="imperial_vigla_recruit" />
			</eliteTroops>
		</Culture>
	</MapFaction>
	<MapFaction id="empire_s">
		<Culture id="default">
			<basicTroops>
				<volunteer id="DZ_Inf0_T1" percent="80" playeronly="true" replacewith="imperial_recruit" />
			</basicTroops>
			<eliteTroops>
				<volunteer id="DZ_Kng1_T2" percent="80" playeronly="true" replacewith="imperial_vigla_recruit" />
			</eliteTroops>
		</Culture>
	</MapFaction>
</ATCConfig>

贵族兵种是以T2为起点,本兵种的贵族步兵ID为DZ_Kng1_T2,意思是登州镇骑兵1类T2(名为登州镇武学子弟),和帝国禁卫新兵一样,没有马匹,其与帝国禁卫新兵除了盔甲、外貌、性别以外全部一致。

这段代码的意思是,在北帝国、西帝国、南帝国中:

  • 登州镇民勇有80%的概率替换帝国新兵,并且只对玩家有效。
  • 登州镇武学子弟有80%的概率替换帝国禁卫新兵,并且只对玩家有效。

这里只填基础兵种即可,系统会根据玩家当前等级刷出基于这些基础兵种对应梯度的兵种。

效果展示:

image-20230806023733647

image-20230806023816576

2.2 玩家领地兵种概率

<?xml version="1.0" encoding="utf-8" ?>
<ATCConfig>
	<!-- Clan configuration -->
	<!-- id taken from spclans.xml -->
	<!-- special case: player_clan -->
	<Clan id="player_clan">
		<Culture id="default">
			<basicTroops>
				<volunteer id="DZ_Inf0_T1" percent="70" />
			</basicTroops>
			<eliteTroops spawnChance="15" atPower="200" spawnChanceCap="25">
				<volunteer id="DZ_Kng1_T2" percent="30" />
			</eliteTroops>
		</Culture>
	</Clan>
	
	<!-- Faction configuration -->
	<!-- id taken from spkingdoms.xml -->
	<!-- special case: player_faction -->
	<MapFaction id="player_faction">
		<Culture id="default">
			<basicTroops>
				<volunteer id="DZ_Inf0_T1" percent="70" />
			</basicTroops>
			<eliteTroops spawnChance="5" atPower="200" spawnChanceCap="25">
				<volunteer id="DZ_Kng1_T2" percent="30" />
			</eliteTroops>
		</Culture>
	</MapFaction>
</ATCConfig>

这段代码则分别表示玩家的家族和派系领地内刷新该兵种的概率了。

三、应用案例解析

MOD:ATC-New Armor Troops

这里采用两个案例,分别是T1的基础兵种登州镇民勇还有T5兵种登州镇哨骑,因为这两者不仅在游戏中差距巨大,在xml文档中的差别也很大。

首先我们先看下整个文档的结构:

<?xml version="1.0" encoding="utf-8"?>
<NPCCharacters>
 	<!-- Basic Troops -->
    <NPCCharacter>.......</NPCCharacter>
    <!-- 省略 -->
    .........
	<!-- Sword and shield cavalry -->
    <NPCCharacter>.......</NPCCharacter>
</NPCCharacters>

可以看到以根标签NPCCharacters将所有标签包裹在其中,每一个NPCCharacter都代表了一个兵种。

1. T1 登州镇民勇

为啥叫这个名,是因为本人最近刚看完《晚明》这本小说,情绪很激动,也非常喜欢陈新和刘民有的心血——登州镇,所以就按照小说中登州镇和明朝的编制,起了一系列名字。

image-20230805233212813

因为是我瞎起的,很多地方并不专业,大家想改的话可以在汉化文件里修改。

1.1 NPCCharacter 属性

<NPCCharacter id="DZ_Inf0_T1"
	is_female="true"
	default_group="Infantry"
	is_hero="false"
	is_basic_troop="true"
	level="6"
	name="{=dz_inf1_t1}Dengzhou Volunteer"
	occupation="Soldier"
	culture="Culture.empire">
  • id: DZ_Inf0_T1
    • 根据推荐的命名规范,DZ代表登州,Inf则是步兵的缩写,0代表的是步兵类型,这里是基础步兵的意思,T1代表了兵种梯度为1。
  • is_female: true
    • 本人非常喜欢看美女,所以本兵种树里的部队里全是女兵
  • default_group: Infantry
    • Infantry:步兵,以近战为主没有马的都属于这一类
  • is_hero: false
    • 非英雄,并未尝试使用true后会发生什么,害怕崩溃,就没敢试,教给大家来解密了。
  • is_basic_troop: true
    • 基础兵种,就不解释了
  • level: 6
    • 兵种等级,这里是T1,所以我们设置为6级
  • name:{=dz_inf0_t1}Dengzhou Volunteer
    • 名称id:dz_inf0_t1,用于在翻译文件中调用,因为和NPC ID是互相独立的存在,所以即使ID相同也没有问题
    • 名称:Dengzhou Volunteer,即登州镇民勇,填英文的原因是因为非语言类型的文件通常都用的utf-8编码格式,不支持中文
  • occupation: soldier
    • NPC职业:士兵
  • culture: Culture.empire
    • 文化:帝国。这里可以用游戏中的所有文化,包括自己通过MOD添加的文化,就和可以使用MOD中的武器装备一样。

1.2 Face NPC外貌

本MOD使用ATC而不是用小小战团的很大一部分原因就是因为小小战团虽然方便快捷易上手,但是他在游戏中并不支持对单个兵种的捏脸定制。而作为想要拥有一支高度定制的部队,使用这个支持捏脸数据的兵种树MOD-ATC就是不二选择。

<face>
	<BodyProperties version="4" age="22.00" weight="0.1498" build="0.2038"  key="00081C0D9800400E067CD543068745C639E87D557899C30068744B4076650E2700732003074201110000000000000FFE0000000000000000000000004CE83003"  />			
	<BodyPropertiesMax version="4" age="40.00" weight="0.16" build="0.0062"  key="002BA008D4144002478D68471386829636E78BB3766EE724B8966AB074A90B1B00802703086255100000000000000FFE00000000000000000000000041000083"  /> 
</face>

face标签分为捏脸基础值和最大值,游戏中的系统将捏脸数据编成了一系列的16进制编码,该兵种每个士兵的外貌都会在这个由基础值和最大值形成的范围中随机抽取。

可以理解为士兵都是这基础值和最大值的孩子

所有捏脸数据都可以通过在捏脸界面使用Ctrl+C进行导出,Ctrl+V进行导入。

  • 基础值导出数据如下:
<BodyProperties version="4" age="22.00" weight="0.1498" build="0.2038"  key="00081C0D9800400E067CD543068745C639E87D557899C30068744B4076650E2700732003074201110000000000000FFE0000000000000000000000004CE83003"  />

image-20230805232013848

  • 最大值导出数据如下:
<BodyProperties version="4" age="40.00" weight="0.16" build="0.0062"  key="002BA008D4144002478D68471386829636E78BB3766EE724B8966AB074A90B1B00802703086255100000000000000FFE00000000000000000000000041000083"  />

image-20230805232051631

Max由自己设置,直接导出数据并不会带有MAX字样

捏脸数据参考:bilibili-双重解放:【骑砍2捏脸】骑砍2里竟然还能捏出这么美的脸?!(内附捏脸代码及相关mod)

游戏内效果:

image-20230805234913511

image-20230805235013279

image-20230805235053920

image-20230805235754113

1.3 Skill 技能点数

<skills>
	<skill id="Athletics"
		value="20" />
	<skill id="Riding"
		value="0" />
	<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="10" />
</skills>

出于平衡性考虑,该技能点数直接套的帝国新兵的模板,即:

  • 跑动:20
  • 骑术:0
  • 单手:20
  • 双手:10
  • 长杆:20
  • 弓:5
  • 弩:5
  • 投掷:10

总计:90

本兵种树的技能点数很多都照搬于游戏本体:

  • 普通剑盾步兵用的是帝国步兵线的技能点,但鉴于帝国军团步兵止步于T5,所以T6的剑盾步兵多出来的技能点是我自己按需分配的。
  • 弓骑兵照搬的可汗亲卫线
  • 弓兵照搬的巴坦尼亚弓兵线
  • 枪骑兵照搬的帝国具装骑兵线
  • 弩兵照搬的瓦兰迪亚神射手线

剩下的兵种则是我自己分配的,例如宣导司亲卫刀盾步兵和侍从室亲卫刀盾骑兵,但点数都没超过等级上限。

image-20230806001920036image-20230806001936041

1.4 upgrade_target 升级兵种

<upgrade_targets>
	<upgrade_target id="NPCCharacter.DZ_Inf1_T2" />
	<upgrade_target id="NPCCharacter.DZ_Rng1_T2" />
</upgrade_targets>

升级路线有两个,一是步兵线,二是远程步兵线

1.5 Equipments 装备

<Equipments>
	<EquipmentRoster>
		<equipment slot="Item0" id="Item.empire_sword_1_t2" />
		<equipment slot="Cape" id="Item.Grifons Archer Shoulders Black1"/>
		<equipment slot="Body" id ="Item.Grifons Knight Armor Black1"/>
		<equipment slot="Gloves" id="Item.Grifons Archer Gloves Black1"/>
		<equipment slot="Leg" id="Item.Grifons Archer Boots Black1"/>
	</EquipmentRoster>
	<EquipmentRoster>
		<equipment slot="Item0" id="Item.vlandia_sword_1_t2" />
		<equipment slot="Cape" id="Item.Grifons Archer Shoulders Black1"/>
		<equipment slot="Body" id ="Item.Grifons Knight Armor Black1"/>
		<equipment slot="Gloves" id="Item.Grifons Archer Gloves Black1"/>
		<equipment slot="Leg" id="Item.Grifons Archer Boots Black1"/>
	</EquipmentRoster>
</Equipments>
  • <Equipments>代表装备根标签,所有装备套装都应该在这个标签内部

  • <EquipmentRoster>标签代表一套装备,一般一个<Equipments>不会超过4套(官方兵种树)

  • <equipment/>空标签则表示具体哪个装备栏装备了哪一样物品。

  • 这里我给了New Armor中的Grifons(狮鹫)T1套装,数值上作为T1兵种装备还算平衡,除了躯干部分都用的射手套装,算是把T1里面看着最轻便的装备都给了民勇。

  • 武器上用的是最低级的帝国剑和瓦兰迪亚剑。

这些游戏本体内的武器ID请配合SandBoxCore\ModuleData\Languages\CNs\std_spitems_xml-zho-CN.xmlSandBoxCore\ModuleData\items\weapons.xml文件中寻找。

MOD内的装备ID一般在MOD名\ModuleData\xxx_item.xml中可以找到。

这么给装备的总体考虑还是平衡,如果属性和装备都相差巨大的话,玩一段时间就很乏味了,我并不愿意破坏原版的乐趣。当然,如果你想要这套兵种树更加强大,可以把这些数值根据你自己的喜好来更改。

2. T5 登州镇哨骑

哨骑作为战场上的侦察兵,需要有一定机动性的同时还得有远程攻击能力,所以我给他的定位是弓骑兵。我还给她配备了一把双手长剑,拿来反步兵效果也不错。

image-20230806002322147

2.1 NPCCharacter 属性

<NPCCharacter id="DZ_Hra1_T5"
	is_female="true"
	default_group="HorseArcher"
	is_hero="false"
	level="26"
	name="{=dz_hra1_t5}Dengzhou Sentry Knight"
    upgrade_requires="ItemCategory.war_horse"
	occupation="Soldier"
	culture="Culture.empire">
  • id: DZ_Hra1_T5
    • 根据推荐的命名规范,DZ代表登州,Hra则是弓骑兵的缩写,1代表的是步兵类型,这里是1类的意思,T5代表了兵种梯度为5。
  • is_female: true
  • default_group: 弓骑兵
  • is_hero: false
  • is_basic_troop: 没有使用
    • 非基础兵种,不需要这个属性,因其默认为false,所以无需使用。
  • level: 26
    • 兵种等级,这里是T5,所以我们设置为26级
  • name: {=dz_hra1_t5}Dengzhou Sentry Knight
  • upgrade_requires: ItemCategory.war_horse
    • 升级需求:战争用马匹,一般只要不是驮马等低级马匹都可以。
  • occupation: soldier
  • culture: Culture.empire
    • 文化:帝国。这里可以用游戏中的所有文化,包括自己通过MOD添加的文化,就和可以使用MOD中的武器装备一样。

2.2 Face NPC外貌

<face>
	<BodyProperties version="4" age="22.00" weight="0.1498" build="0.2038"  key="00081C0D98004015067CD543068745C639E87D557899C30068744B4076650E2700732003074201110000000000000FFE0000000000000000000000004CE83003"  />					
	<BodyPropertiesMax version="4" age="40.00" weight="0.16" build="0.0062"  key="002BA008D4144015478D68471386829636E78BB3766EE724B8966AB074A90B1B00802703086255100000000000000FFE00000000000000000000000041000083"  />
</face>

因为该兵种的头部装备属于头冠而非头盔,为了不让穿模损坏观赏性,我给她们统一了发型(不包括发色),脸部则和其他兵种一致:

image-20230806003010207

捏脸中的数据在这一串16进制编码中都是有特定位置的,你仔细对比这两个兵种的捏脸数据就会发现发型数据的位置。

2.3 Skill 技能点数

<skill id="Athletics"
	value="80" />
<skill id="Riding"
	value="130" />
<skill id="OneHanded"
	value="100" />
<skill id="TwoHanded"
	value="90" />
<skill id="Polearm"
	value="40" />
<skill id="Bow"
	value="160" />
<skill id="Crossbow"
	value="20" />
<skill id="Throwing"
	value="60" />

出于平衡性考虑,该技能点数直接套的帝国新兵的模板,即:

  • 跑动:80
  • 骑术:130
  • 单手:100
  • 双手:90
  • 长杆:40
  • 弓:160
  • 弩:20
  • 投掷:60

总计:690

这技能来自于可汗亲卫线的T5兵种,即库赛特怯薛

2.4 upgrade_target 升级兵种

<upgrade_targets>    
	<upgrade_target id="NPCCharacter.DZ_Hra1_T6" />
</upgrade_targets>

可升级为登州镇历战哨骑,历战哨骑有四套装备,包含三种颜色的战斗旗袍与四把不同外观的双手剑。弓箭和各种属性与可汗亲卫一致。

2.5 Equipments 装备

<Equipments>
	<EquipmentRoster>
		<equipment slot="Item0" id="Item.steppe_war_bow" />
		<equipment slot="Item1" id="Item.aew_sword_lb01" />
		<equipment slot="Item2" id="Item.bodkin_arrows_a" />
		<equipment slot="Item3" id="Item.Grifons Knight Shields black" />
		<equipment slot="Head" id="Item.lilikh_tiara_black"/>
		<equipment slot="Body" id ="Item.lilikh_armor_black"/>
		<equipment slot="Gloves" id="Item.lilikh_gauntlets_black"/>
		<equipment slot="Leg" id="Item.lilikh_boots_black"/>
		<equipment slot="Horse" id="Item.t2_empire_horse" />
		<equipment slot="HorseHarness" id="Item.celtic_frost" />
	</EquipmentRoster>
	<EquipmentRoster>
		<equipment slot="Item0" id="Item.steppe_war_bow" />
		<equipment slot="Item1" id="Item.aew_sword_lb02" />
		<equipment slot="Item2" id="Item.bodkin_arrows_a" />
		<equipment slot="Item3" id="Item.Grifons Knight Shields black" />
		<equipment slot="Head" id="Item.lilikh_tiara_black"/>
		<equipment slot="Body" id ="Item.lilikh_armor_black"/>
		<equipment slot="Gloves" id="Item.lilikh_gauntlets_black"/>
		<equipment slot="Leg" id="Item.lilikh_boots_black"/>
		<equipment slot="Horse" id="Item.t2_empire_horse" />
		<equipment slot="HorseHarness" id="Item.celtic_frost" />
	</EquipmentRoster>
</Equipments>

弓箭、马匹与库赛特怯薛一致,近战武器为Adonnay’s Exotic Weaponry中的Cheal Nad’ra Longblade双手长剑,非常漂亮,给高级女兵用很搭。马具为了好看抛弃了实用性,这里我选择了凯尔特之凌。

两种Longblade:

image-20230806004152163

防具则是New Armor中的黑色战斗旗袍套装,MOD作者将其命名为Lilikh套装(莉莉丝)。

四、如何汉化MOD

在需要汉化的MOD文件目录中的ModuleData创建Languages文件夹,然后创建CNs子文件,如图所示:

image-20230806024326639

CN的意思就是Chinese,即中文简称,该目录下的language_data为语言配置文件,非常重要,作用为指定翻译文件所在位置以及翻译语言。

language_data:

<?xml version="1.0" encoding="utf-16"?>
<LanguageData id="简体中文" name="简体中文" subtitle_extension="zh-HANS" supported_iso="zh-HANS,zh,zho,chi,zh-tw,zh-sg,zh-hk" under_development="false">
  <LanguageFile xml_path="CNs/std_NewArmorTroops_xml-zho-CN.xml" />
</LanguageData>

xml_path中填写翻译文件的相对路径即可。该文件直接复制官方汉化文件的language_data.xml即可,或者直接用我这里的模板。

std_NewArmorTroops_xml-zho-CN:

<?xml version="1.0" encoding="utf-16"?>
<base xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="string">
    <tags>
        <tag language="简体中文"/>
    </tags>
        <strings>
            <string id="dz_inf1_t1" text="登州镇民勇"/>
            <string id="dz_inf1_t2" text="登州镇卫所兵"/>
            <string id="dz_inf1_t3" text="登州镇预备兵"/>
            <string id="dz_inf1_t4" text="登州镇战兵"/>
            <string id="dz_inf1_t5" text="登州镇近卫营战兵"/>
            <string id="dz_inf1_t6" text="登州镇近卫营老兵"/>

            <string id="dz_inf2_t4" text="登州镇长矛手"/>
            <string id="dz_inf2_t5" text="登州镇近卫营长矛手"/>
            <string id="dz_inf2_t6" text="登州镇近卫营历战长矛手"/>
            
            <string id="dz_inf3_t5" text="登州镇宣导司亲卫"/>
            <string id="dz_inf3_t6" text="登州镇宣导司历战亲卫"/>

            <string id="dz_rng1_t2" text="登州镇屯堡射手"/>
            <string id="dz_rng1_t3" text="登州镇预备射手"/>
            <string id="dz_rng1_t4" text="登州镇射手"/>
            <string id="dz_rng1_t5" text="登州镇近卫营射手"/>
            <string id="dz_rng1_t6" text="登州镇近卫营历战射手"/>
            <string id="dz_rng2_t5" text="登州镇特遣队"/>
            <string id="dz_rng2_t6" text="登州镇历战特遣队"/>

            <string id="dz_hra1_t5" text="登州镇哨骑"/>
            <string id="dz_hra1_t6" text="登州镇历战哨骑"/>

            <string id="dz_kng1_t2" text="登州镇武学子弟"/>
            <string id="dz_kng1_t3" text="登州镇预备骑兵"/>
            <string id="dz_kng1_t4" text="登州镇骑兵"/>
            <string id="dz_kng1_t5" text="登州镇近卫营骑兵"/>
            <string id="dz_kng1_t6" text="登州镇近卫营历战骑兵"/>
            <string id="dz_kng2_t6" text="登州镇侍从室亲卫"/>
        </strings>
    </base>

需要注意的是编码格式为UTF-16,否则可能会引发游戏崩溃。tag里面填写翻译语言,可直接填中文。

id中填写名称id,text里填写翻译结果即可。

总体来说非常简单。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/839454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【小沐学NLP】在线AI绘画网站(百度:文心一格)

文章目录 1、简介2、文心一格2.1 功能简介2.2 操作步骤2.3 使用费用2.4 若干示例2.4.1 女孩2.4.2 昙花2.4.3 山水画2.4.4 夜晚2.4.5 古诗2.4.6 二次元2.4.7 帅哥 结语 1、简介 当下&#xff0c;越来越多AI领域前沿技术争相落地&#xff0c;逐步释放出极大的产业价值&#xff0…

Amazon CloudFront 部署小指南(四)- CloudFront Function 基础与诊断

内容简介 本文适用于希望使用 Amazon CloudFront Functions 提升 Amazon CloudFront 边缘计算能力的用户&#xff0c;旨在帮助您更好的进行 CloudFront Functions 的开发、调试、测试、部署等工作。 首先我们会对 CloudFront Function 做个简单的介绍&#xff0c;然后分为七个步…

全志F1C200S嵌入式驱动开发(应用程序开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 我们在开发soc驱动的时候,很多情况下也要验证下当前的驱动功能是否正确。当然除了验证驱动功能之外,我们还要编写业务代码和流程代码。这中间就和各行各业有关了,有的是算法,有…

Redis BigKey案例

面试题&#xff1a; 阿里广告平台&#xff0c;海量数据里查询某一固定前缀的key小红书&#xff0c;你如何生产上限制keys*/flushdb/flushall等危险命令以防止误删误用&#xff1f;美团&#xff0c;MEMORY USAGE命令你用过吗&#xff1f;BigKey问题&#xff0c;多大算big&#…

GODOT游戏引擎简介,包含与unity性能对比测试,以及选型建议

GODOT&#xff0c;是一个免费开源的3D引擎。本文以unity作对比&#xff0c;简述两者区别和选型建议。由于是很久以前写的ppt&#xff0c;技术原因视频和部分章节丢失了。建议当做业务参考。 GODOT目前为止遇到3个比较重大的基于&#xff0c;第一个是oprea的合作奖&#xff0c;…

【redis】redis的认识和安装

目录 1.redis是什么2.Redis的特点3.安装redis4.设置远程连接4.1 开启隧道4.2 可视化客户端连接4.3 开启防火墙 5.redis常见数据类型5.1 redis的一些全局命令5.2 数据结构 6. redis的典型应用---缓存&#xff08;cache&#xff09;6.1 使用redis做缓存6.2 缓存穿透&#xff0c;缓…

【绪论0】

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.0 引言No.1 操作系统的概念功能和定义一、操作系统的概念和定义1、电脑的演变 二、操作系统的功能和目标 No.2 操作系统的特征一、并发二、共享三、虚拟四、异步 No.3 操作系统的发展与分类一、手工操作阶段二、批处理阶段…

Windows11 家庭中文版关于本地组策略编辑器gpedit.msc找不到即打不开的解决办法(征诚小张售后实测有效)

Windows11 家庭中文版关于本地组策略编辑器gpedit.msc找不到即打不开的解决办法 根本原因&#xff1a;是因为Windows11家庭中文版的 版本系统没内置安装本地策略组编辑器 好了废话不多说 直接说解决办法 第一步 首先电脑上新建一个空文本文件 输入以下内容&#xff1a; echo o…

Android Studio安装AI编程助手Github Copilot

csdn原创谢绝转载 简介 文档链接 https://docs.github.com/en/copilot/getting-started-with-github-copilot 它是个很牛B的编程辅助工具&#xff0c;装它&#xff0c;快装它&#xff0e; 支持以下IDE: IntelliJ IDEA (Ultimate, Community, Educational)Android StudioAppC…

Qt应用开发(基础篇)——时间类 QDateTime、QDate、QTime

一、前言 时间类QDateTime、QDate、QTime、QTimeZone保存了Qt的时间、日期、时区信息&#xff0c;常用的时间类部件都会用到这些数据结构&#xff0c;常用概念有年、月、日、时、分、秒、毫秒和时区&#xff0c;时间和时区就关系到时间戳和UTC的概念。 UTC时间&#xff0c;又称…

FPGA初步学习之串口发送模块【单字节和字符串的发送】

串口相关简介 UART 在发送或接收过程中的一帧数据由4部分组成&#xff0c;起始位、数据位、奇偶校验位和停止位&#xff0c;如图所示。其中&#xff0c;起始位标志着一帧数据的开始&#xff0c;停止位标志着一帧数据的结束&#xff0c;数据位是一帧数据中的有效数据。 通常用…

【贪心算法】leetcode刷题

贪心算法无固定套路。 核心思想&#xff1a;先找局部最优&#xff0c;再扩展到全局最优。 455.分发饼干 两种思路&#xff1a; 1、从大到小。局部最优就是大饼干喂给胃口大的&#xff0c;充分利用饼干尺寸喂饱一个&#xff0c;全局最优就是喂饱尽可能多的小孩。先遍历的胃口&a…

Win11大小写切换图标关闭方法

大家使用Win11操作系统的时候经常会切换大小写键盘&#xff0c;有些游戏本在游戏过程中需要切换大小写&#xff0c;这个时候电脑的屏幕就会出现大小写切换的图标而影响游戏体验&#xff1b; 那么想要关闭Win11电脑上大小写切换图标&#xff0c;又不知道具体怎么操作&#xff0c…

VS Code search tab

Vs Code search 栏的应用 我发现&#xff0c;在vs code种&#xff0c;上面的搜索框的功能非常多。在最初使用vscode时候&#xff0c;以为这只是一个普通的搜索框。后来&#xff0c;发现它可以用于全局搜索文件&#xff0c;比如使用ctrlshiftp。 后来&#xff0c;我发现&#xf…

lifecycleScope Unresolved reference

描述 导入了lifecycle.lifecycleScope&#xff0c;但是在activity中使用lifecycleScope报错出现Unresolved reference找不到引用。 导包 import androidx.lifecycle.lifecycleScope使用 lifecycleScope.launch(Dispatchers.IO) {...}错误 方案 代码中的activity继承Activ…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--功能实现【四】

文章目录 SSM--功能实现实现功能06-修改家居信息需求分析/图解思路分析代码实现注意事项和细节 实现功能07-删除家居信息需求分析/图解思路分析代码实现 实现功能08-分页显示列表需求分析/图解思路分析代码实现完成测试分页显示效果 SSM–功能实现 实现功能06-修改家居信息 需…

39.利用matlab寻找素数(matlab程序)

1.简述 MATLAB嵌套循环允许使用一个循环在另一循环内&#xff0c;下面用一个嵌套循环来把所有从1到100的素数显示出来。 2.代码 %% 学习目标&#xff1a;寻找素数 clear sum5; %求0&#xff5e;100素数之和 ss0; %用来标定是否是素数&#xff0c;0表示不是 p…

MongoDB SQL

Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。C:\Users\Administrator>cd C:\MongoDB\Server\3.4\binC:\MongoDB\Server\3.4\bin> C:\MongoDB\Server\3.4\bin> C:\MongoDB\Server\3.4\bin>net start MongoDB 请求的…

Mac电脑怎么使用“磁盘工具”修复磁盘

我们可以使用“磁盘工具”的“急救”功能来查找和修复磁盘错误。 “磁盘工具”可以查找和修复与 Mac 磁盘的格式及目录结构有关的错误。使用 Mac 时&#xff0c;错误可能会导致意外行为&#xff0c;而重大错误甚至可能会导致 Mac 彻底无法启动。 继续之前&#xff0c;请确保您…

【C# 基础精讲】C# 开发环境搭建(Visual Studio等)

安装C#开发环境是开始学习和使用C#编程的第一步。目前&#xff0c;最常用的C#开发环境是Microsoft Visual Studio&#xff0c;它是一套强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了丰富的工具和功能&#xff0c;使开发C#应用程序变得更加便捷。以下是安装…