只要了解两个特殊之处,搭建 Killing Floor 2 专用服务器其实很简单:你必须先启动一次服务器才能编辑配置,而且它没有 RCON,只能通过网页面板来管理。搞定这两点,剩下的设置只需要五分钟。下面是完整流程。
安装服务器
KF2 专用服务器的 App ID 是 232130,可以匿名安装(不需要 Steam 登录,服务器账号也不需要拥有这款游戏):
./steamcmd.sh +login anonymous \
+app_update 232130 validate \
+quit重要提示: validate 参数只在第一次安装时使用。之后如果再次运行 app_update 232130 validate,会清空你的 KFGame/Config INI 配置文件。之后要更新的话,去掉 validate 关键字就行。
关键点:编辑任何内容前先启动一次
KF2 会在首次启动时重新生成配置文件,并覆盖你事先写入的所有内容。所以正确顺序是:安装、先启动一次、停止,然后再编辑配置。先用默认参数启动一次:
./Binaries/Win64/KFGameSteamServer.bin.x86_64 KF-BioticsLab等它输出到 "steam initialised" 后,用 Ctrl+C 停止服务器。此时它已经把你接下来要编辑的文件写入到:
<install>/KFGame/Config/服务器设置:LinuxServer-KFGame.ini
打开 KFGame/Config/LinuxServer-KFGame.ini,设置以下键值。它们分布在不同的小节中,请分别搜索对应的小节标题:
[Engine.GameInfo]
GameDifficulty=1.000000 ; 0=Normal 1=Hard 2=Suicidal 3=Hell on Earth
MaxPlayers=6 ; see "six players" below
[Engine.AccessControl]
AdminPassword=pick-a-secret ; login for the web panel
GamePassword=friends-only ; leave blank for open, set to lock the server
[Engine.GameReplicationInfo]
ServerName=My Private KF2 Server
[KFGame.KFGameInfo]
GameLength=1 ; 0=short (4 waves) 1=medium (7) 2=long (10)启用 Web Admin 面板(KF2 没有 RCON)
KF2 完全没有 RCON。平时在控制台里做的事,比如踢人、切换地图、查看日志,都要在一个基于浏览器的 Web Admin 面板里完成,而这个面板默认是关闭的。在 KFGame/Config/LinuxServer-KFWeb.ini 中开启它:
[IpDrv.WebServer]
bEnabled=true
ListenPort=8080服务器运行起来后,在浏览器中打开 http://your.server.ip:8080,用用户名 Admin 和你上面设置的 AdminPassword 登录。别忘了在防火墙中放行 8080/TCP 端口。
启动行
KF2 使用一个 URL 风格的参数,把地图、游戏模式和单次启动的覆盖设置组合在一起,后面再跟几个端口相关的参数:
./Binaries/Win64/KFGameSteamServer.bin.x86_64 \
KF-BioticsLab?Game=KFGameContent.KFGameInfo_Survival?Difficulty=1?GameLength=1 \
-Port=7777 -QueryPort=27015 -WebAdminPort=8080- KF-BioticsLab 是初始地图,可以换成任意 KF- 地图(KF-Outpost、KF-Nuked、KF-VolterManor 等)。
- Game= 用来选择模式:KFGameInfo_Survival(合作)、KFGameInfo_WeeklySurvival、KFGameInfo_VersusSurvival 或 KFGameInfo_Endless。
- URL 中的 Difficulty 和 GameLength 会在本次启动时覆盖 INI 设置,不用改文件就能快速调整,很方便。
- 在防火墙中放行 7777/UDP(游戏)、27015/UDP(Steam 查询)和 8080/TCP(网页管理)。
唯一的限制:六人上限
原版 KF2 服务器最多支持六名玩家。就算在 INI 里把 MaxPlayers 设得比 6 大也没用,引擎会强制把它压回 6。这是官方设计的合作人数,不需要任何模组。如果想超过六人,就需要一个服务器 mutator(常用的那个是从启动 URL 上的 ?MaxPlayers= 值读取真正的上限,而不是 INI),再配上对应的 ?MaxMonsters=,这样多出来的玩家才有足够的丧尸怪可以打。