跳转到内容

Trainz/AM&C/config.txt 文件

来自维基教科书,开放的世界,开放的书籍
logo
Trainz 资产维护与创建

Trainz 注释参考页
TOC | 开始娱乐 | AM&C | 创建 | 书中参考资料 ORP 参考资料:  • 索引 • 容器 • 种类 • 标签 | 附录  • 版本
 词汇表
 HKeys-CM
 HKeys-DVR
 HKeys-SUR
 HKeys-WIN
 鼠标使用
 符号
有关 config.txt 文件的介绍性文章,请参见 Trainz/Config.txt 文件。有关该主题的参考信息,请参见 Trainz/references/config.txt 文件

基础知识

[编辑 | 编辑源代码]

所有资产必须有一个 config.txt 文件才能放入 Trainz,否则它们就不是资产。也称为“配置文件”或简称“配置”,config.txt 文件无论以何种名称存在,都包含有关资产的基本信息,最重要的是它的种类 = <值>,包括它的 用户名KUID 编号Trainz 版本类别区域类别年代区域 标签等(以及它们的 <值>),以及一些可选的但非必要的历史标签(原型铁路、公司)、作者、许可和所有权信息标签,如创建者、组织、联系电子邮件、第三方网站 等 - 所有允许资产文件夹成为自定义和自文档 Trainz 兼容资产的“定义”。好吧,除了配置更改记录,或查看连续更改的方法。  在上述内容中,我们多次封装标签“<值>”以强调两个重要点。Trainz 中的所有数据都是通过关键字 - 合法值关系来定义和操作的。在计算机科学中,<值>(或合法值)是一个由枚举数据类型成员资格约束的列表。
 • 例如,类型 Binary(也经常称为“Boolean”)是一个枚举类型,只有两个合法值:{ binary: 0, 1 },该符号“{”+术语+“:”+值列表+“}”读作集合 Binary 具有成员零和一”。值列表也称为枚举列表,在此长度为 2 的示例中,有两个允许的值。任何不在列表中的内容都是非法的,将生成 Trainz 错误,以及相关的错误消息,并阻止您将资产提交到数据库中。阻止将有缺陷的资产提交到数据库始于与 TS10 和 TS09 的 TBW(以及功能)重叠的 Trainz 版本 中。[注释 1]

 • 了解什么是什么,什么做什么,何时合适,何时不合适是主题 - 本页面致力于消除 N3V Wiki 中更正式的介绍中所有“定义”带来的神秘感,即使是经验丰富的软件专业人士也会感到困惑,更不用说新手了。让我们让您走上掌握 Trainz 基本知识 (TBK) 的正确道路。

在本页面中,我们将深入了解资产的一些基本原理,并帮助您轻松学习一些人花了数年时间才掌握的东西!真是太划算了!

 

关于 config.txt 文件的一些一般性要点

[编辑 | 编辑源代码]

有缺陷资产的许多问题都是由 config.txt 文件中的简单键入、嵌套或拼写错误造成的。当引号的嵌套不正确时,这种类型的一个衍生效应,通常是因为缺少或多余的引号。当这是真的时,CM/CMP 在打开文件时将尝试修复它找到的内容,并且当它尝试将文本段落解析为关键字和值时,这会创建一系列错误的标签名称错误。这会导致一系列错误(加载!20 多个),通常会插入空格,并且生成的文本被引号引用的方式更糟糕 - 该文本看起来像是世界末日击中了该页面的一部分。这通常发生在较大的文本块内,例如 许可证描述。幸运的是,这些“无用的帮助”可以在几分钟内手动编辑以进行更正。(这种“爆炸式自动修复”比 TRS2004 和更早的 Trainz 好 - 在这种类型错误以下的所有内容都消失了!幽灵软件!)

使用搜索"在对大型文本字段进行任何编辑时检查引号嵌套是一个很好的软件实践,可以避免这种小麻烦,而是有一个正常修复的资产。



