骑砍二 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引起游戏崩溃。
一、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(一般只需用于汉化文件)。
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>作为根标签,这里主要展示的是单个兵种的基础信息。
当有些标签或属性没有内容时,可以不在代码中写出来,例如一般步兵升级不像骑兵一样需要额外的马匹,所以upgrade_requires
这个属性可以不写。再例如低级步兵没有那么多装备,一般就一把近战武器,所以item1、2、3也可以不写。
装备解析图:
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%的概率替换帝国禁卫新兵,并且只对玩家有效。
这里只填基础兵种即可,系统会根据玩家当前等级刷出基于这些基础兵种对应梯度的兵种。
效果展示:
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 登州镇民勇
为啥叫这个名,是因为本人最近刚看完《晚明》这本小说,情绪很激动,也非常喜欢陈新和刘民有的心血——登州镇,所以就按照小说中登州镇和明朝的编制,起了一系列名字。
因为是我瞎起的,很多地方并不专业,大家想改的话可以在汉化文件里修改。
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" />
- 最大值导出数据如下:
<BodyProperties version="4" age="40.00" weight="0.16" build="0.0062" key="002BA008D4144002478D68471386829636E78BB3766EE724B8966AB074A90B1B00802703086255100000000000000FFE00000000000000000000000041000083" />
Max由自己设置,直接导出数据并不会带有MAX字样
捏脸数据参考:bilibili-双重解放:【骑砍2捏脸】骑砍2里竟然还能捏出这么美的脸?!(内附捏脸代码及相关mod)
游戏内效果:
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的剑盾步兵多出来的技能点是我自己按需分配的。
- 弓骑兵照搬的可汗亲卫线
- 弓兵照搬的巴坦尼亚弓兵线
- 枪骑兵照搬的帝国具装骑兵线
- 弩兵照搬的瓦兰迪亚神射手线
剩下的兵种则是我自己分配的,例如宣导司亲卫刀盾步兵和侍从室亲卫刀盾骑兵,但点数都没超过等级上限。
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.xml
在SandBoxCore\ModuleData\items\weapons.xml
文件中寻找。
MOD内的装备ID一般在MOD名\ModuleData\xxx_item.xml
中可以找到。
这么给装备的总体考虑还是平衡,如果属性和装备都相差巨大的话,玩一段时间就很乏味了,我并不愿意破坏原版的乐趣。当然,如果你想要这套兵种树更加强大,可以把这些数值根据你自己的喜好来更改。
2. T5 登州镇哨骑
哨骑作为战场上的侦察兵,需要有一定机动性的同时还得有远程攻击能力,所以我给他的定位是弓骑兵。我还给她配备了一把双手长剑,拿来反步兵效果也不错。
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>
因为该兵种的头部装备属于头冠而非头盔,为了不让穿模损坏观赏性,我给她们统一了发型(不包括发色),脸部则和其他兵种一致:
捏脸中的数据在这一串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:
防具则是New Armor中的黑色战斗旗袍套装,MOD作者将其命名为Lilikh套装(莉莉丝)。
四、如何汉化MOD
在需要汉化的MOD文件目录中的ModuleData创建Languages文件夹,然后创建CNs子文件,如图所示:
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里填写翻译结果即可。
总体来说非常简单。
相关文章:

