附加工具
附加工具用於執行玩家遊玩行為之外的其他任務,例如地圖作者對地圖進行優化,或是開發者進行測試和故障排除。不管是先添加它們的路徑到PATH變量還是直接輸入路徑,這些工具都必須通過命令行(例如Windows的cmd界面或是Linux的Terminal終端)運行。
獲取附加工具
這些工具不會在DDNet遊戲內或遊戲下載頁中出現。製圖相關工具可以在下載頁面的Graphics Tools子頁面找到不同平台的版本。
這些額外工具可以在DDNet源碼下的src/tools路徑內找到。
額外工具列表
下面是這些工具的詳細說明。
config_retrieve
示例:config_retrieve map_file
檢索DDNet地圖文件map_file內置的參數,然後寫入保存到與地圖名字相同的一個配置文件。例如對地圖文件Kobra 4.map使用會將它的參數寫入到Kobra 4.cfg。
- 自DDNet 9.0版本後可用
config_store
示例:config_store map_file
從配置文件將參數寫入保存到地圖文件map_file,如果配置文件和地圖文件名字不同或者不在同一路徑下將會操作失敗。
如果兩個文件的參數原本就一致,則不會執行操作並顯示configs coincide, not updating map
。
- 自DDNet 9.0版本後可用
crapnet
示例:crapnet
用於測試客戶端和服務器的本地連接和傳送請求(ping)。掉包會顯示dropped packet
,而成功則顯示cfg = number
,其中number取值為0到2。
dilate
示例:dilate image_file1 [image_file2 ... ]
這個圖形工具對地圖作者比較友好。它可以為遊戲內圖片描邊和銳化,防止混淆不同地圖結構。更多信息請查閱Edge padding。
注意:這隻對RGBA格式的圖片生效。例如PNG文件可用而JPEG文件不可用。
dummy_map
示例:dummy_map
創建一個空的分身小地圖來啟動服務器。更多信息請參閱github。
fake_server
示例:fake_server
為測試創建一個臨時的虛擬服務器。
map_convert_07
示例:map_convert_07 src_map_file dest_map_file
對於那些只能兼容Teeworlds的6.x版本的地圖文件src_map_file
,使用這一命令可以將文件轉變為兼容7.x版本並保存為dest_map_file
。這一命令在不同情況下執行失敗則會有不同回顯:
- 如果提供的參數不正確會顯示用法示例;
- 如果在打開源文件
src_map_file
時出錯則會顯示failed to open source map
; - 如果在打開目標文件
dest_map_file
時出錯則會顯示failed to open destination map
; - 如果磁盤空間不足或有其他存儲問題則會顯示
error loading storage
; - 如果在打開PNG圖片時出錯則會顯示
failed to open image file
; - 如果圖片格式錯誤則會顯示
invalid image format
。
- 自DDNet 12.9版本後可用
map_diff
示例:map_diff map_file1 map_file2
對比兩個地圖文件並根據對比結果輸出報告:
- 地圖相同則不顯示任何消息 ;
- 如果兩個地圖的圖層數不一樣則顯示
different layer numbers
; - 如果層數一致但是層的類型不完全一樣則顯示
different tile layers
; - 如果層的數量和類型都一致,則輸出具體差異,例如指標和旗幟位置的不同。
當地圖之間沒有差異時返回0,否則返回1。
map_extract
示例:map_extract map_file [directory]
提取地圖文件map_file 中的目錄到路徑參數directory,如果沒有設置參數directory 則會提取到當前路徑。
map_optimize
示例:map_optimize source_map_filepath [dest_map_filepath]
優化地圖文件source_map_filepath
(參見工作原理(how it works)),然後將輸出保存到dest_map_filepath
。如果沒有設置參數dest_map_filepath
則將默認輸出保存到路徑文件out/source_map_filename.map
。
注意優化後地圖中嵌入的圖片文件名會從originalname
改為originalname_cut_newSHA256
(此處newSHA256
是嵌入地圖的圖片優化時採用的sha256算法)。這一重命名旨在提醒使用者:地圖文件中使用的mapres 會在優化時被更改。
如果打開源文件或者目標文件出錯將返回-1。
- 自DDNet 15.5.4版本後可用
map_replace_image
示例:map_replace_image map_file1 map_file2 imagename image_file
使用圖片路徑image_file 下的文件替換當前存在於地圖文件map_file1 中的圖片imagename ,然後另存為地圖文件map_file2.map 。
注意:
- 兩個地圖文件都必須在使用者的默認DDNet文件夾目錄下;
- 新的圖片路徑可以是絕對路徑也可以是當前目錄下的相對路徑。
map_resave
示例:map_resave map_file image_file
用指定的圖片文件image_file 更新地圖文件map_file.map 。
當出現下列情況將會返回錯誤代碼 255:
- 提供了兩個以上的參數;
- map_file.map 不是有效的地圖文件;
- image_file 不是有效的圖片文件(例如文本文件)。
其他情況則返回0。
packetgen
示例:packetgen
生成並發送網絡包到端口127.0.0.1:8303(默認的本地服務器端口),用以測試和本地服務器的聯絡。
unicode_confusables
示例:unicode_confusables string1 string2
對比兩串字符串string1 和string2 並報告它們是否容易混淆。例如:如果字母本身相同而差異在於變音符號或者各種角標,例如aa 和aá 中的a 有可能與á 混淆。
如果容易混淆則會返回not_confusable=0
,否則返回not_confusable=1
。
- 自DDNet 10.3.5版本後可用
DDNet 12.9版本後更新內容:獲得了Unicode 12.0支持,並且工具名稱confusables 改為unicode_confusables 。
uuid
示例:uuid name
顯示指定的name 的uuid。
唯一編號識別系統(uuid)旨在獨立作者之間無衝突地創作內容,例如說兩個作者製作了同名的文件,則系統會通過賦予文件相互不同的編號(id)將它們區分開,這樣在提及文件時不會將它們混淆,明顯比舊系統中混亂的事物命名要方便合理。此系統可以在引擎、遊戲信息、快照和大事件上運作。
如果沒有設置參數name 則會返回錯誤代碼255。
- 自DDNet 10.6.1版本後可用