跳转到内容

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 file.

基础知识

[编辑 | 编辑源代码]

所有资源都必须有一个 config.txt 文件才能放置在 Trainz 中,否则它们就不是资源。也称为“配置文件'”或仅仅是“配置文件'”,config.txt 文件无论什么名称,都包含有关资源的基本信息,最重要的是其类型 = <值>,包括其 用户名kuid 号码trainz-build类别-区域类别-时代区域 标签等等(及其 <值>),以及一些可选的非必要的历史标签(原型铁路、公司)、作者、许可和所有权信息标签,如创建者、组织、联系电子邮件、第三方网站 等等——所有这些“定义'”使资源文件夹成为自定义和自我文档化的 Trainz 兼容资源。好吧,除了配置文件更改记录或查看连续更改的方法。  在上述内容中,我们多次封装了标签“<值>”以强调两个重要要点。Trainz 中的所有数据都是通过关键字——合法值关系进行定义和操作的。在计算机科学中,<值>(或合法值)是受枚举数据类型成员资格约束的列表。
 • 例如,二进制类型(也常称为“布尔值”)是具有两个合法值的枚举类型:{ binary: 0, 1 },该符号 *'{'+term+':'+值列表+'}' 读作二进制集合具有成员零和一”。值列表也称为枚举列表,在本例中长度为二,具有两个允许值。列表中不存在的任何内容都是非法的,将生成 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 文件的引用中 MUST NOT 包含 .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'andReplace (SAR) 为 ">,<kuid",以快速获得整个下载的 CSV。
    4. 但是,请注意您的过滤器已经只显示了这些 kuids,来自下载 + 显示在主视图中,所以将其保存到“上次下载”。
    5. 作为一种有用技术的练习,在“就地”过滤器中添加第二个 kuid 搜索字段,并用 AND NOT 过滤器修饰符分隔这两个字段。应用后,如果获得了完整列表,则列表应该显示为空!
    6. 由于您已经保存了它,因此您现在可以解决任何错误,并通过使用 Faulty 与其进行 AND 操作来保持相同的显示顺序,只有该列表上的错误项才会出现
       • 其他不在列表中的错误不会出现—这使您可以专注于现在重要的内容,如果您贪得无厌,突然有很多错误的内容。通过查找您最感兴趣的 路线 + 会话,并使用 AND 操作技术来仅修复您需要用于该目标的内容,并参考其“组合依赖项”的 kuid CSV 文件。
       • 注意:使用已保存的过滤器,包含 **AND,**AND NOT 和 **OR,可以帮助您缩小范围、选择性查看或以其他方式组织您的资产管理任务。
       • 多练习、多练习、多练习——一旦掌握了这种技巧,它将为您节省大量时间。
       • 所有消除混乱的过滤技巧(例如在 DLS 上不显示内容可能是最有用的技巧),以及选择筛选条件的技能将帮助您缩小范围,找到您需要或正在寻找的内容,所有这些都能节省时间。
       • 另一种有用的技巧是反转您的选择... 假设您在想要尝试的路线中显示了 30 个过时的资产。突出显示该组,**RMBh 并选择 **显示资产版本,显示屏将仅显示您突出显示的资产及其相关资产。现在,**RMBh 并选择 **反转选择,瞧!——所有更新都会突出显示,您可以将所有内容以块的形式拖放到下载助手(或... **RMBh** 并选择 **下载**——这将为您添加它们并立即开始下载!
  4. 待续

 

文本编辑器

[编辑 | 编辑源代码]

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

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



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

本书中的许多示例都将使用 免费软件 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 行类似内容)在不到 2 分 30 秒的时间内转换为类似以下的 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

可以使用打开的电子表格和一个草稿文件在 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 文件中的数据(以及如果指定错误会发生哪些错误)。每个左大括号必须有一个对应的右大括号,并且 所有“左大括号”必须始终空白SpaceTab ↹ 换句话说)一些标签可以嵌套,在这种情况下,允许使用诸如 { { } } 之类的结构,前提是前面的空格。

 

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's 2.7 & 2.8)的乏善可陈的发布和销售情况进行了改进。这些版本本质上是带有大量内容的TRS2006-SP1,但捆绑的内容太少,难以吸引很多买家。
    但是,在TCs中,N3V Games也开始了加强加载或上传时错误检测的趋势,并开始不断加强对数据模型的严格遵守——这些枚举类型的数据使得对合法值的测试更加容易。REM(类似于BASIC计算机语言的关键字)之类的实践和非官方标签成为了错误生成器,尽管它们自Trainz 1.3和UTC时代以来一直被普遍使用。V3.3的某些代码构建版本开始阻止对已打开以检查和排查问题的资源进行重新提交,如果该资源仍然存在故障。(但是,该资源可以恢复,因此用户可以获取该资源的副本进行播放和实验。)

    具有讽刺意味的是,到了TS10-SP2,Trainz社区意识到,即使是Auran自己的资源在打开以供编辑后,也存在着类似的缺陷——许多Trainz玩家因打开Auran模型以将其与产生错误消息的数据集定义进行比较而被烧毁。

 

 

参考资料

[编辑 | 编辑源代码]

 

华夏公益教科书