骑砍二 ATC MOD 使用教程与应用案例解析
骑砍二 ATC MOD 使用教程与应用案例解析 作者:blibli-财不外漏 / NEXUSMODS-PuepleKarmen 案例MOD依赖:ATC - Adonnay’s Troop Changer & AEW - Adonnay’s Exotic Weaponry & New Armor 文本编辑工具:VS Code(推荐使用&…...

python和c语言哪个好上手,c语言和python语言哪个难
大家好,本文将围绕python和c语言哪个更值得学展开说明,python语言和c语言哪个简单是一个很多人都想弄明白的事情,想搞清楚c语言和python语言哪个难需要先了解以下几个事情。 前言 新手最容易拿来讨论的三个语言,具体哪个好&#x…...

智能优化算法 | Matlab实现鲸鱼优化算法(Whale Optimization Algorithm)(内含完整源码)
文章目录 效果一览文章概述研究内容源码设计参考资料效果一览 文章概述 智能优化算法 | Matlab实现鲸鱼优化算法(Whale Optimization Algorithm)(内含完整源码) 研究内容 步骤 1:设置鲸鱼数量 N 和算法的最大迭代次数 tmax,初始化位置信息; 步骤 2:计算每条鲸鱼的适应度,…...

Android随笔-VPN判断
Android中判断当前网络是否为VPN /*** 判断当前网络是否为VPN* param context* return*/public static boolean hasVPN(Context context) {// 查询网络状态,被动监听网络状态变化ConnectivityManager cm (ConnectivityManager) context.getSystemService(Context.C…...

【黑马头条之kafka及异步通知文章上下架】
本笔记内容为黑马头条项目的kafka及异步通知文章上下架部分 目录 一、kafka概述 二、kafka安装配置 三、kafka入门 四、kafka高可用设计 1、集群 2、备份机制(Replication) 五、kafka生产者详解 1、发送类型 2、参数详解 六、kafka消费者详解 1、消费者…...

Modelsim打开后报unable to checkout a viewer license
找到Modelsim安装包中的MentorKG.exe文件和patch64_dll.bat文件,将这两个文件拷贝到Modelsim安装目录中的win64文件夹: 在win64文件夹中找到mgls64.dll,将它拷贝粘贴一份后修改名字为mgls.dll: 双击win64文件夹中的patch64_dll.ba…...

计算机视觉与图形学-神经渲染专题-Seal-3D(基于NeRF的像素级交互式编辑)
摘要 随着隐式神经表示或神经辐射场 (NeRF) 的流行,迫切需要与隐式 3D 模型交互的编辑方法,以完成后处理重建场景和 3D 内容创建等任务。虽然之前的作品从不同角度探索了 NeRF 编辑,但它们在编辑灵活性、质量和速度方面受到限制,无…...

synchronized的底层实现原理
技术主题 synchronized 是 Java 中用于实现线程同步的关键字。它的底层原理涉及到对象头、Monitor(监视器)和内存屏障等概念。 技术原理 技术一:对象头 对象头:每个 Java 对象在内存中都有一个对象头,用于存储对象的元数据信息,比如对象的哈希码、GC 信息以及锁状态等…...

屏幕取色器Mac版_苹果屏幕取色工具_屏幕取色器工具
Sip for Mac 是Mac系统平台上的一款老牌的颜色拾取工具,是设计师和前端开发工作者必不可少的屏幕取色软件,你只需要用鼠标点一下即可轻松地对屏幕上的任何颜色进行采样和编码,并将颜色数据自动存到剪切板,方便随时粘贴出来。 Sip…...

HDFS中的Federation联邦机制
HDFS中的Federation联邦机制 当前HDFS体系架构--简介局限性 联邦Federation架构简介好处配置示例 当前HDFS体系架构–简介 当前的HDFS结构有两个主要的层: 命名空间(namespace) 由文件,块和目录组成的统一抽象的目录树结构。由n…...

Spring Boot 单元测试
目录 1.什么是单元测试? 2.单元测试的优点 3.Spring Boot 单元测试使用 3.1 生成单元测试的类 3.2 添加 Spring Boot 框架测试注解:SpringBootTest 3.3 添加单元测试业务逻辑 3.4 注解 Transactional 4. 断言 1.什么是单元测试? 单元…...

k8s部署nginx访问Tomcat
1.nginx打包镜像 #1、编写DockerFilemkdir /opt/my_nginx_dockerfilecd /opt/my_nginx_dockerfile cat >default.conf<<EOF server {listen 80;listen [::]:80;server_name localhost;#access_log /var/log/nginx/host.access.log main;location / {root …...

springboot配置文件的使用
目录 1.application.properties是springboot默认的配置文件,但是比较繁琐,一般用.yml文件 2. 配置文件的作用 3.配置文件的使用 1.application.properties是springboot默认的配置文件,但是比较繁琐,一般用.yml文件 ①、properti…...

blender 毛发粒子
新建平面,点击右侧粒子系统,选择毛发,调整毛发长度,数量(Number),调整数量是为了避免电脑卡顿; 上面设置的每一根柱子都可以变成一个物体,点击渲染,渲染为选择…...

. 在css中的应用
正好看到一个用 &. 的css语句,感觉不太明白就去查了一下,感觉C站上缺少相关内容,所以这里就来补上一篇 &. 实际上是一种sass语法,在 Sass 中 & 表示父选择器的引用,可以用于创建更具体的选择器࿰…...

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

SQL注入 ❤ ~~~ 网络空间安全及计算机领域常见英语单词及短语——网络安全(二)
SQL注入 ❤ 学网安英语 大白话讲SQL注入SQL注入原理1. 用恶意拼接查询进行SQL注入攻击2. 利用注释执行非法命令进行SQL注入攻击3. 利用传入非法参数进行SQL注入攻击4. 添加额外条件进行SQL注入攻击 时间和布尔盲注时间盲注(Time-Based Blind SQL Injection…...

【外卖系统】新增菜品
需求分析 在后台中,通过新增功能来添加一个新的菜品,在添加菜品时需要选择当前菜品所属的菜品分类,并且需要上传的菜品图片。 代码开发 需要添加的类和基本接口:实体类DishFlavor、Mapper接口DishFlavorMapper、业务层接口Dish…...

使用docker搭建GPT服务
不用ChatGPT账号,不用API,直接免费使用上官方原版的GPT4.0! 这个操作主要使用的是GitHub上的一个开源项目freegpt。 通过docker把这个项目打包到本地电脑上,直接就能使用上原版GPT4.0。 第一步:下载Docker 下载网址:docker.com 根据自己的电脑系统下载对应的版本即可 下…...

Qt项目---简单的计算器
在这篇技术博客中,我们将介绍如何使用Qt框架实现一个简单的计算器应用。我们将使用C编程语言和Qt的图形用户界面库来开发这个应用,并展示如何实现基本的算术操作。 项目设置 首先,我们需要在Qt Creator中创建一个新的Qt Widgets应用程序项目…...

Flutter游戏引擎Flame系列笔记 - 1.Flame引擎概述
Flutter游戏引擎Flame系列笔记 1.Flame引擎概述 - 文章信息 - Author: 李俊才(jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/132119035 【介绍】…...

基于SpringBoot+Vue的地方美食分享网站设计与实现(源码+LW+部署文档等)
博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…...

在java中操作redis_Data
1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2.配置Redis数据源 redis:host: ${sky.redis.host}port: ${sky.redis.port}password: ${sk…...

嵌入式开发学习(STC51-14-时钟)
内容 在数码管上显示时间,时分秒,格式为“XX-XX-XX”; DS1302时钟芯片介绍 简介 DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信…...

ES新特性部分
文章目录 Symbol创建使用拓展对象的方法直接添加 控制对象控制类型检查控制是否展开 遍历迭代器自定义遍历 生成器函数(实现异步编程)解决回调地狱 Promise连续读文件 SetMap类静态属性继承ES5ES6 GET与SET 数值Object方法模块化导入另一种导入 babel ES…...

数据结构——搜索二叉树
文章目录 一. 概念二. 二叉搜索树的操作1.查找2.插入3.删除(重点)4.遍历5.拷贝构造与析构 三.二叉搜索树的递归实现1.递归查找2.递归插入3.递归删除 四.二叉搜索树的性能分析五.二叉树搜索的应用六.源码 前言: 本章我们将认识一种新的二叉树—…...

3.3 Makefile的嵌套包含
一、Makefile包含子Makefile的示例 下面是一个示例Makefile和sub.mk的内容。 首先是sub.mk文件的内容: VAR := Hello from sub.mksay_hello:@echo $(VAR)然后是Makefile文件的内容: include sub.mkall: say_hellosay_hello:@echo "Hello from Makefile"在这个例…...

爬虫获取电影数据----以沈腾参演电影为例
数据可视化&分析实战 1.1 沈腾参演电影数据获取 文章目录 数据可视化&分析实战前言1. 网页分析2. 构建数据获取函数2.1 网页数据获取函数2.2 网页照片获取函数 3. 获取参演影视作品基本数据4. 电影详细数据获取4.1 导演、演员、描述、类型、投票人数、评分信息、电影海…...

网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(二)前后端实现用户的登录和注册功能【用户模块】
网页版Java五子棋项目(二)前后端实现用户的登录和注册功能【用户模块】 在用户模块我们要清楚要完成的任务一、MyBatis后端操作数据库1. 需要在数据库创建用户数据库1. 用户id2. 用户名3. 密码4. 天梯积分5. 总场数6. 获胜场数 2. 创建用户类User和数据库…...

2023年华数杯数学建模A题思路代码分析 - 隔热材料的结构优化控制研究
# 1 赛题 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性,在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前,由单根隔热材料 A 纤维编织成的织物,其热导率可以直接测出;但是 单根隔热…...