跳转到内容

Trainz/AM&C/config.txt 文件

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

Trainz 注释参考页面
目录 | 开始乐趣 | 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-build类别-区域类别-年代区域 标签等(以及它们的值),以及一些可选但非必需的历史标签(原型铁路、公司)、作者身份、许可和所有权信息标签,如创建者、组织、联系电子邮件、第三方网站 等 - 所有允许资产文件夹自定义和自文档的 Trainz 兼容资产的“定义”。好吧,除了配置更改记录,或者审查连续更改的方法。  在以上内容中,我们多次封装标签“<值>”以强调两个重要要点。 Trainz 中的所有数据都通过关键字 - 法律值关系进行定义和操作。 在计算机科学中,<值>(或法律值)是一个由枚举数据类型中的成员资格约束的列表。
 • 例如,类型二进制(也常称为“布尔”)是一种枚举类型,只有两个法律值:{ 二进制: 0, 1 },该符号“{”+term+“:”+值列表+“}”被解读为二进制集”具有成员 0 和 1”。 值列表也称为枚举列表,在本例中长度为 2,有 2 个允许的值。 列表中没有的值是非法的,将生成 Trainz 错误,并产生相关错误消息,以及阻止您将资产提交到数据库。 阻止将有故障的资产提交到数据库始于 trainz-build,对应于 TS10 和 TS09 的 TBV(以及能力)的重叠。[注 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 插入的 (copy) 。
      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. 仅复制 kuid 列,将其带到 Notepad++ 中,并 Search 从 '>' 到下一个 '<kuid' and Replace (SAR) 为 ">,<kuid",以便快速获得包含整个下载内容的 CSV。
    4. 但是,请注意你的过滤器已经只显示了这些 kuids,来自下载 + 显示在主视图中,所以将其保存在“上次下载”中。
    5. 作为一种有用技术的练习,在“就地”过滤器中添加第二个 kuid 搜索字段,并使用 AND NOT 过滤器修饰符进行分隔。应用后,如果获得了整个列表,则列表应该不显示任何内容!
    6. 由于你已将其保存,现在可以解决任何故障,并保持相同的显示顺序,方法是使用 Faulty 进行 AND 操作,只有该列表中的故障内容 会显示
       • 列表中 没有 的其他故障不会显示 - 这让你可以专注于现在最重要的事情,如果你贪心,突然拥有很多故障内容。通过查找你最感兴趣的 路线 + 会话 来解决它们,并使用 AND 技术,仅修复你需要的、参考 它们“组合依赖项” 的 kuid CSV 的内容。
       • 注意:使用已保存的筛选器,以及 **AND、**AND NOT 和 **OR 可以帮助你缩小范围、选择性查看或以其他方式组织资产管理任务。
       • 多加练习--一旦掌握,这种技巧将节省你大量时间。
       • 所有消除杂乱的过滤技巧(例如,不在 DLS 上显示内容可能是最有用的技巧),以及选择筛选条件的技巧,可以帮助你缩小搜索范围,找到你需要的或正在寻找的东西,所有这些都可以节省时间。
       • 另一个有用的技巧是反转你的选择... 假设你想尝试的路线中有三十个资产显示为已过时。 突出显示该组,**RMBh 并选择 **Show asset Versions,显示屏将只显示你高亮显示的资产及其相关资产。 现在,**RMBh 并选择 **Invert Selections,瞧!——所有更新都被突出显示,你可以将它们全部拖到下载助手里作为一个块(或者... **RMBh** 并选择 **Download**——这将为你添加它们并立即开始下载!
  4. 待续

 

文本编辑器

[edit | edit source]

config.txt 文件是 纯文本 (ASCII) 文件,尽管最古老的资产的第一行可能包含 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++ 可以将上面的内容(或 890 行这样的内容)转换为像下面这样的 CSV KUID 列表,只需不到 2 分钟 30 秒,并使用 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

使用打开的电子表格和一个临时文件,可以在 30-60 秒内获得相同的 CSV 文件(**CTRL+N** 在 Notepad++ 中。 另一个 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 技术的开发,并在三个外观漂亮但内容轻薄的 Trainz Classics 版本 TC1-TC3 (TBV 的 2.7 和 2.8) 中发布了改进,这些版本只是对 TRS2006-SP1 的增强 (重新设计),捆绑的内容太少,无法吸引许多买家。
    但 N3V Games 在 TCs 中也开始了增加加载或上传时错误检测的趋势,于是开始了一场不断加强数据模型符合定义的螺旋式上升——这些枚举数据类型大大简化了合法值的测试。REM 之类的实践和非正式标签(如 BASIC 计算机语言关键字)变成了错误生成器,尽管它们从 Trainz 1.3 和 UTC 时代就开始被广泛使用。在 V3.3 的某些 代码构建版本 中,如果资产仍然有故障,则会阻止重新提交已经打开以检查和调试的资产。(然而,该资产可以被还原,因此用户可以获得该资产的副本进行玩耍和实验。)

    具有讽刺意味的是,到 TS10-SP2 时,Trainz 社区已经意识到,即使是 Auran 的资产在 打开进行编辑 后也存在同样的缺陷——许多 Trainz 用户在打开一个 Auran 模型以将一个好的数据集定义与一个生成错误消息的数据集进行比较时,都遇到了麻烦。

 

 

参考资料

[编辑 | 编辑源代码]

 

华夏公益教科书