DDnet服务器常用配置
本文主要介绍ddnet中服务器配置文件autoexec_server.cfg的相关设定和指令。
只介绍比较常用的,更多详见https://ddnet.tw/settingscommands/
配置文件
#服务器端口,默认8303,8303-8310范围的端口可以在服务器列表显示
sv_port 8303
#额外端口,不在8303-8310范围的端口要显示在服务器列表可以加上,在后面加上端口号即可
sv_external_port
#公开服务器,默认为0,改为1即公开服务器到列表
sv_register 0
#游戏类型,0为DDraceNetwork(不可作弊),1为TestDDraceNetwork(可作弊),
sv_test_cmds 1
#服务器名称
sv_name "My DDNet server"
#服务器密码,默认为空
password ""
#服务器管理密码,游戏中f2输入密码即可获得权限,默认为空,对应的有admin,moderator,helper三个等级,权限等级admin>moderator>helper
sv_rcon_password ""
sv_rcon_mod_password ""
sv_rcon_helper_password ""
#服务器初始地图,地图为ddnet/data/maps路径下的.map文件
sv_map "Tutorial"
#是否可以用/r从水中传送到上一次落脚点,默认为1。0为否,1为是
sv_rescue 1
#是否可以用/spec消失在原地,默认为0。0为否,1为是
sv_pauseable 0
#发两次表情之间的间隔时间,默认为3,改为0即可连续发表情
sv_emoticon_delay 3
#加入是在消息栏显示的信息
sv_welcome "Welcome to my server!"
#当加入服务器的时候会显示的公告,可以\n换行
sv_motd "Testserver with DDraceNetwork Features!\nDon't forget to check server rules by using /rules"
管理指令
在f2输入管理员密码后可获得权限,部分作弊指令在TestDDraceNetwork模式下才能用
以下指令均在f2输入
1.作弊指令
#无敌(无视开关和冰冻,无限跳)
super
#无限钩
endless_hook
#武器
weapons
#忍者
ninja
#喷气枪
jetpack
#冰冻锤
freezehammer
#上 下 左 右(可穿墙)
up down left right
可在f1绑定对应按键后快速操作,例:bind up rcon up,bind down rcon down,bind left rcon left,bind right rcon right。这样就可以用小键盘上下左右来操控。
2.非作弊指令
#公屏信息
brodcast [message]
#踢人
kick [id]
#重新加载地图
reload
#执行其它配置文件,config.cfg要在ddnet的data目录下
exec config.cfg
还可以修改sv_hit 0(不能锤击),sv_endless_drag 1(无限钩),sv_freeze_delay 3(冰冻时间)等服务器配置,除了sv_test_cmds作弊模式的开关只能在配置文件内改。
投票相关
格式: add_vote "option" "info"
option为选项,info是指令,一行一个选项,
案例:
add_vote "Option: Super laser" "tune laser_reach 100000; tune laser_bounce_delay 150; tune laser_bounce_num 10000; tune laser_fire_delay 0"

效果(具体相关指令可查看https://ddnet.tw/settingscommands/)

如果想达到游戏中一般服务器选择难度,随机地图的选项则需要多创建几个.cfg配置文件,可以类似这样操作,写几个不同难度的投票文件,放在ddnet/data/types文件夹内,然后在autoexec_server.cfg文件中加上exec types/Easy.cfg即可



效果如图

至于给其中地图的难度分类需要用到sqlite工具,第一次运行服务器后ddnet目录下会生成ddnet-server.sqlite这个文件,这个数据库记录了地图信息和玩家分数等,先下载sqlite并解压到ddnet目录下(https://www.sqlite.org/2022/sqlite-dll-win64-x64-3390000.zip),然后用powershell打开sqlite文件,插入地图信息。这里只给出一些相关指令,需要了解sql语法请见https://www.runoob.com/sql/sql-tutorial.html。

以上图片为例
#查看数据库的所有表格
.table
#查看表格所有数据
select * from record_maps;
#插入地图数据
INSERT INTO record_maps VALUES ('CandyLand','Krumplee','Easy',1,1,'2021-05-04');
'CandyLand','Krumplee','Easy',1,1,'2021-05-04'依次是地图名,作者,难度,星级,分数,发布时间
其中Easy就是之前投票文件中的sv_server_type,对应难度。
#删除地图数据
DELETE FROM record_maps WHERE Map='CandyLand';
最后欢迎加入ddnet gores交流群:821697019,里面有一些gores地图和配置文件。