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 中的所有資料都是透過關鍵字——合法值關係來定義和操作的。在計算機科學中,<值>(或合法值)是一個由列舉資料型別成員資格約束的列表。
• 例如,型別二進位制(也常稱為“布林型”)是一個列舉型別,只有兩個合法值:{ 二進位制: 0, 1 },該符號“{”+術語+“:”+值列表+“}”被讀作“二進位制集”具有成員零和一”。值列表也稱為列舉列表,在本例中長度為二,有兩個允許值。列表中沒有的任何內容都是非法的,將生成 Trainz 錯誤,以及相關的錯誤訊息,還會阻止您將資產提交到資料庫。阻止將有缺陷的資產提交到資料庫的機制是在 trainz-build 中開始的,對應於它們在 TBV(以及因此的能力)中的重疊,例如 TS10 和 TS09。[備註 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++(它還可以跨行尾字元進行搜尋和替換,這對將多個 kuid 複合為逗號分隔列表 (CSV) 非常有用,CM 可以接受它)將在許多 Trainz 螢幕截圖中被使用。 - 目標你的下載 並少量嘗試! 在 Trainz 體驗的早期下載時,仔細選擇下載目標,每次只下載一小部分資產,不要超過幾屏內容。
- 下載完成後,在主檢視中檢視該組,複製所有內容,並將 CSV 列表轉移到像 Open Office Calc 這樣的電子表格中。如果標題中有逗號(使用者名稱),你可能需要清理幾個單元格,但你將得到兩列可排序資料,作為日誌檔案。
• 養成一有資料就儲存的習慣,並在離開應用程式之前整理好資料。你可能會遇到斷電或更糟糕的情況,忘記了! - 如果你將這作為執行日誌,並不斷新增內容,在另一列中新增一些型別資料,它將成為用於 特殊選擇過濾器 的方便列表,以根據下一段進行路線構建。
• 當然,你不必將這些副本限制在下載的內容上,任何在主檢視中列出的專案都可以被高亮顯示並新增! - 複製僅 kuid 列,將其帶到 Notepad++,並使用 Search 從
'>' 到下一個 '<kuid'and Replace(SAR)替換為 ">,<kuid",以便快速獲得包含你所有下載內容的 CSV。 - 但是,請注意你的過濾器已經只顯示了那些 kuid,來自下載+在主檢視中顯示,所以在“最後下載”中儲存它。
- 作為一種有用技巧的練習,在“就地”過濾器中新增第二個 kuid 搜尋欄位,並用 AND NOT 過濾器修改器分隔兩個欄位。應用後,如果你獲得了完整列表,列表應該顯示為空!
- 由於你已經儲存了它,現在你可以解決任何故障,並透過使用 Faulty 與其進行 AND 操作來保留相同的顯示順序,只有該列表上的故障項才會出現。
• 其他不在列表上的故障不會出現——這讓你能夠專注於現在重要的內容,如果你貪婪地下載了大量故障內容。透過找到你最感興趣的路線+會話,並使用 AND 操作技術,參考他們的“組合依賴項”的 kuid CSV,來修復你為該目標需要的那些內容。
• 注意:使用已儲存的過濾器,包含 **AND**、**AND NOT** 和 **OR** 可以極大地幫助你縮小範圍、選擇性檢視或組織你的資產管理任務。
• 多練習、多練習、多練習——一旦你掌握了這種技巧,它會為你節省大量時間。
• 所有消除雜亂的過濾器技巧(在 DLS 上不顯示內容可能是最有用的)以及選擇篩選條件的技巧將有助於你更精準地搜尋你需要的或正在尋找的東西,從而節省時間。
• 另一個有用的技巧是反轉你的選擇... 假設你在你想要嘗試的路線中看到三十個資產被標記為已過時。 突出顯示該組, **RMBh** 並選擇 **Show asset Versions**,顯示屏將只顯示你突出顯示的資產及其相關資產。 現在, **RMBh** 並選擇 **Invert Selections**,然後,瞧!——所有更新都被突出顯示,你可以將所有更新作為一個塊拖入下載助手(或者... **RMBh** 並選擇 **Download** — 這將為你新增它們並立即開始下載!
- 下載完成後,在主檢視中檢視該組,複製所有內容,並將 CSV 列表轉移到像 Open Office Calc 這樣的電子表格中。如果標題中有逗號(使用者名稱),你可能需要清理幾個單元格,但你將得到兩列可排序資料,作為日誌檔案。
- 待續
文字編輯器
[edit | edit source]config.txt 檔案是 純文字 (ASCII) 檔案,儘管最古老的資產的第一行可能包含 BOM(位元組順序標記)程式碼。 它們應該使用非格式化程式進行編輯,例如 Windows 記事本、ConTEXT、Notepad++、Programmer's Notepad 或其他非文字處理程式型別的 文字編輯器——其中許多也稱為程式設計師編輯器。
|
其中一個文字程式是 ConTEXT,它在與 Wulf/Wulf9 的 TPR 語法檔案釋出 語法檔案一起使用時提供語法突出顯示。 你需要在上述連結(TrainzProRoutes)上註冊才能下載語法檔案。 ConTEXT 還會顯示匹配的括號,這在故障排除時非常有用,並且值得注意的是,它是在 TrainzOnline 維基頁面中提到的 N3V Games 的文字編輯器。
本書中的許多示例將使用 免費軟體 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++ 可以透過練習使用 REGEX SARS,在不到 2 分鐘 30 秒的時間內將上述內容(或類似的 890 行)轉換為類似於以下的 CSV KUID 列表。
- 示例 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]標籤關鍵字必須拼寫正確,並且在指定每個 標籤 或 容器 值的引數時必須使用正確的語法。 由於計算機程式將解釋內容,因此需要精確的準確性。
|
花括號 { 和 } 用於指定需要多行的資料對組中這些標籤對內容的開始和結束點。這些被稱為容器,一個特殊的容器型別,KIND 在很大程度上決定了 config.txt 檔案中資料的處理方式(以及如果指定錯誤將發生哪些錯誤)。每個左花括號必須有一個相應的右花括號,並且所有“左花括號”必須始終以空白字元(空格或製表符 ↹為字首)。一些標籤可以巢狀,在這種情況下允許 { { } } 等結構,前提是前面有空格。
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"
- 容器 包含多個定義,包括十進位制數、整數和字串等資料型別的混合,但這些資料型別彼此關聯。
- 種類是特定型別的資產所特有的容器,而容器則是相關資料元素的集合,這些元素被多種 KIND 型別需要。
以下標籤是必需的
kindkuidusernamecategory-classcategory-eracategory-region
- 花括號不匹配。
- 任何非空格字元緊跟左花括號。
- 任何非空格字元緊跟左尖括號,除非在允許使用左尖括號的 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"
|
- 特殊情況...
在 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 提供了良好的錯誤檢查,但要小心,如果括號搞錯了,您可能會發現後面的任何內容都會消失。因此,建議在編輯之前進行備份。
|
- ↑ 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 的升級版(換皮),捆綁的內容太少,無法吸引許多買家。
但在 TC 版本中,N3V Games 也開始了一種趨勢,即在載入或上傳時增加錯誤檢測,並開始不斷強化對更嚴格的資料模型遵守定義——這些列舉型別的資料使對合法值的測試變得容易得多。自 Trainz 1.3 和 UTC 時代以來,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 程式碼 標準的更新資訊,這些標準隨著軟體功能的新增而不斷變化。 |

