DDNET 知识库

中文 Wiki

DDNet Workshop 中文知识库,收录 79 Wiki 词条,涵盖游戏技巧、机制等内容,提升广大玩家游戏理解

额外工具 Extra Tools
地图制作与外部工具•地图制作与外部工具

额外工具 Extra Tools

DDNet 命令行工具完整列表,包含地图优化、配置管理和测试工具

工具命令行地图优化开发
2024-01-01

额外工具用于执行玩家游玩行为之外的其他任务,例如:

  • 地图作者对地图进行优化
  • 开发者进行测试和故障排除

不管是先添加它们的路径到 PATH 变量还是直接输入路径,这些工具都必须通过命令行(例如 Windows 的 cmd 界面或是 Linux 的 Terminal 终端)运行。


获取额外工具

这些工具不会在 DDNet 游戏内或游戏下载页中出现。

制图相关工具可以在下载页面的 Graphics Tools 子页面找到不同平台的版本。

这些额外工具可以在 DDNet 源码 下的 src/tools 路径内找到。


额外工具列表

下面是这些工具的详细说明。

config_retrieve

示例:

bash
config_retrieve map_file

功能:

检索 DDNet 地图文件内置的参数,然后写入保存到与地图名字相同的一个配置文件。

示例:对地图文件 Kobra 4.map 使用会将它的参数写入到 Kobra 4.cfg。

  • 自 DDNet 9.0 版本后可用

config_store

示例:

bash
config_store map_file

功能:

从配置文件将参数写入保存到地图文件,如果配置文件和地图文件名字不同或者不在同一路径下将会操作失败。

如果两个文件的参数原本就一致,则不会执行操作并显示:

configs coincide, not updating map
  • 自 DDNet 9.0 版本后可用

crapnet

示例:

bash
crapnet

功能:

用于测试客户端和服务器的本地连接和传送请求(ping)。

输出:

  • 掉包会显示 dropped packet
  • 成功则显示 cfg = number,其中 number 取值为 0 到 2

dilate

示例:

bash
dilate image_file1 image_file2 ...

功能:

这个图形工具对地图作者比较友好。它可以为游戏内图片描边和锐化,防止混淆不同地图结构。

更多信息请查阅 Edge padding。

注意:这只对 RGBA 格式的图片生效。例如 PNG 文件可用而 JPEG 文件不可用。


dummy_map

示例:

bash
dummy_map

功能:

创建一个空的分身小地图来启动服务器。

更多信息请参阅 github。


fake_server

示例:

bash
fake_server

功能:

为测试创建一个临时的虚拟服务器。


map_convert_07

示例:

bash
map_convert_07 src_map_file dest_map_file

功能:

对于那些只能兼容 Teeworlds 的 6.x 版本的地图文件,使用这一命令可以将文件转变为兼容 7.x 版本并保存为 dest_map_file。

错误回显:

错误信息原因
用法示例提供的参数不正确
failed to open source map打开源文件时出错
failed to open destination map打开目标文件时出错
error loading storage磁盘空间不足或有其他存储问题
failed to open image file打开 PNG 图片时出错
invalid image format图片格式错误
  • 自 DDNet 12.9 版本后可用

map_diff

示例:

bash
map_diff map_file1 map_file2

功能:

对比两个地图文件并根据对比结果输出报告:

结果说明
无消息地图相同
different layer numbers两个地图的图层数不一样
different tile layers层数一致但是层的类型不完全一样
具体差异层的数量和类型都一致,输出指标和旗帜位置的不同

返回值:

  • 当地图之间没有差异时返回 0
  • 否则返回 1

map_extract

示例:

bash
map_extract map_file directory

功能:

提取地图文件中的目录到路径参数 directory,如果没有设置参数 directory 则会提取到当前路径。


map_optimize

示例:

bash
map_optimize source_map_filepath dest_map_filepath

功能:

优化地图文件(参见 工作原理),然后将输出保存到 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

示例:

bash
map_replace_image map_file1 map_file2 imagename image_file

功能:

使用图片路径 image_file 下的文件替换当前存在于地图文件 map_file1 中的图片 imagename,然后另存为地图文件 map_file2.map。

注意事项:

  • 两个地图文件都必须在使用者的默认 DDNet 文件夹目录下
  • 新的图片路径可以是绝对路径也可以是当前目录下的相对路径

map_resave

示例:

bash
map_resave map_file image_file

功能:

用指定的图片文件更新地图文件 map_file.map。

错误代码 255:

  • 提供了两个以上的参数
  • map_file.map 不是有效的地图文件
  • image_file 不是有效的图片文件(例如文本文件)

其他情况:返回 0


packetgen

示例:

bash
packetgen

功能:

生成并发送网络包到端口 127.0.0.1:8303(默认的本地服务器端口),用以测试和本地服务器的联络。


unicode_confusables

示例:

bash
unicode_confusables 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

示例:

bash
uuid name

功能:

显示指定的 name 的 uuid。

UUID 系统说明:

唯一编号识别系统(uuid)旨在独立作者之间无冲突地创作内容,例如说两个作者制作了同名的文件,则系统会通过赋予文件相互不同的编号(id)将它们区分开,这样在提及文件时不会将它们混淆,明显比旧系统中混乱的事物命名要方便合理。

此系统可以在以下方面运作:

  • 引擎
  • 游戏信息
  • 快照
  • 大事件

返回值:

  • 如果没有设置参数 name 则会返回错误代码 255

  • 自 DDNet 10.6.1 版本后可用


工具分类总结

类别工具
配置管理config_retrieve, config_store
地图转换map_convert_07, map_diff, map_extract, map_optimize, map_replace_image, map_resave
图像处理dilate
网络测试crapnet, packetgen, fake_server
辅助工具dummy_map, unicode_confusables, uuid

小提示

  • 这些工具需要通过命令行运行,不会出现在游戏内
  • map_optimize 可以减小地图文件大小,但会重命名嵌入的图片
  • config_retrieve 和 config_store 用于在地图文件和配置文件之间传输设置
  • dilate 工具只对 RGBA 格式(如 PNG)有效,JPEG 不可用
  • map_convert_07 可以将旧版 6.x 地图转换为 7.x 兼容格式
  • unicode_confusables 用于检测容易混淆的用户名(防止冒充)
  • UUID 系统确保不同作者创建的同名内容不会冲突