【文明6】 modinfo 文件结构详解 |
您所在的位置:网站首页 › 文明6哪里设置中文 › 【文明6】 modinfo 文件结构详解 |
(本文约4800字,阅读完大概需要 ___ 分钟) modinfo 是《文明6》 模组的信息文件,每个 mod 都会有一个这样的文件,以致于几乎每期视频都会说到它,所以干脆写一篇文章统一介绍。 一个典型的 modinfo 文件第一部分 基本结构 1、根节点modinfo 文件使用 xml 语言写成。 在 xml 的语法中,根节点只能有一个。modinfo 文件的根节点是 Mod,带有两个属性:id 和 版本号(见上图)。其中 id 是为了让你的 mod 和别人的区分开来,可以在网上搜索 guid 生成器来生成,也可以用别人的 id 然后随机改几个数字。而版本号就是个数字,随便写。 2、Properties 属性节点属性节点是必需的内容,介绍了 mod 的基本信息。以下是一些常用的选项(建议至少写前五项,参考上图)。 Name: 模组名称 Teaser: 简要信息(鼠标移到模组上会显示的内容) Description: 详细描述信息 Authors: 模组作者 CompatibleVersions: 兼容的游戏版本(1.2: 迭起,2.0: 风云,1.2,2.0: 全兼容) AffectsSavedGames: 是否会影响到已保存的游戏(0:不影响,1:影响) SpecialThanks: 特别鸣谢 Homepage: 网站(联系方式) SupportsSinglePlayer: 支持单人模式(0: 不支持,1: 支持或不写这一项,下同) SupportsMultiplayer: 支持多人模式 SupportsHotSeat: 支持热座模式 具体写法可参考上图,或者随便打开其它玩家的 mod 查看,大同小异。 3、Settings(或 FrontEndActions)前端加载项游戏要加载的内容大致可以分为两个部分,第一部分是在游戏启动后就马上加载的,称为前端加载项。当游戏主菜单出现时,就表示前端加载过程已经完成。这时候如果去看游戏日志,里面写的全都是关于这一部分的信息(因为第二部分还没加载)。 一个 mod 中要加载的文件多种多样,比如数据、图标、文本、模型等等,每一种文件都可能用不同的操作来加载。这一部分可使用的操作大致如下: UpdateDatabase:更新数据库(就是把内容加入到数据库中) UpdateIcons:更新图标 UpdateText:更新文本 UpdateColors:更新颜色 UpdateArt:更新艺术文件 ImportFiles:导入文件(一般用于替换脚本) AddMap:添加地图 前端加载项中最重要的操作 UpdateDatabase 会把 mod 的内容加到以下数据库中: "文档\My Games\Sid Meier's Civilization VI\Cache\DebugConfiguration.sqlite" 用 SqliteStudio 打开它可以看到,这一部分的内容主要是关于游戏设置、可选游戏模式、可选文明与领袖、地图大小等等,简单来说大致就是文明选择界面上显示的那些内容。 例子 假设现在有这样一个文件 config.sql,可以设置小地图的最大玩家数量为12、默认数量设为10: update MapSizes set MaxPlayers=12, DefaultPlayers=10 where MapSizeType='MAPSIZE_SMALL'; 那么它在 modinfo 中的加载方法如下:
config.sql
其它操作同理。其中的 id 是这个操作的标记,能用来锁定它在游戏日志中的的位置,可自行填写,允许重复,但不能有空格。 另外,如果你建了一个文件夹(比如 Subfolder)来存放 config.sql,那么上面第三行就变成了 Subfolder/config.sql 深坑:任何一个 mod 文件名都不能与任何游戏原文件、或者其它玩家的 mod 文件重名!! 4、Components(或 InGameActions)游戏内加载项当玩家选择好文明和领袖之后,点击“开始游戏”,游戏将会执行 InGame Actions,即游戏内加载项的过程。这里除了支持前端加载项中的那些操作(除了 AddMap ),还额外支持以下操作: AddGameplayScripts:添加游戏脚本 AddUserInterfaces:添加新界面 ReplaceUIScript:替换游戏界面脚本 UpdateAudio:更新音频(加入音频) 此时执行 UpdateDatabase 操作将会往以下数据库写入数据: "文档\My Games\Sid Meier's Civilization VI\Cache\DebugGameplay.sqlite" 大部分的游戏内容、游戏模组都是写入到它里面,比如建筑、区域、单位、资源、地形、地貌、文明、领袖、科技、文化、信仰等等绝大部分我们接触到的内容。 例子 假设现在有这样一个文件 gameplay.xml,能够解除“无法夷平首都”的限制:
因为 GlobalParameters 这个表位于游戏内数据库中,所以在 modinfo 文件中要放到 Components 或 InGameActions 节点下面:
gameplay.xml 5、Files 文件清单 上面不管是前端加载项还是游戏内加载项加入的文件,最后都需要集合起来、添加到 Files 节点中,这一步必不可少,而且也不能遗漏任何文件。 例子 上面我们加入了两个文件 config.sql 和 gameplay.xml,文件清单可以这样写: config.sql gameplay.xml 总结:在一般的 modinfo 文件中,属性 Properties 和文件清单 Files 是必需的,前端加载项 Settings 和游戏内加载项 Components 至少有一个或者全都要。 第二部分 高级用法 第一部分中介绍的四个节点 Properties、Settings、Components、Files 只是平常用得比较多的,除此之外还有 Dependencies、References、ActionCriteria、LocalizedText 等等,而且这些节点全都属于二级节点,也就是被包含在根节点 Mod 下面。 1、加载顺序在加载文件的时候,通过设置 LoadOrder 可以让某些文件的加载顺序往后排一点。比如要修改某个单位的能力值,但这个单位是 DLC 里面的,加载比较靠后,于是我们的文件必须排到它的后面。其中数值的大小没有特别要求,官方文件一般都是 100,数值越大加载越靠后。可以为负数,表示尽量早一点加载。 示例:把 gameplay.xml 所在的 UpdateDatabase 操作的加载顺序设为 100:
100
gameplay.xml
上面蓝色部分就是设置加载顺序的方法。 2、多语言支持在第一部分的 Properties 节点中,我们可以让 mod 的名称、描述、作者等拥有不同语言。具体做法是使用类似 LOC_XXXXX 这样的文本,比如在属性里面这样写 mod 的名字: LOC_MY_MOD_NAME,然后添加一个 LocalizedText 节点:
Mod Name 模组名称
这个节点是与 Properties 节点平行的,写法与 mod 中其它定义文本的 xml 文件一样。 另外还有一个方法,就是把 mod 的名称、描述、作者等这些文本放到一个文件中,比如 MyMod_Text.xml,然后在 modinfo 文件中这样写: MyMod_Text.xml 不过还是第一种方法用得比较多。 3、选择性加载(Criteria)ActionCriteria 节点用来设置某项操作所需的条件。Action 是行动、行为,Criteria 是标准、准则,合起来可以称为 行为标准。 比如我们的 mod 中有一个功能是修改总督的数值,想让这个 mod 同时兼容原版游戏和《迭起兴衰》,但原版游戏是没有总督的,这时就可以使用选择性加载方式:把有总督的内容放到另一个文件中,只有当玩家选择迭起兴衰时才加载那个文件。 以下写法可以定义一个名为 BaseRulesets 的行为标准:
RULESET_STANDARD,RULESET_EXPANSION_1, RULESET_EXPANSION_2
里面包含了三种规则:(any="1" 表示任意一项满足即可) 原版:RULESET_STANDARD 迭起兴衰:RULESET_EXPANSION_1 风云变幻:RULESET_EXPANSION_2 当玩家选择这三种规则之一时(就是说不玩情景模式时),使用这个行为标准的操作才会被执行。使用方法如下:
gameplay.xml
再来看其它情况。以下写法分别定义了一个名为 Expansion_1_2 和 Expansion_2 的行为标准:
RULESET_EXPANSION_1,RULESET_EXPANSION_2
RULESET_EXPANSION_2
其中 Expansion_1_2 只在迭起兴衰或风云变幻生效,Expansion_2 只在风云变幻生效。 此外还有一种方法更为简便,适合在小范围内使用:
RULESET_EXPANSION_2
gameplay.xml 以上就是《文明6》模组信息文件 modinfo 的有关内容,对大部分 mod 制作者来说,第一部分的内容是无论如何都必须掌握的,以后的视频中也就不再继续介绍了。第二部分较为复杂,而且还有些用法尚未列出,所以往后还会提到。 本文内容如有错误,欢迎指正! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |