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

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

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

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

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

使用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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值