其他错误,特别是在 V3.3 之后,是由于 数据模型定义 的更改以及对自 V2.8 以来一直存在的,现在称为 TrainzBaseSpec 的内容执行造成的 - 该数据集始终初始化所有 config.txt 文件的主体,并设置自定义资产系统。基于这些 TBS 值中的某些值,其他数据随后被添加进来以配置资产,包括对其他包含的资产 组件文件 的引用,例如图像、脚本文件texture.txt 文件 和细节级别 (LOD) *.LM 文件。该自定义的起点是 TBS 的作用,而资产中所有元素的定义和引用则是它 config.txt 文件的作用。底线是,几乎所有资产修复都需要更改 config.txt 文件 - 这是一种罕见的错误,它需要另一种不需要的修复!

术语纹理文件 或 LOD 文件在上下文中容易混淆。如果程序员在论坛上提到其中一个,他们可能指的是一个压缩的最终文件。如果该术语被用户或内容创建者使用,他们可能指的是图像文件,或者指的是图像文件和适用的 texture.txt 文件 - 这两个都是 CM 在提交资产时创建的二进制 .texture 文件 的未压缩形式。这就是为什么 config.txt 文件对 texture.txt 文件的引用不能包含 .txt 扩展名 - 数据库只看到 .texture 文件,并且文件路径引用需要正确引用它以进行内部数据库链接。
  • 类似地,LM 和 LOD 网格的网格引用会被合并和压缩。Ø



技巧和窍门

