杀戮空间2 KF资源站
 
原文地址:Dedicated_Server_(Killing_Floor_2)#Downloading_and_Running_the_SteamCMD_Update_Tool
创建专用服务器 (杀戮空间2)

下载并运行 SteamCMD Update Tool  
1. 下载 SteamCMD Update Tool:
2. 解压到一个文件夹 (Windows 例如: C:\SteamCmd\).
不要解压 updater tool 到 Steam客户端文件夹 或者 老的HLDSUpdateTool程序中.
3. 开始 SteamCmd (请注意: 为了以后更新 方便执行, 请查看看 #自动化SteamCmd 部分).
4. 打开 command(命令行窗口) 到那个目录, 并 启动 SteamCmd.
程序将自动更新 并启动 Steam > 登录. 输入 help 获得更多信息.
5. 登录用户名 "anonymous", 通过输入: "login anonymous". 不要使用你的 Steam 登录!
6. 你应该会看到一条启动消息, 说明你已经成功 匿名登录.
 
下载 Killing Floor 2 Server
更新 KF2专用服务器程序.
这些步骤 会将服务器更新到 最新版.
1. 先启动 SteamCmd
2. 在 Steam > 设置KF2专用服务器目录
例如:

// 绝对路径:
force_install_dir c:\KF2Server\
		
// 上一个文件夹:
	
force_install_dir ..\KF2Server\
		
// 在 Steam Command 文件夹 (推荐):
	
force_install_dir .\KF2Server\
				
3. 安装 或 更新 KF2
// 如果你是 第一次安装 或 验证服务器文件的完整性:

	app_update 232130 validate
	
// 如果只是更新 KF2专用服务器:

	app_update 232130
	
// 如果目前运行的是 测试版的专用服务器 文件:

	app_update 232130 -beta "branch name"

	
// "branch name" 表示当前 beta版分支名字. 
					
4. 完成之后, 在 Steam> 输入 quit 来退出, 用来正确注销 Steam服务器.
 
自动化 SteamCmd
有两个办法让 SteamCmd 自动化更新, 更方便的更新 KF2 server
1. 直接写命令行. 如:
SteamCmd +login anonymous +force_install_dir ./kf2_ds +app_update 232130 +exit
				
2. 用bat文件 来执行.
a. 把 SteamCmd 命令写到一个 txt文档中. 例如:
	// update_kf2_ds.txt
	//
	login anonymous
	force_install_dir ./kf2server
	app_update 232130 validate
	exit
	
	注意: 命令中 如果使用了 validate 选项, 表示验证文件.
	
	如果只是要 更新服务器, 可以 删掉 validate 参数.
				
b. 创建一个 bat文件, 写入 SteamCmd +runscript 选项. 例如:
	SteamCmd +runscript update_kf2_ds.txt
	
	或 SteamCmd +runscript kf2_ds.txt
				
 
启动服务器 - 房间  
到 KF2专用服务器目录 (之前用 force_install_dir 命令创建的目录)
创建一个 .bat 文件, 用来创建自己的房间.
启动一个默认设置的 Survival Biotics Lab 地图 - 服务器, 用如下 批处理脚本:
start .\Binaries\win64\kfserver kf-bioticslab
			

 
预备组件  
目前 server 要有多个依赖服务. 我们准备了 UE3Redist.exe 在 server 文件中, 它可以在 "\Binaries\Redist" 文件夹中找到
如果你用 SteamCMD 安装好了 KF2 server.

如果 房间 不能正常启动, 找到这个 UE3Redist.exe 执行 试试

 
Ports 端口  
默认情况下, 服务器将使用以下端口:
Port默认协议这个选项 控制什么
Game Port7777UDP游戏 发送连接的 主端口
Query Port27015UDP这个端口用来 与Steam主服务器 通信
Web Admin8080TCP用来连接到 服务器web管理页面 (如果开启了)
Steam Port20560UDP 
NTP Port123UDP周任务 - 互联网时间查找 确定正确的任务
 
Game Modes 
默认的游戏模式 是 Survival - 常见的 6玩家模式.

Versus Survival (PVP模式)
管理员可以让 服务器 启动 Versus Survival 模式, 通过下面的启动脚本:
..\Binaries\Win64\kfserver KF-BurningParis?Game=KFGameContent.KFGameInfo_VersusSurvival?maxplayers=12
			

弄完之后, 在 webadmin servers(管理员模式) 只需要选择 Versus Survival 游戏模式 进行切换.
目前 Versus Survival 支持的地图有:
BurningParis
BioticsLab
Prison
VoltorManor
Farmhouse 
			

Weekly Outbreaks (每周爆发模式)
可以在 开启房间时调为 Weekly Outbreaks 模式 (默认6人玩家模式) 启动脚本参考如下:
..\Binaries\Win64\kfserver KF-BurningParis?Game=KFGameContent.KFGameInfo_WeeklySurvival

在 webadmin 管理员只需要在 地图列表 选择游戏模式 "Weekly"
服务器启动周任务时, 会向互联网请求时间 去确定启动什么任务, 请保证 NTP(端口)开放
如果你是自家电脑, 请做好 NTP端口的映射, 点击 查看具体端口

 
高级配置  
配置 KF2服务器, 类似于设置任何 虚幻3引擎服务器 (如: UT3)
但与其他引擎, 如: IdTech 和 Source 差异很多,
我们会讨论. 一些 服务器配置 的相关设置.
请注意: 一旦你启动服务器 就会生成配置文件
(默认安装的 配置文件. 强烈建议 不要去编辑 default config 文件).
--- 命令行 启动选项
启动服务器 你可以加几个命令.
包括 url参数 添加到 命令行 上
例如 ...bioticslab?参数1=x?参数2=x
以及在 主命令后面 添加 switches
例如 ...bioticslab -switchhere -switch2here
Url 参数有效输入这个选项 控制什么
AdminName=字母数字组合. 例如: AdminWebAdmin 用户名, 如果你通过命令行 配置了 WebAdmin
AdminPassword=字母数字组合. 例如: Abd32Sdn53主服务器管理员 密码
MaxPlayers=字母数字组合. 例如: 6服务器支持的 最大玩家数
Difficulty=数字 0-3设置服务器的难度. 0 = Normal, 1 = Hard, 2 = Suicidal, 3 = Hell on Earth
Switches 控制有效输入这个选项 控制什么
Port=字母数字组合. 例如: 7787游戏端口. 改变这个 而不改变 query port, 将自动修改 query port (根据默认的游戏端口, 上/下 调整相同的数值)
QueryPort=字母数字组合. 例如: 27015查询端口. 改变服务器与 steam 通讯的端口. 默认是 27015. 如果主动修改QueryPort 将不会自动修改.
WebAdminPort=字母数字组合. 例如: 8080web admin 端口. 如果打开了该功能, 这个端口用于连接 服务器 webadmin 面板. 这个 switch 仍为测试阶段, 使用注意风险.
Multihome=一个设备IP. 例如: 192.168.0.1如果一个服务器 可以分成多个 IP, 该命令可以将 服务器指定到一个设备 IP 上.
PREFERREDPROCESSOR=数字. 例如: 2为服务器进程 指定一个主机机器的 内核/线程.
ConfigSubDir=字母数字组合. 例如: KF2Server-Normal-Long1创建并读取设置 一个子目录 ./KFGame/Config 可以在每个服务器上 设置 .ini 配置


PCServer-KFGame.ini
这个 PCServer-KFGame.ini 文件, 可以到这个目录找到 \KFGame\Config\
KF2 管理员可以控制这个文件 去配置各种游戏元素.
从 游戏模式 到 观战选项 等等, 管理员可以通过这个文件 设置一切.

首先 管理员要配置这个文件 去更新 WebAdmin, 你有权限更改 服务器密码 和 其他设置.
一个很简单的 PCServer-KFGame.ini 设置, 首先 管理员 要修改:
服务器密码
[Engine.AccessControl] 在 PCServer-KFGame.ini:
选项名有效输入这个选项 控制什么
AdminPassword字母数字组合. 例如: Abd32Sdn53主服务器 管理员密码
GamePassword字母数字组合. 例如: cl4ng4m3服务器密码, 玩家进入时 需要输入
服务器名称 和 管理员联系方式
[Engine.GameReplicationInfo] in PCServer-KFGame.ini:
选项名有效输入这个选项 控制什么
ServerName字母数字组合. 例如: (chn) KF2 house在 server browser 中显示的 房间名
AdminContact字母数字组合. 例如: testemail@testemail.com在 server browser 中显示的 管理员联系方式
Maps (地图)
bUseMapList = True - 设置为 true 表示将使用你定义的 地图列表, 而不是默认的.
GameLength = 1 - 设置游戏的时长. 0 -> {short, 4波} 1 -> {normal, 7波} 2 -> {long, 10波}
Maps 可以设置 gametype 并且是个地图循环.
下面就是 ini 中的一个 地图列表 例子:
Game Map Cycles (游戏地图循环)
GameMapCycles=(Maps=("KF-BurningParis","KF-Bioticslab","KF-Outpost","KF-VolterManor","KF-Catacombs","KF-EvacuationPoint"))
前缀 KF- 就是表示地图的游戏类型.
 
建立 Steam Workshop 给服务器  
配置服务器去 Workshop 下载文件:
1. 确保服务器没有运行. 如果有运行, 会导致 Workshop 的设置被覆盖 在下次重启服务器时.
2. 添加新部分 在 PCServer-KFEngine.ini 配置文件: [OnlineSubsystemSteamworks.KFWorkshopSteamworks]
3. 让服务器去下载 每个 Workshop item , 加一行 ServerSubscribedWorkshopItems= 在该部分中.
在 Steam 的 Workshop item 上的 URL 里面找到 id= 部分.
例如, 这个 Workshop Test map 的 URL 是 http://steamcommunity.com/sharedfiles/filedetails/?id=535769647,
so 这行就是 "ServerSubscribedWorkshopItems=535769647". 在 URL 可能有其他文字 在 =数字 旁边, so 一定只能 "id=" 后面的数字.
例 [OnlineSubsystemSteamworks.KFWorkshopSteamworks] 部分 (这些ID 是 Grindhouse 比赛地图):
[OnlineSubsystemSteamworks.KFWorkshopSteamworks]
ServerSubscribedWorkshopItems=605633924
ServerSubscribedWorkshopItems=605551918
ServerSubscribedWorkshopItems=605549089
ServerSubscribedWorkshopItems=605532351
				

让客户端 从 Steam 下载 Workshop item , 当连接服务器时:
只在 Workshop items 已下载到服务器 才会正常工作, 列入到 [OnlineSubsystemSteamworks.KFWorkshopSteamworks] 部分 如上所述.

1. 确保服务器没有运行. 如果有运行, 会导致 Workshop 的设置被覆盖 在下次重启服务器时.
2. 找到 [IpDrv.TcpNetDriver] 部分, 在 PCServer-KFEngine.ini 配置文件中.
3. 添加行 "DownloadManagers=OnlineSubsystemSteamworks.SteamWorkshopDownload" 到该部分. 如果有其他 "DownloadManagers=" 行, 确保这是第一个.
4. 在该部分 不要删除任何东西, 除了(可选的) 其他 DownloadManagers= 行.

 
设置服务器 欢迎屏幕  
1. 确保服务器 没有运行
2. 编辑 PCServer-KFGame.ini:
找到这部分 编辑它, 下面是默认的
代码:
BannerLink=http://art.tripwirecdn.com/TestItemIcons/MOTDServer.png
ServerMOTD=Welcome to our server. \n \n Have fun and good luck!
WebsiteLink=http://killingfloor2.com/
					
1. BannerLink 应该是 PNG(保存 > 8bit ) 图片, 尺寸建议为:512x256 像素
2. ServerMOTD 是图片下面的文字消息
你可以用一些 "\n" 来换行,
我比较喜欢 在开头图片和文字之间, 加一些空行
3. WebsiteLink 是你的网站url
4. 保存, 启动服务器, 看看 欢迎屏幕.
 
取消客户端托管服务器设置
如果你的 KF2 server 经历过 房间 自动加密码, 改难度 换地图 的尴尬情况, 这应该是被 毛子黑客软件攻击了.
因为官方默认开启了 客户端托管服务器的配置, 虽然这个功能不知道怎么用, 但是却被 黑客 利用的很好

解决方案:找到你的配置文件 PCServer-KFEngine.ini 如果你开了 子配置目录 请进去找到再修改
用文本编辑器打开 Ctrl + F 搜索找到 bUsedForTakeover 将其设置为 false 即可
 
翻译:瓜头酱油
如果觉得太难, 可以加群 61951667 问问, 只欢迎喜欢 杀戮空间2 的玩家加入
入正 保平安
如果你是 租的服务器
请保证是 64位 windows系统
KF2 Server 启动需要的系统组件:Dx9、VC++ 2010 (推荐64位) 百度盘下载

开多个房间 需要 配置子目录, 请查看 启动选项 的Switches 控制
每个房间的端口号 请区分开