返回目录
Chapter 2 第二章:XML语法教程
开发者文档 更新于 2025-05-22 22:44:18

第二章:XML语法教程

📘 前言:为什么要学 XML?

在《骑马与砍杀2》的 MOD 开发中,XML 文件用于定义游戏世界中的几乎所有数据,如角色(Hero)、NPC(NPCCharacter)、兵种(Character)、物品(Item)、装备、派系、城镇等。掌握 XML 的语法和结构,是创建和修改 MOD 的第一步。

1️⃣ XML 基本结构与语法

✅ 1.1 元素结构

XML 文件由**元素(Element)**组成,每个元素通常包含:

<元素名 属性名="属性值">内容</元素名>

✅ 1.2 标签类型

类型示例说明
开始标签<Hero>标记元素的开始
结束标签</Hero>必须配对出现
空元素<skill id="OneHanded" value="75" />自闭合标签

✅ 1.3 属性(Attributes)

属性位于标签内部,以 属性名="属性值" 形式存在:

<Hero id="main_hero" faction="Faction.empire" />

2️⃣ XML 在《骑马与砍杀2》中的实际应用

✅ 2.1 定义英雄角色(Hero)

<Hero 
  id="main_hero_father" 
  faction="Faction.player_faction" 
  spouse="Hero.main_hero_mother" 
  text="{=rchero001}在掠袭者袭击旅店时,他机智地换上战死掠袭者的衣服幸存。" />

🔍 说明:

❌ 常见错误:

<Hero id="main" faction="Faction.empire"  // 缺少结尾标签或 / >

✅ 2.2 定义 NPC 角色(NPCCharacter)

<NPCCharacter id="lord_1_a1" default_group="HorseArcher">
  <face>
    <!-- 面部参数 -->
  </face>
  <skills>
    <skill id="OneHanded" value="75" />
    <skill id="Athletics" value="60" />
  </skills>
</NPCCharacter>

🔍 说明:

✅ 2.3 定义兵种(Character)

<Character id="imperial_infantry" name="{=char001}帝国步兵" is_noble="false">
  <equipmentSet>imperial_infantry_1</equipmentSet>
  <skills>
    <skill id="Polearm" value="80" />
  </skills>
</Character>

3️⃣ XML 编辑建议与规范

✅ 3.1 正确嵌套

<!-- 正确 -->
<skills>
  <skill id="Bow" value="70" />
</skills>

<!-- 错误:未闭合 -->
<skills>
  <skill id="Bow" value="70">
</skills>

✅ 3.2 区分大小写

XML 是 大小写敏感的,<Hero> 与 <hero> 是两个不同的标签。

✅ 3.3 特殊字符转义

如果要在文本中使用 <, >, & 等特殊字符,请用实体转义

4️⃣ 编辑工具推荐

工具推荐用途优势
Visual Studio Code编写 & 检查 XML免费,支持插件
Rider / Visual Studio查看游戏源码IntelliSense 自动补全
Notepad++ / Sublime快速查看文件轻量快速
XML Tools 插件VSCode 插件自动格式化、校验结构

5️⃣ 实践建议

6️⃣ 视频教程推荐