附加工具

From DDraceNetwork
Revision as of 11:17, 22 June 2023 by Darkh (talk | contribs)

额外工具用于执行玩家游玩行为之外的其他任务,例如地图作者对地图进行优化,或是开发者进行测试和故障排除。不管是先添加它们的路径到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 。这一命令在不同情况下执行失败则会显示不同信息:

  • an usage message if incorrect arguments are provided
  • failed to open source map if an error happens when opening the source map
  • failed to open destination map if an error happens when opening the destination map
  • error loading storage if failed to open storage for some reason
  • failed to open image file if error happens on opening PNG image
  • invalid image format if incorrectly formatted PNG.

Available since: DDNet 12.9

map_diff

示例:map_diff map_file1 map_file2

Compares two map files, reporting one of the follow:

  • no diff output, meaning the maps are the same
  • different layer numbers, if one map has more layers than another
  • different tile layers, if the number of layers is the same, but at least one layer is different
  • lastly, the index and flags positions that differ.

If there is no difference between maps, returns 0; otherwise, returns 1.

map_extract

示例:map_extract map_file [directory]

Extracts contents from map_file into the directory. If optional argument directory is not provided, extracts to the current directory.

map_optimize

示例:map_optimize source_map_filepath [dest_map_filepath]

Optimizes the map file in the source_map_filepath given (see how it works) and stores the output in the given dest_map_filepath; if dest_map_filepath is unset, output path defaults to out/source_map_filename.map, stripping the path and the extension of the source file.

Note the name of the embedded images optimized is changed from originalname to originalname_cut_newSHA256 (where newSHA256 is the new sha256 of the embedded optimized image). It is renamed is to make clear it was optimized because this tool will make changes in the mapres used by the map file.

If failed to open source or target file, returns -1.

Available since: DDNet 15.5.4

map_replace_image

示例:map_replace_image map_file1 map_file2 imagename image_file

Replaces the image imagename currently inside the map filename map_file1 with the image filepath image_file, and save into the map filename map_file2.map.

Please note:

  • Both map filenames must be relative to user default DDNet folder
  • New image filepath can be absolute, or relative to the current directory

map_resave

示例:map_resave map_file image_file

Updates the map file map_file.map with the provided file image_file.

The error status 255 is returned if 1) a number of arguments different from 2 is provided, 2) if the map_file.map is not valid, or 3) if image_file is not a valid image file (e.g. it is a text file); otherwise, return 0.

packetgen

示例:packetgen

Generates and sends network packets to 127.0.0.1:8303 (localhost, in default server port) to test communication with a local server instance.

unicode_confusables

示例:unicode_confusables string1 string2

Compares string1 with string2 and report if they are "confusable", i.e. if the characters are "equal" and could cause confusion. For this to work, the characters with accents or other things around them are considered the "confusable" with the base character. Therefore, aa and are confusable (á was considered as a), while aa and ab are not.

If they are confusable, it returns not_confusable=0, otherwise, returns not_confusable=1.

Available since: DDNet version 10.3.5

New in DDNet version 12.9: Unicode 12.0 support and the tool name was renamed from confusables to unicode_confusables.

uuid

示例:uuid name

Prints uuid for the provided name.

The uuid system was implemented to be easily extended by independent authors without collisions, something that the old system – with increasing integers – did not allow. This works for engine and game messages, snapshot items and events.

Exits with error status 255 if name is not provided.

Available since: DDNet 10.6.1