由于和好友联机玩求生之路2时经常出现mod兼容性问题和高ping值问题,游戏体验非常差,而且官方服务器并不能支持第三方地图,所以我们决定自己搭建一个服务器。

不过不知道什么原因,网上关于搭建l4d2服务端的细节方面的文章很多不完全或者被很统一的删除了,所以摸索起来特别头疼,目前还有一些奇怪的问题没有解决,不过最初目的(和好友第三方地图联机)倒是能办到。下面是经验。

首先关于服务器的配置系统,我分别使用的是百度的双核4g的服务器和企鹅的单核2g的服务器带宽都是1m,两家带宽都完全够用(仅限于4人战役和4v4对抗,开放人物上限我不敢保证,因为没有试过),延迟都在40左右,非常稳定,完全可以玩。双核4g内存的云服务器在使用windows server和centos的效果并没有什么明显的差别,但单核2g内存云服务器在windows server上用exe服务的直接运行时出现了cpu占有率和内存占用率全部爆红的情况,在使用批处理文件运行服务器时,cpu占有率下降到50%左右,但内存占用率依旧爆掉,游玩时帧延迟大得特别离谱,体现在服务器玩家的视角,就是明明延迟不高,帧数也不低,但依旧卡。使用centos的时候,和2核4g的服务器没有明显的差别。所以在考虑到价格问题,我认为最优选项是单核2g的云服务器,使用linux系统。

首先我参考了这一篇文章 https://blog.csdn.net/qq741058114/article/details/81287465

这里是引用
首先登录服务器,直接以root用户登录即可(此处请务必用root账户登录,不然由于权限问题下列代码将无法执行)。依次输入以下代码(不要一次性复制粘贴进去,一条代码处理完再输入下一条,就不会出现不必要的麻烦)
yum update
yum upgrade -y
yum install glibc.i686 libstdc++.i686 -y
这一步会更新系统并安装steamcmd需要的组件。
然后输入
adduser l4d2
会创建一个叫做l4d2的账户,这个账户名称可以自己改成好记的,不过下面所有的相关地方都要改动。
接着输入
passwd l4d2
按照提示修改该账户的密码
然后登入新账户
su l4d2
cd ~
这里就加入了根目录下的home文件夹
然后下载steamcmd的压缩包解压并安装
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar xf steamcmd_linux.tar.gz
./steamcmd.sh +login anonymous +force_install_dir ./l4d2 +app_update 222860 validate +quit

如果输入 ./steamcmd.sh +login anonymous +force_install_dir ./l4d2 +app_update 222860 validate +quit 的时候出现报错,说明缺少32位库,请在root用户下输入 yum install glibc.i686 便可以解决

由于我并不需要插件,所以我对本文章的参考就到了这里,这时只需要执行
cd l4d2
./srcds_run -game left4dead2 -insecure +hostport 25552 -condebug +exec server.cfg &
就能运行一个纯净的求生之路2客户端
你只需要在游戏中的控制台输入connect 服务器IP地址:25552 就能加入你的服务器并开始官方战役第一关的游戏,这里的25552为接入的端口,你可以改成没被占用的任意端口,(比如我的公网ip地址是114.51.4.19,端口是19810 就输入connect 114.51.4.19:19810来加入)
你可以在菜单里面投票切换难度和更换地图。
这里就会出现几个问题
1,当你切换成第五章之后的地图时,会出现进度条不动的情况,退出重新加入后游戏又将会从头开始。
2,无法选择第三方地图。

这些其实都能通过进入服务端的控制台(注意是服务器的控制台,不是游戏里面的)
关于如何进入控制台
1,当你还没有打开服务器时可以把指令
./srcds_run -game left4dead2 -insecure +hostport 25552 -condebug +exec server.cfg &
改成
./srcds_run -game left4dead2 -insecure +hostport 25552 -condebug +exec server.cfg
2,当你已经打开了服务器时,先输入ps -ef 查看l4d2服务端的pid
然后使用kill -9 pid 的方法结束进程
最后用第一步的方法启动服务器的同时打开服务器控制台

这时你就可以在控制台输入控制台指令对服务器进行调整
打个比方,如果你想用服务器打开 再见,辰茗小镇 这个地图
第一步和pc客户端一样,先把vpk格式的地图文件放入addons文件夹内(可以使用xftp直接拖拽进去)
addons文件夹的位置在/home/l4d2/l4d2/left4dead2/addons
第二步在控制台输入Map msd1_town,服务器将会自动重启并加载入新地图,重新加入即可,第三方地图的 每关的加入代码应该能在你下载地图的地方找到。

说一点比较关键的,在控制台下前往不要按Ctrl+c退出或者直接关掉ssh工具,这样你的服务端进程会被直接杀掉
正确的做法是先按Ctrl+z把进程挂起,然后按输入bg %1把服务端放入后台继续运行(如果你没有挂起其他进程的话这一步应该是没有问题的,如果你还挂起了其他进程,请输入jobs查看服务的是第几个被挂起的进程,把1改成对应数字)

这时游玩的时候你还会发现一个问题,就是你会不停的匹配到陌生的玩家,这个时候你就需要配置server.cfg
文件来给你的服务器的加入增加限制。
server.cfg文件的位置在/home/l4d2/l4d2/left4dead2/cfg里
如果没有,就自己建立一个空文档并把名字改成这个
在里面输入
hostname “A9658” //这里改成自己的房间名称,不要用中文
sv_allow_lobby_connect_only “0” //阻止匹配野生玩家,希望匹配到的时候改成1
z_difficulty “Easy” //改难度
sv_region “4” //亚洲地区
sv_steamgroup “36901175” //如果有自己的steam组的话可以改成自己的组id,可以不写这一句
sv_steamgroup_exclusive “1” //只允许你的组员和他们的好友加入
sv_visiblemaxplayers 4
maxplayers 4 //最多加入玩家数
双斜线和后面的注释可以不写,由于没有安装sm插件,所以sm开头的参数写进去也不会生效
这里也可以在自己的电脑上写好直接用xftp这种软件拖进去。

最后对代码./srcds_run -game left4dead2 -insecure +hostport 25552 -condebug +exec server.cfg &
做一点补充 +exec server.cfg这样格式一段属于添加内容,如果不加这一段就不会加载server.cfg里的配置,同样的我们也可以给他添加一些其他的东西,比如添加 +Map msd1_town就能开服时直接加载这个地图。
还有 &的意思把前面的指令运行后直接放入后台,不加的话就会直接进入控制台。

————————————————
版权声明:本文是转载自我自己的CSDN博客的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_17085563/article/details/104586535

发表评论

电子邮件地址不会被公开。