跳转到内容

Trainz/AM&C/config.txt 文件

来自维基教科书,开放世界开放书籍
(重定向自 Trainz/AM&C/config)
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-build类别-区域类别-时代区域 标签等(及其 <值>)以及一些可选但非必要的历史标签(原型铁路、公司)、作者、许可和所有权信息标签,如创建者、组织、联系电子邮件、第三方网站 等 - 所有允许资产文件夹成为自定义和自文档 Trainz 兼容资产的“定义”。除了配置更改记录或查看连续更改的方法。  在上述内容中,我们多次封装了标签“<值>”,以强调两个重要点。Trainz 中的所有数据都是通过关键字 - 合法值关系定义和操作的。在计算机科学中,<值>(或合法值)是受枚举数据类型成员资格限制的列表。
 • 例如类型 Binary(也常称为“Boolean”)是一种枚举类型,它只有两个合法值:{ binary: 0, 1 },该表示法“{”+ 术语 + “:”+ 值列表 + “}”读作二进制集”具有成员零和一。值列表也称为枚举列表,在本例中长度为二,有两个允许值。列表中没有的任何内容都是非法的,将生成 Trainz 错误,以及相关的错误消息,并阻止您将资产提交到数据库。阻止将有缺陷的资产提交到数据库是在与 TS10 和 TS09 的 TBV(以及功能)重叠的 trainz-build 中开始的。[注释 1]

 • 了解什么是以及如何做,何时合适以及何时不合适是本页的主题 - 本页致力于消除 N3V 维基中所有“定义”的奥秘,即使是有经验的软件专业人员也会感到困惑和畏惧,或者甚至可能会让新手感到沮丧。让我们帮助您踏上掌握 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 并插入.org.v2-4 等在 .txt 扩展名之前。(Trainz 在验证和提交资产时,无法容忍未知的数据文件类型,因此只能使用合法的文本文件类型,例如 .txt 扩展名或 .htm。)
      2. 完成操作后,ALT+Tab ↹ 返回到编辑器。
         • Notepad++ 会抱怨(通知你)文件丢失,并询问是否应该将文件保留在内存中。选择是。Windows 记事本不会注意到它丢失了。你的编辑器...???
  2. 建议使用具有多个选项卡,能够打开多个文件,支持正则表达式搜索和替换,在多个文件中替换,以及比较文件功能的程序员编辑器。 Notepad++Programmer's Notepad,和 Crimson Editor 都可以作为免费软件使用(以及可用的时间,将在 本维基教科书 中介绍),并且每个软件都具有大多数这些有用的功能。
     • 至少,Notepad++ 可以跨行尾字符进行搜索和替换,这对将多个 kuids 合并为 CM 可接受的逗号分隔列表 (CSV) 非常有用,将在许多 Trainz 屏幕截图中出现。
  3. 有针对性地下载 并少量下载! 在 Trainz 体验的早期,仔细选择要下载的小组资产,不要超过两屏内容。
    1. 下载后,在主视图中查看该组,复制所有内容,并将 CSV 列表转移到像 Open Office Calc 这样的电子表格中。如果标题中有逗号(用户名),你可能需要清理一些单元格,但你将拥有两列可排序的数据作为日志文件。
       • 养成一有数据就保存的习惯,并在离开应用程序之前整理它。你可能会遇到断电或者更糟的是忘记保存!
    2. 如果你将它作为一个运行的日志,在使用过程中不断追加,并在另一列中添加一些类型数据,这将为 特殊选择过滤器 提供一个方便的列表,用于根据下一段内容进行线路构建。
       • 当然,你无需将这些副本限制在下载的内容上,任何在主视图中列出的项目都可以高亮显示并添加!
    3. 复制仅包含 kuids 的列,将其粘贴到 Notepad++ 中,然后从 '>' 到下一个 '<kuid' Search and Replace (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++、程序员记事本或其他非文字处理器的 文本编辑器——其中许多也称为程序员编辑器。

警告:  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 行内容)在不到 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

可以使用一个打开的电子表格和一个临时文件(**CTRL+N** 在 Notepad++ 中)在 30-60 秒内获得相同的 CSV。另一个 Notepad++ 选项卡可以用来保存这类组的运行列表,以便将来进行过滤使用。
 • (你的 Trainz 文档存储位置集中在一个主目录中——几个月后寻找某样东西会非常令人恼火!)
 • 一个 kuid 字段实际上可以容纳数千个 CSV kuid,因此如果以标题保存,此类捆绑包将具有很大的价值。 建议 'ZZZ-nn' 下载描述,在 9-12 个月内仍有意义 加上 - YYYY-MMDD,这样 **CTRL+F+ZZZ- 可以导航保存以向上或向下保存!  

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

[编辑 | 编辑源代码]

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

  • 请注意,一些术语对北美英语使用者来说似乎拼写奇怪,而另一些术语对那些受过前大英帝国衍生社会教育的人来说则显得奇怪。澳大利亚铁路文化同时借鉴了这两个国家,从这两个国家引进了设备和培训师,他们带来了各自的传统,因此铁路术语略带混合,因此一些术语的拼写方式也略有不同。



 

花括号规则

[编辑 | 编辑源代码]

花括号 {} 用于指定那些需要多行的标签对或相关数据对组的内容的开始和结束点。这些被称为 容器,一种特殊的容器类型,即 KIND,在很大程度上决定了如何处理 config.txt 文件中的数据(以及如果指定错误将出现哪些错误)。每个开花括号都必须有一个对应的闭花括号,并且 所有 '开花括号' 必须始终空格空格Tab ↹ 为前缀)。某些标签可以嵌套,在这种情况下,允许使用 { { } } 等结构,前提是前面有空格。

 

Kuids 和 Kuid2s

[编辑 | 编辑源代码]

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”

 

标签、种类和容器名称

[编辑 | 编辑源代码]
Trainz 中的每个值都是数据对的一部分 - 称为 标签引用 名称的键码和数据
  1. 容器 包含多个定义,包括数据类型混合,如十进制数、整数和字符串,但这些定义彼此相关。
  2. 种类是特定类型资产独有的容器,而容器是多个 KIND 类型需要的相关数据元素的集合。

以下标签是强制性的

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


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

[编辑 | 编辑源代码]
  • 花括号不匹配。
  • 任何非空格字符紧跟一个开花括号。
  • 任何非空格字符紧跟一个开尖括号,除了在允许使用它的 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

[编辑 | 编辑源代码]
特殊情况...

在 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 提供了良好的错误检查,但要小心,弄乱括号,您可能会发现其后的任何内容都消失了。因此,建议在编辑之前备份。

在较新的版本中,更多 PEVtools(约 2010 年)应该在 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 实用程序也会正常运行,并允许您探索纹理的应用位置(如果缺少纹理,这很有用!),拍摄屏幕截图等)。



 

  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,捆绑的内容太少,无法吸引许多买家。
    但在 TCs 中,N3V Games 也开始在加载或上传时增加错误检测,并由此开始了日益严格的强制更严格的数据模型符合定义的趋势——这些枚举类型的数据极大地简化了对合法值的测试。自从 Trainz 1.3 和 UTC 时代以来,REM(类似于 BASIC 计算机语言关键字)等实践和非官方标签已成为错误生成器,尽管它们得到了普遍使用。一些 代码构建版本(在 V3.3 中)开始阻止在打开以检查和故障排除后重新提交资产,如果该资产仍然存在故障。(但是,该资产可以恢复,因此用户可以获取该资产的副本以进行播放和试验。)

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

 

 

参考文献

[编辑 | 编辑源代码]

 

华夏公益教科书