[编辑 | 编辑源代码]
  1. 由于配置文件是自定义资源的核心,因此在使用 CM 打开资源进行编辑时,无论是新手还是经验丰富的用户,都应该养成良好的习惯。
    1. 方法 1: (SHFT+CTRL+E 打开资源,然后进入文件夹)
      1. 在编辑配置文件之前,使用“另存为”功能进行复制。
      2. 或者,先使用 Windows 复制文件(选择,CTRL+C,选择文件夹,CTRL+V)。使用F2 重命名文件为 Config.org.txt... 或者保留文件名,并在文件名中添加由 Windows 添加的“(副本)”。
      3. 然后,且仅然后打开原始配置文件进行编辑。
    2. 方法 2: (最快: 可能取决于您的文本编辑器)
      从文件夹中打开 config.txt 文件,然后立即ALT+Tab ↹ 返回文件夹。
      1. config.txt 文件应该仍然处于高亮状态(选中状态),因此接下来按F2并在 .txt 扩展名前添加 .org.v2-4 等。(Trainz 在验证和提交资源时不会容忍未知的数据文件类型,因此只能使用合法的基于文本的文件类型,例如 .txt 扩展名或 .htm。)
      2. 完成编辑后,ALT+Tab ↹ 返回编辑器。
         • Notepad++ 会抱怨(通知您)文件丢失,并询问是否应该将文件保留在内存中。选择“是”。Windows 记事本不会注意到文件丢失。 您的编辑器...???
  2. 强烈建议使用具有多个选项卡的程序员编辑器,该编辑器能够打开多个文件;在正则表达式中进行搜索和替换,在多个文件中进行替换,以及/或比较文件的能力。 Notepad++Programmer's NotepadCrimson Editor 都可作为免费软件使用(以及可用时间,将在 本维基教科书 中介绍),并且它们都具有大多数这些有用的功能。
     • 至少,Notepad++——它还可以在行尾字符之间进行搜索和替换,这对于将多个 kuids 合并成 CM 可接受的逗号分隔列表(CSV)非常有用,将在许多 Trainz 屏幕截图中出现。
  3. 有针对性地下载并少量下载!在 Trainz 体验的早期下载过程中,请有针对性地下载少量资源,不要超过两屏。
    1. 下载完成后,在主视图中查看资源组,全部复制,并将 CSV 列表转移到类似 Open Office Calc 的电子表格中。如果标题中有逗号 (用户名),您可能需要清理一些单元格,但您将有两个可排序数据列作为日志文件。
       • 养成在输入数据后立即保存的习惯,并在离开应用程序之前整理数据。您可能会断电或更糟的是忘记!
    2. 如果您将作为运行日志,并不断追加,在另一个列中添加一些类型数据,它会为 特殊选择过滤器 创建一个方便的列表,以便根据下一段进行构建路线。
       • 当然,您无需将这些副本限制在下载的内容中,任何主视图中列出的项目都可以高亮显示并添加!
    3. 仅复制 kuids 列,将其带到 Notepad++ 中,并Search 从 '>' 到下一个 '<kuid' and Replace (SAR) 为 ">,<kuid",以快速获取包含整个下载的 CSV 文件。
    4. 但是,请注意,您的过滤器已经显示了仅这些 kuids,来自下载+显示在主视图中,因此将这些 kuids 保存到“上次下载”中。
    5. 作为一项实用技巧的实践,在“就地”过滤器中添加第二个 KUID 搜索字段,并将这两个字段用 **AND NOT** 过滤器修饰符隔开。应用后,如果获得了整个列表,列表应该显示为空。
    6. 由于你已经保存了它,你现在可以通过与 **Faulty** 进行 AND 操作来解决任何故障并保持相同的显示顺序,并且只有该列表中的错误项 *将出现*。
       • 不在列表中的其他错误不会出现——如果你贪心并突然拥有大量错误内容,这将让你专注于现在最重要的事情。通过查找你最感兴趣的 路线+会话 来逐步解决它们,并使用 AND 操作技术来修复你针对其 *组合依赖项* 的 KUID CSV 文件所需的目标。
       • 注意:使用带 **AND**,**AND NOT** 和 **OR** 的已保存过滤器在缩小范围、选择性查看或以其他方式组织你的资产管理任务方面可以提供很大帮助。
       • 练习、练习、练习——一旦掌握这项技巧,它将为你节省大量时间。
       • 所有消除杂乱的过滤技术(在 DLS 上不显示内容可能是最有用的),以及选择筛选条件的技巧,都可以缩小你的搜索范围,找到你需要的或正在寻找的内容,从而节省时间。
       • 另一种有用的技巧是反转你的选择……假设你在你想要尝试的那条路线中显示了 30 个资产为已过时。突出显示该组,**RMBh** 并选择 **Show asset Versions**,显示将只显示你突出显示的资产及其相关资产。现在,**RMBh** 并选择 **Invert Selections**,瞧——所有更新都被突出显示,你可以将它们全部拖放到下载助手中的一个块中(或者……**RMBh** 并选择 **Download**——这将为你添加它们并立即开始下载!
  4. 待续

 

文本编辑器

[edit | edit source]

config.txt 文件是 纯文本 (ASCII) 文件,尽管最旧的资产的第 1 行可能包含 BOM(字节顺序标记)代码。它们应该使用非格式化程序进行编辑,例如 Windows 记事本、ConTEXT、Notepad++、Programmer's Notepad 或其他非字处理器的 文本编辑器——其中许多也被称为程序员编辑器。

警告:  config.txt 文件 *不能* 使用文字处理器程序进行编辑,例如微软的 Works、Word、Wordpad、Magic Pencil 或 Open Office 的 Writer——任何 WYSIWYG 编辑器!
为什么? 它们都会在文件里嵌入额外的非打印字符作为控制代码,并破坏资产 *使它变成错误的*!为了了解命名方面的见解和规则,**请参阅链接的 ACS 文本格式规范** 部分



其中一个文本程序是 ConTEXT,它在与 Wulf/Wulf9 的 TPR 的语法文件帖子 语法文件一起使用时,会提供语法高亮显示。你需要在上面的链接(TrainzProRoutes)注册才能下载语法文件。ConTEXT 还会显示匹配的括号,这在故障排除时非常有用,需要注意的是,N3V Games 在 TrainzOnline Wiki 的几篇文章中也提到了这个文本编辑器。

本书中的许多示例将使用 免费软件 Notepad++ 程序员编辑器,它具有多个选项卡(文件处理)、搜索和替换 (SAR) 功能,可以在文件和打开的文件中进行搜索和替换,以及正则表达式 (REGEX) 搜索和 SAR 处理、跨行断点 (换行符或换行符) SAR 等功能。这些功能在克服来自 内容管理器 的笨拙输出或在 修复错误内容 方面大有帮助。

示例 1A
2014-0417-1 List of 982 DAVESNOW assets crossloaded new TS12 to old F~TS12

Anhaen,<kuid2:95148:10182:1>
AnhaengerLeer,<kuid2:68787:25265:9>
Anhaen 1,<kuid2:95148:10183:1>
Appliances Industry Corp,<kuid:58223:26098>
Arcon Mk V,<kuid:225064:4010965>
ATLS CONTROLLER,<kuid2:76656:500010:8>

Notepad++ 可以用不到 2 分钟 30 秒的时间将上面的内容(或类似的 890 行)转换成类似下面的 CSV KUID 列表,这需要使用 REGEX SARS 进行练习。

示例 1B

<kuid2:95148:10182:1>,<kuid2:68787:25265:9>,<kuid2:95148:10183:1>,<kuid:58223:26098>,<kuid:225064:4010965>,<kuid2:76656:500010:8>

示例 2

使用打开的电子表格和一个草稿文件(在 Notepad++ 中 **CTRL+N**)可以在 30-60 秒内获得相同的 CSV 文件。另一个 Notepad++ 选项卡可用于保存此类组的运行列表,以备将来过滤使用。
 • (集中你 Trainz 文档的存储位置,只放在一个主目录中——几个月后找东西非常烦人!)
 • kuid 字段可以包含数千个 CSV kuid,因此,如果保存带有标题,此类捆绑包具有很大的价值。建议“ZZZ-nn 下载说明,在 9-12 个月内仍有意义”加上 - YYYY-MMDD,这样CTRL+F+ZZZ- 可以导航保存以向上或向下保存! 

拼写正确是一个精确的需要

[edit | edit source]

标签关键字必须拼写正确,并且在指定每个 标签容器 值的参数时必须使用正确的语法。由于计算机程序将解释其内容,因此需要精确的准确性。

  • 请注意,某些术语对于北美英语使用者来说拼写似乎很奇怪,而对于那些接受过前大英帝国所产生的社会教育的人来说,其他术语拼写也很奇怪。澳大利亚铁路文化借鉴了这两个国家的设备和培训师,他们引入了各自的传统,因此铁路术语有一些混合,因此术语的拼写也有一些混合。



 

大括号规则

[edit | edit source]

大括号 {} 用于指定那些需要多行的相关数据对的标签对或组的内容的起始和结束点。这些被称为 容器,一种特殊的容器类型,KIND 在很大程度上决定了 config.txt 文件中数据的处理方式(以及如果指定错误会发生哪些错误)。每个左大括号都必须有一个相应的右大括号,并且 所有“左大括号”都必须始终空格空格Tab ↹ 前缀。换句话说)。某些标签可以嵌套,在这种情况下允许结构如 { { } },并带有前面提到的空格条件。

 

