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

骑砍二 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.mzph.cn/news/23898.shtml

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

相关文章

图解架构 | SaaS、PaaS、IaaS/aPaaS平台是什么?aPaaS与PaaS有什么区别?

参考 图解架构 | SaaS、PaaS、IaaS:https://www.51cto.com/article/717315.html aPaaS平台是什么&#xff1f;aPaaS与PaaS有什么区别&#xff1f;&#xff1a;https://developer.aliyun.com/article/718714 aPaaS和PaaS的区别是什么&#xff1f; aPaaS和PaaS都可以完成软件的…

Linux中安装Node

安装 先从 官方网站 下载安装包&#xff0c;有时 node 版本太新会导致失败&#xff0c;详见下方的常见问题第2点 cd /home // 创建目录&#xff0c;将下载好的 node 安装包上传到此目录 mkdir Download mkdir /usr/local/lib/node解压 // 解压&#xff0c;前面是文件当前路径…

iMX6ULL应用移植 | 移植 infoNES 模拟器(重玩经典NES游戏)

没玩过NES游戏的童年&#xff0c;可能不是80后的童年。我们小时候是从玩FC开始接触游戏机的&#xff0c;那时真的是红极一时啊&#xff0c;我上初中时还省吃俭用买了一台小霸王&#xff0c;暑假里把电视机都给打爆了&#xff01;那时任天堂单是FC机的主机的发售收入就超过全美的…

循环结构的学习

循环结构 文章目录 为什么要学习循环while循环dowhile循环偶数之和断点调试购物结算循环的选择类名和全类名摄氏华氏对照表for循环for执行次序五门功课成绩for的特殊写法break和continue录入客户信息_continue使代码优雅小数的比较不能用或! 为什么要学习循环 在编写代码时&a…

Spring集成Web

目录 1、简介 2、监听器 3、Spring提供的listener 3.1、xml 3.2、配置类 3.3、WebApplicationContextUtils 3.4、说明 4、自己复现的listener 4.1、ContextLoaderListener 4.2、WebApplicationContextUtils 4.3、Web调用 ⭐作者介绍&#xff1a;大二本科网络工程专业…

vue2-v-show和v-if有什么区别,使用场景分别是什么?

1、v-show和v-if的共同点 在vue中&#xff0c;v-if和v-show的作用效果是相同的&#xff08;不含v-else&#xff09;&#xff0c;都能控制元素在页面是否显示&#xff0c;在用法上也相同。 当表达式为true的时候&#xff0c;都会占据页面的位置 当表达式为false的时候&#xff…

AI介绍——chat gpt/文心一言/claude/bard/星火大模型/bing AI

AI体验 1. AI 介绍&#xff08;注册和使用&#xff09;1.1 Chat GPT1.2 文心一言1.3 Slack 上的 Claude1.3.1 Claude 介绍1.3.2 Claude 使用 1.4 Google的Bard1.4.1 Bard 介绍1.4.2 Bard 使用 1.5 科大讯飞的星火大模型1.5.1 星火大模型 介绍1.5.2 星火大模型 使用 1.6 new bin…

Linux软件安装

软件安装 安装软件的方式 软件的安装方式 二进制发布包安装: 软件已经针对具体平台编译打包发布&#xff0c;只要解压&#xff0c;修改配置即可rpm安装:软件已经按照redhat的包管理规范进行打包&#xff0c;使用rpm命令进行安装&#xff0c;不能自行解决库依赖问题yum安装:一…

65 # 实现 http-server 里的 gzip 压缩

用 zlib 来实现 gzip 压缩 服务端优化都是&#xff1a;压缩 缓存 前端可以通过 webpack 插件进行压缩 gzip 根据替换来实现的&#xff0c;重复率越高&#xff0c;压缩后的结果越小 const zlib require("zlib"); const fs require("fs"); const path …

数据可视化:Matplotlib详解及实战

