跳轉到內容

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 模型以將一個好的資料集定義與一個生成錯誤訊息的資料集進行比較時,都遇到了麻煩。

 

 

參考資料

[編輯 | 編輯原始碼]

 

華夏公益教科書