Kuids 和 Kuid2s

[edit | edit source]

kuid 必须使用以下格式之一指定

  • <kuid:nnnn:nnnn>
  • <kuid2:nnnn:nnnn:nn>,(其中数字位数可能有所不同)
注意,根据定义,<kuid:nnnn:nnnn> 等于 <kuid2:nnnn:nnnn:0>

kuid 或 config.txt 文件中任何实际上不是文本双引号引起来的规范,可以选择用一对双引号括起来,例如:"<kuid:nnnn:nnnn>",trainz-build "2.9"

 

标签、种类和容器名称

[edit | edit source]
Trainz 中的每个值都是一个数据对的一部分 - 称为 标签引用 的密钥代码和数据
  1. 容器 包含多个定义,包括数据类型(如小数、整数和字符串)的混合,但它们彼此相关。
  2. 种类是特定类型资产独有的容器,而容器是多种 KIND 所需的相关数据元素的集合。

以下标签是必需的

  • kind
  • kuid
  • username
  • category-class
  • category-era
  • category-region


config.txt 文件中的一些常见错误

[edit | edit source]
  • 不匹配的大括号。
  • 任何紧跟左大括号的非空格字符。
  • 任何紧跟左尖括号的非空格字符,除了在允许使用 HTML 的地方。

对于下表中的项目,如果该项目用作关键字,则只会发生错误。在文本字符串(如描述)中,可以使用任何拼写、空格和标点符号。

