附加工具
附加工具用於執行玩家遊玩行為之外的其他任務,例如地圖作者對地圖進行優化,或是開發者進行測試和故障排除。不管是先添加它們的路逕到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。
demo_extract_chat
示例:demo_extract_chat demo_file
將回放demo文件中所有消息輸出到控制台。
消息格式如下:
chat: *** 'nameless tee' entered and joined the game chat: nameless tee: Hello! broadcast: Welcome! teamchat: brainless tee: Hello team! whisper: -> nameless tee: Hi!
- 自DDNet 17.4版本後可用
dilate
示例:dilate image_file1 [image_file2 ... ]
這個圖形工具對地圖作者比較友好。它可以為遊戲內圖片描邊和銳化,防止混淆不同地圖結構。更多信息請查閱Edge padding。
注意:這隻對RGBA格式的圖片生效。例如PNG文件可用而JPEG文件不可用。
dummy_map
示例:dummy_map
創建一個空的仿製小地圖來啟動原生反作弊(sv_vanilla_antispoof
)伺服器。更多信息請參閱github。
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_create_pixelart
示例:map_create_pixelart <image.png> <img_pixelsize> <input_map> <layergroup_id> <layer_id> <pos_x> <pos_y> <quad_pixelsize> <output_map> [optimize=0|1] [centralize=0|1]
從圖片文件image.png中創建一幅可用作背景的像素畫。
注1:使用目標圖層的方塊作為坐標(pos_x、pos_y)的參考,使用像素(pixel)作為尺寸大小。
注2:img_pixelsize參數指的是圖片文件截取尺寸,單位為像素,將img_pixelsize設置為0將嘗試匹配圖片的最大截取範圍。
注3:quad_pixelsize參數指的是圖片作為背景時的占用地圖的尺寸,單位是像素,設置quad_pixelsize為0時默認使用與img_pixelsize相同的值。
注4:如果圖片文件image.png沒有完整的像素網格,將出現難以預料的後果,嘗試手動調整img_pixelsize的大小可能可以解決問題。
可選參數optimize:是否自動減少重複或重疊的背景圖片(默認為1,即啟用)。
可選參數centralize:將所有圖片的中心移動到同一點(默認為0,即禁用)。
map_diff
示例:map_diff map_file1 map_file2
對比兩個地圖文件 map_file1 與 map_file2 並根據對比結果輸出報告:
- 地圖相同則不顯示任何消息 ;
- 如果兩個地圖的圖層數不一樣則顯示
different layer numbers
; - 如果層數一致但是層的類型不完全一樣則顯示
different tile layers
; - 如果層的數量和類型都一致,則輸出具體差異,例如指標和旗幟位置的不同。
當地圖之間沒有差異時返回0,否則返回1。
map_extract
示例:map_extract map_file [directory]
提取地圖文件map_file 中的目錄到路徑參數directory,如果沒有設置參數directory 則會提取到當前路徑。
map_find_env
示例:map_find_env <input_map> <env_number>
在背景中尋找特定的包絡線並輸出它們的序號和位置信息到控制台。
注意:返回的坐標是所在圖層的相對坐標。
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_area
示例:map_replace_area <from_map> <from_x> <from_y> <to_map> <to_x> <to_y> <width> <height> <output_map>
將靶地圖的一個區域的內容替換為源地圖的一個區域。參數解釋如下:
<from_map>源地图; <from_x>区域左上角在源地图中的x坐标; <from_y>区域左上角在源地图中的y坐标; <to_map>靶地图; <to_x>被替换区域的左上角在靶地图中的x坐标; <to_y>被替换区域的左上角在靶地图中的x坐标; <width>区域宽度; <height>区域高度; <output_map>将结果输出为此地图文件。
注意:用遊戲層方塊作為坐標和尺寸的參照。
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 。
packetgen
示例:packetgen
生成並發送網絡包到埠127.0.0.1:8303(默認的本地伺服器埠),用以測試和本地伺服器的聯絡。
stun
示例:stun address
向伺服器發送STUN請求並檢查響應。
twping
示例:twping server[:port]
通關請求伺服器 server 信息測試伺服器的延遲。埠參數 port 默認為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版本後可用