Trainz/AM&C/config.txt 檔案
| 詞彙表 |
| HKeys-CM |
| HKeys-DVR |
| HKeys-SUR |
| HKeys-WIN |
| 滑鼠使用 |
| 符號 |
操作說明: 點選正文中的腳註 ([2]) 或筆記標籤 ([note 12]) 將引導您(定位頁面)到該條目的確切文字。 • 然後: 在那裡點選?符號,將帶您回到您開始閱讀的地方。 |
所有資源都必須有一個 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 檔案中的簡單輸入、巢狀或拼寫錯誤造成的。當引號巢狀不正確時,這種型別的副作用通常是由於缺少或額外的引號造成的。當這種情況屬即時,CM/CMP 在開啟檔案時會嘗試修復它找到的內容,這會在嘗試將文字段落解析為關鍵字和值時建立一系列錯誤的標籤名稱錯誤。這會導致級聯故障(載入!20 多個),通常會插入空格,並導致生成的文字引用更糟糕——文字看起來像是末日降臨了這部分頁面。這通常發生在較大的文字塊內,例如 許可證 或 描述。幸運的是,這些“無用的幫助'”可以在幾分鐘內手動編輯以進行更正。(這種“爆炸式自動修復”比 TRS2004 及更早版本的 Trainz 更好——在這些錯誤之下,所有內容都消失了!虛擬產品!)
|
其他故障,尤其是在 V3.3 之後,是由於資料模型定義 和從 V2.8 開始實施的現在稱為TrainzBaseSpec 的內容——該資料集始終初始化任何和所有 config.txt 檔案的主體,並建立了自定義資源的系統。根據這些 TBS 值中的某些值,其他資料將被新增到配置資源中,包括對其他包含資源 元件檔案 的引用,如影像、指令碼檔案、texture.txt 檔案 以及細節級別 (LOD) *.LM 檔案。該自定義的起點是 TBS 的作用,而定義和引用資源中所有元素的作用是其 config.txt 檔案。底線是,幾乎所有資源修復都需要更改 config.txt 檔案——這是一個罕見的錯誤,需要其他修復才能解決!
|
- 由於配置檔案是自定義資源的核心,所以在首次修復和更新資源時,或者作為一種良好的實踐,即使在之後很長一段時間內,在 CM 中開啟資源進行編輯時
- 方法 1: (SHFT+CTRL+E 開啟資產,然後帶你進入資料夾)
- 在編輯配置檔案之前,使用“另存為”將其複製
- 或者先用 Windows 複製 (選擇,CTRL+C,選擇資料夾,CTRL+V)。使用 F2 重新命名檔案為 Config.org.txt... 或者保留檔名,在 Windows 新增的名稱中插入 (copy)。
- 然後才開啟原始配置檔案進行編輯。
- 方法 2: (最快:可能取決於您的文字編輯器)
從其資料夾開啟 config.txt 檔案,然後立即 ALT+Tab ↹ 返回資料夾。- config.txt 檔案應該仍然被突出顯示 (選中),因此接下來按 F2 並在 .txt 副檔名前面插入 .org 或 .v2-4 等。(Trainz 在驗證和提交資產時無法容忍未知資料檔案型別,因此只能使用合法的文字檔案型別,.txt 副檔名或 .htm。)
- 完成後,ALT+Tab ↹ 返回編輯器。
• Notepad++ 會抱怨 (通知您) 檔案丟失,詢問是否應該將檔案保留在記憶體中。選擇是。Windows 記事本不會注意到它丟失了。 您的編輯器呢...???
- 方法 1: (SHFT+CTRL+E 開啟資產,然後帶你進入資料夾)
- 強烈建議使用能夠開啟多個檔案、進行正則表示式搜尋和替換、在多個檔案中替換或比較檔案的程式設計師編輯器。 Notepad++、Programmer's Notepad 和 Crimson Editor 都可以作為免費軟體使用 (以及時間可用,將在 這本華夏公益教科書 中介紹),它們都具有大多數這些有用的功能。
• 至少,Notepad++—它還可以跨行尾符進行搜尋和替換,這對於將多個 kuids 合併為 CM 可接受的逗號分隔列表 (CSV) 非常有用—將在許多 Trainz 螢幕截圖中出現。 - 有針對性地下載 並少量嘗試! 在 Trainz 體驗的早期下載時,請仔細選擇要下載的資產,一次不要超過幾屏。
- 下載完成後,在主檢視中檢視該組,全部複製,並將 CSV 列表轉移到像 Open Office Calc 這樣的電子表格中。如果標題中有逗號 (使用者名稱),您可能需要清理幾個單元格,但您將擁有兩列可排序資料作為日誌檔案。
• 養成一有資料就儲存的習慣,並在離開應用程式之前整理資料。你可能會突然斷電,甚至更糟的是忘記了! - 如果您將它作為執行日誌,在使用時進行追加,並在另一列中新增一些型別資料,它就可以成為一個方便的列表,用於 特殊選擇過濾器,根據下一段的內容進行路線構建。
• 當然,您不必將此類副本限制在下載的內容上,任何主檢視中列出的專案都可以突出顯示並新增! - 只複製 kuid 列,將其帶到 Notepad++,並Search 從
'>' 到下一個 '<kuid'andReplace (SAR) 為 ">,<kuid",以快速獲得整個下載的 CSV。 - 但是,請注意您的過濾器已經只顯示了這些 kuids,來自下載 + 顯示在主檢視中,所以將其儲存到“上次下載”。
- 作為一種有用技術的練習,在“就地”過濾器中新增第二個 kuid 搜尋欄位,並用 AND NOT 過濾器修飾符分隔這兩個欄位。應用後,如果獲得了完整列表,則列表應該顯示為空!
- 由於您已經儲存了它,因此您現在可以解決任何錯誤,並透過使用 Faulty 與其進行 AND 操作來保持相同的顯示順序,只有該列表上的錯誤項才會出現。
• 其他不在列表中的錯誤不會出現—這使您可以專注於現在重要的內容,如果您貪得無厭,突然有很多錯誤的內容。透過查詢您最感興趣的 路線 + 會話,並使用 AND 操作技術來僅修復您需要用於該目標的內容,並參考其“組合依賴項”的 kuid CSV 檔案。
• 注意:使用已儲存的過濾器,包含 **AND,**AND NOT 和 **OR,可以幫助您縮小範圍、選擇性檢視或以其他方式組織您的資產管理任務。
• 多練習、多練習、多練習——一旦掌握了這種技巧,它將為您節省大量時間。
• 所有消除混亂的過濾技巧(例如在 DLS 上不顯示內容可能是最有用的技巧),以及選擇篩選條件的技能將幫助您縮小範圍,找到您需要或正在尋找的內容,所有這些都能節省時間。
• 另一種有用的技巧是反轉您的選擇... 假設您在想要嘗試的路線中顯示了 30 個過時的資產。突出顯示該組,**RMBh 並選擇 **顯示資產版本,顯示屏將僅顯示您突出顯示的資產及其相關資產。現在,**RMBh 並選擇 **反轉選擇,瞧!——所有更新都會突出顯示,您可以將所有內容以塊的形式拖放到下載助手(或... **RMBh** 並選擇 **下載**——這將為您新增它們並立即開始下載!
- 下載完成後,在主檢視中檢視該組,全部複製,並將 CSV 列表轉移到像 Open Office Calc 這樣的電子表格中。如果標題中有逗號 (使用者名稱),您可能需要清理幾個單元格,但您將擁有兩列可排序資料作為日誌檔案。
- 待續
config.txt 檔案是 純文字 (ASCII) 檔案,儘管最古老的資產可能在第一行包含 BOM(位元組順序標記)程式碼。它們應該使用非格式化程式進行編輯,例如 Windows 記事本、ConTEXT、Notepad++、Programmer's Notepad 或其他非文字處理器型別的 文字編輯器——其中許多也稱為程式設計師編輯器。
|
其中一個文字程式是 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 檔案中的資料(以及如果指定錯誤會發生哪些錯誤)。每個左大括號必須有一個對應的右大括號,並且 所有“左大括號”必須始終 以 空白 (Space 或 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]- 容器 包含多個定義,包括十進位制數、整數和字串等資料型別的混合,但這些資料彼此關聯。
- 種類是特定型別資產獨有的容器,而容器是多個 KIND 需要的一組相關資料元素。
以下標籤是強制性的
kindkuidusernamecategory-classcategory-eracategory-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.5trainz-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 提供良好的錯誤檢查,但要小心,弄亂括號,您可能會發現後續的任何內容都會消失。因此,建議在編輯之前進行備份。
|
筆記
[edit | edit source]- ↑ 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模型以將其與產生錯誤訊息的資料集定義進行比較而被燒燬。
- Trainz 印刷版或pdf 檔案手冊,適用版本——通常位於..\extras 或 ..\extras\manuals 資料夾
- TrainzOnline Wiki Config.txt 檔案頁面 和其他各個頁面
- TrainzOnline Wiki 內容創作者指南頁面(各個頁面)
- 各種CCG和Auran網站
| 此參考頁面改編自TrainzOnline Wiki,根據CC-BY-SA 3.0 許可證。此頁面可能比[online.ts2009.com/mediaWiki/index.php/Config.txt_file 相同主題的源頁面]包含更多文字解釋、論述、歷史和/或示例。 TrainzOnline Wiki 主要由程式設計師或知識豐富的內容創作者維護,可能包含有關當前trainz-build 程式碼標準的更新資訊,這些標準隨著軟體功能的增加而不斷變化。 |