不正确 正确
behaviour behavior
colour color
discription description —Jcitron 最喜欢的愚蠢错误
independent independant(即澳式英语!与正确的美国英语拼写相反)
kuid { kuid-table {
kuid{ kuid-table {
kuid<kuid:... kuid <kuid:...
kuid table kuid-table
kuidtable kuid-table
对于任何带连字符的关键字 keyword-table {
obsolete obsolete-table {
obsolete{ obsolete-table {
obsolete table obsolete-table
obsoletetable obsolete-table
table{ table {
trainz-build "utc" trainz-build 1.5
trainz-build "1.5"

TRS 2004 和 TRS 2006

[edit | edit source]
特殊情况...

在 TRS2004 及更早版本的 Trainz 中,在编辑 config.txt 文件后,需要删除 Cache\world_cache_Dispatcher.chump 文件,否则 Trainz 将使用该文件的旧版本。这仅在修改的 config.txt 文件位于 World\Dispacher\ 层次结构中时才需要。如果您正在编辑 World\Custom\ 层次结构中的文件,则无需删除 .chump 文件。

对于 TRS2004 用户,Trainz Objectz 免费的第三方实用程序可用于扫描已安装的资产以查找其 config.txt 文件 中的常见错误,并选择性地自动更正其中的一些错误。这启发了 内容管理器 的开发。

对于 TRS2006-SP1 和 TC 用户,CMP 提供了良好的错误检查,但要小心,如果弄乱了括号,您可能会发现后面的任何内容都消失了。因此建议在编辑之前进行备份。

在更新的版本(约 2010 年)中,额外的 PEVtools 应该在 TR 中不起作用,但是将安装程序放在 ..\bin\...\Openwith 中的批处理文件的副本放在更新的版本中,可以使它们正常工作。与 TS09 及更高版本不同,它们不能从 CMP 内部启动。
  • 可能还需要在某些 texture.txt 文件 中进行额外的更正,以使用 hack-hack(“//”)风格的行开头注释来注释掉任何存在的“AlphaHint”行。
  • 在运行 PM2IM 和 Images2TGA PEVtools 后,对于较旧的资产,将 [[Trainz/refs/TrainzBaseSpec#

trainz-build| trainz-build]] 更新到 v2.5 或更高版本,甚至 PEV 的 Mesh Viewer 2 实用程序也能正常运行,并允许您探索纹理的应用位置(如果缺少纹理,这将很有用!),截取屏幕截图等。



 

注释

[edit | edit source]
  1. N3V Games,当时是与Auran相关的较小合作伙伴,从Auran Holdings和Auran Development手中接管了Trainz的管理和开发。Auran Holdings和Auran Development过度扩展了另一种类型的电脑游戏,这些游戏利用了他们拥有的专有JET I和JET II游戏引擎。在遭受了巨大的财务损失后,Auran寻求法院保护,而N3VRFail,现在称为N3V Games,做出了安排,在法院监督下,以接管控制权的方式投资,从而挽救了运营,代价是接管了许多业务职能。
    N3V立即采取行动以产生现金流,发布了Trainz TCC合集包(Trainz:The Complete Collection),然后重新开始开发TRS2004/TRS2006技术,并对三个spiffy-looking-but-content-light Trainz Classics releases, TC1-TC3 (TBV's 2.7 & 2.8)—这些版本只是对TRS2006-SP1进行了升级(重新设计),但捆绑的内容太少,无法吸引许多买家。
    但在TC中,N3V Games也开始了加强加载或上传时错误检测的趋势,and so began an ongoing spiral of increasingly enforcing tighter data model adherence to the definitions—这些枚举类型的数据可以简化对合法值的测试。 以前称为REM(类似于BASIC计算机语言的关键字)的做法和非正式标签变成了错误生成器,尽管它们在Trainz 1.3和UTC时代很常见。 一些code build version从V3.3版本开始,一旦打开资产进行检查和故障排除,即使资产仍然有故障,也会阻止再次提交资产。(但是,可以恢复资产,因此用户可以获得资产副本以进行游戏和实验。)

    具有讽刺意味的是,到TS10-SP2,Trainz社区发现,即使Auran自己的资产在opened-for-editing后,也存在相同类型的缺陷——许多Trainz玩家在打开Auran模型以将良好的数据集定义与生成错误消息的数据集进行比较时被烧毁了。

 

 

参考资料

[编辑 | 编辑源代码]

 

华夏公益教科书