1 Matplotlib介绍 Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表。 Matplotlib提供了一个套面向绘图对象编程的API接口&#xff0c;能够很轻松地实现各种图像的绘制&#xff0c;并且它可以配合Python GUI工具&#xff08;…

黑马程序员SpringMVC练手项目

目录 1、需求 2、项目准备 pom.xml SQL jdbc.properties log4j.properties applicationContext.xml spring-mvc.xml web.xml 3、工作流程 4、难点 项目已经上传到gitee&#xff1a;https://gitee.com/xzl-it/my-projects 1、需求 SpringMVC项目练习&#xff1a;数…

基于Open3D的点云处理14-法向量

法向量 计算法向量的接口函数&#xff1a; Open3d使用estimate_normals函数来计算法向量。其参数设置Open3d提供了3中参数搜索的方法&#xff08;所有计算的法向量模长为1&#xff09;&#xff1a; open3d.geometry.KDTreeSearchParamKNN(knn20) # 计…

Linux从安装到实战 常用命令 Bash常用功能 用户和组管理

1.0初识Linux 1.1虚拟机介绍 1.2VMware Workstation虚拟化软件 下载CentOS; 1.3远程链接Linux系统 &FinalShell 链接finalshell半天没连接进去 他说ip adress 看IP地址是在虚拟机上 win11主机是 终端输入&#xff1a; ifconfig VMware虚拟机的设置 & ssh连接_snge…

初识MySQL数据库之用户管理

目录 一、用户管理 二、用户 1. 用户信息 2. 创建用户 3. 用户登录测试 4. 删除用户 5. 设置用户远端登录 6. 修改密码 6.1 修改当前用户的密码 6.2 root用户修改指定用户的密码 三、权限 1. 数据库中的各个权限含义 2. 给用户授权 3. 查看用户拥有权限 4. 授权…

Flink之JDBC Sink

这里介绍一下Flink Sink中jdbc sink的使用方法,以mysql为例,这里代码分为两种,事务和非事务 非事务代码 import org.apache.flink.connector.jdbc.JdbcConnectionOptions; import org.apache.flink.connector.jdbc.JdbcExecutionOptions; import org.apache.flink.connector.…

设计模式概述与UML图

文章目录 一、设计模式概述1. 软件设计模式的产生背景2. 软件设计模式的概念3. 学习设计模式的必要性4. 设计模式分类&#xff08;1&#xff09;创建型模式&#xff08;2&#xff09;结构型模式&#xff08;3&#xff09;行为型模式 二、UML图1. 类图概述2. 类图作用3. 类图表示…

深入学习JVM —— GC垃圾回收机制

前言 前面荔枝已经梳理了有关JVM的体系结构和类加载机制&#xff0c;也详细地介绍了JVM在类加载时的双亲委派模型&#xff0c;而在这篇文章中荔枝将会比较详细地梳理有关JVM学习的另一大重点——GC垃圾回收机制的相关知识&#xff0c;重点了解的比如对象可达性的判断、四种回收…

215. 数组中的第K个最大元素(快排+大根堆+小根堆)

题目链接&#xff1a;力扣 解题思路&#xff1a; 方法一&#xff1a;基于快速排序 因为题目中只需要找到第k大的元素&#xff0c;而快速排序中&#xff0c;每一趟排序都可以确定一个最终元素的位置。 当使用快速排序对数组进行降序排序时&#xff0c;那么如果有一趟排序过程…

VSCode C/C++ 分目录编译配置

分目录编译配置记录 launch.json文件 注释处为修改内容 {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息&#xff0c;请访问: https://go.microsoft.com/fwlink/?linkid830387"version": "0.2.0","configur…

PHP8的表达式-PHP8知识详解

表达式是 PHP 最重要的基石。在 PHP8中&#xff0c;几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是"任何有值的东西"。 最基本的表达式形式是常量和变量。当键入"$a 5"&#xff0c;即将值"5"分配给变量 $a。&quo…