美文网首页
Linux下搭建求生之路2(l4d2)服务器的教程补充(细节点-

Linux下搭建求生之路2(l4d2)服务器的教程补充(细节点-

作者: 迷程 | 来源:发表于2020-09-09 18:18 被阅读0次
    声明:这篇细节补充的教程基于Ceplavia's Gaming Blog上的这篇文章番外:在CentOS上搭建求生之路2服务器制作。

    大体上,这位大佬的教程已经非常完善了,建议先通读TA的文章,再通读这篇。我增补一些这篇文章未提到但是有点让人抓狂的细节点。相信仔细阅读他的文章和我的文章,任何新手都能很从容的在linux下搭建属于自己的求生之路2服务器。
    众所周知,linux服务器比windows服务器有更稳定和更安全的特点,而且其服务器利用效率较windows server更高,仅有一点问题,就是命令较多,难于熟记。不过也不用担心,常用的只有为数不多的命令而已。
    PS:本文采用的是阿里云的cent os来进行实践得出的教程。
    PS:阿里云目前有学生优惠,1核2G 5M 40GSSD的服务器学生价仅9.5元/月,可以说相当不错了,笔者其实也没多加斟酌,随便就选了阿里云的。童鞋们可以自己多斟酌,国内知名云服务器基本都有学生优惠。

    **********************************干货分界线*****************************************
    1、服务器运行之前应该先在这里修改root用户的密码:
    image.png
    2、文中提到先执行 steamcmd.sh:然后匿名登录:.需要注意的是在这里执行steamcmd.sh完毕后控制台会输出steam>这个新的结果,下面的几条命令应该在steam->后面执行,而不是在其他地方:
    ogin anonymous
    force_install_dir ./l4d2server
    app_update 222860 validate
    

    3、server.cfg中的部分参数枚举:

    sm_cvar sv_gametypes 的参数分别为:coop-合作 versus-对抗 survival-生存
    z_difficulty所有参数分别为: Easy-简单 Normal-普通 Hard-困难 Impossible-专家

    **********************************非常重要开始*****************************************

    4、记得下载screen,用来让游戏服务器不需要远程也可以自己在后台执行的命令。其主要用法为:

    screen sh start.sh
    

    此命令启用的命令和任务可以通过按下ctrl+A和ctrl+D(按住ctrl按A再按D) 来退出当前screen而保留任务后台运行,退出后用exit命令安全断开远程连接.

    下面这条命令可以重新打开后台的游戏服务器任务。若要关闭游戏服务器,用exit命令.

    screen -x
    
    **********************************非常重要结束*****************************************

    5、在启动服务器之前,必须在防火墙设置端口放开。

    6、start.sh中的启动参数:

    /home/sun/l4d2server/srcds_run -game left4dead2 -insecure +map c3m1 -maxplayers 8  +hostport '想要的端口'-condebug  +exec server.cfg -nomaster -tickrate 60
    

    新增/home/sun/l4d2server/srcds_run为绝对路径,这样start.sh无论移到任何目录都可以启动游戏服务器
    新增+map c3m1用于设置默认地图
    新增-maxplayers 8用于设置最大人数
    新增 -tickrate xx用于设置服务器的tickrate

    7、点击这里下载解除tickrate限制的插件,插件的目录里有README.txt参照操作即可,这里我大概说下步骤:

      1、把tickrate_enabler.so放到left4dead2/addons目录下。
      2、把tickrate_enabler.vdf放到left4dead2/addons目录下。
      3、确保以下参数出现在`server.cfg`中:
    
        sv_maxupdaterate 100 //必须大于等于你想设置的tick值
        sv_maxcmdrate 100 //必须大于等于你想设置的tick值
        fps_max 150 // 以如今的电脑性能,设置为0或者一个极大值即可
        sv_maxrate 0 // 0为不限制,你也可以设置成自己想要的,此值建议为0. 默认30.
        sv_minrate //设置较大的sv_minrate以强制客户端使用更高的rate值.
    

    笔者附上自己的server.cfg部分有关tickrate的配置如下:

    sm_cvar sv_minrate 100000
    sm_cvar sv_maxrate 10000
    sm_cvar sv_minupdaterate 60
    sm_cvar sv_maxupdaterate 100
    sm_cvar sv_maxcmdrate 100
    sm_cvar fps_max 1000
    sm_cvar nb_update_frequency 0.03
    sm_cvar sv_client_min_interp_ratio 0
    sm_cvar sv_client_max_interp_ratio -1
    net_splitrate 2
    sm_cvar fps_max 0
    sm_cvar net_splitpacket_maxrate 50000
    
    

    8、本地客户端关于tickrate和lerp值的相关设定:

    创建文件autoexec.cfg于目录\steamapps\common\Left 4 Dead 2\left4dead2\cfg下(已经有的在后面换行继续),打开后复制以下代码进入保存,然后重启客户端:
    //bind "CTRL" "toggle_duck" //这个是设置蹲下为切换模式,即按下ctrl蹲下,再按站起,默认不启用,去掉前面的双斜杠后启用
    cl_interp_ratio 1 //此后的命令都是为了配合服务端的tickrate以达到最好的效果
    cl_interp 0
    sv_minupdaterate 30
    sv_maxupdaterate 100 
    cl_updaterate 60 //设置为服务端的tickrate (比如100,我自己担心性能问题,所以用60)
    sv_minrate 10000
    sv_maxrate 100000
    rate 30000
    sv_mincmdrate 30
    sv_maxcmdrate 120
    cl_cmdrate 60 //设置为服务端的tickrate同样的值 (比如100,我自己担心性能问题,所以用60)
    
    -----------纯原创----------------------------------------------------------------------
    PS:本人写了一个windows的批处理来实现一键重启求生之路2本地客户端(steam正版),保存以下命令到一个空白的txt文件,然后修改txt文件后缀名为.bat,双击就可以执行一键重启。
    %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit  //执行完毕自动关闭cmd
    cd /d "%~dp0"
    taskkill /f  /im "left4dead2.exe" //杀掉求生之路2进程
    taskkill /f  /im "QQPYUserCenter.exe" 
    //steam有概率退出游戏卡中文输入法而一直显示在游戏中,这里杀掉QQ输入法相关进程以确保关闭游戏和重启的成功.
    taskkill /f  /im "QQPYCloud.exe"
    taskkill /f  /im "QQPYConfig.exe"
    //其他输入法可以自己查找相关进程,如果从未出现卡输入法的情况,可以不要。
    start steam://rungameid/550 //无论你的游戏在任何目录下,这个命令都可以启动它 
    
    此批处理如果修改杀掉进程的名字和启动的数字id,可以适用于所有steam正版游戏的重启,也可以适当增加其他功能.
    PPS:如果配合WOX [Github] 或者[官网]来实现一键重启简直不要太方便,墙裂安利国人强大的开源项目WOX [Github] 或者[官网],羡慕大佬可以写出如此🐮🍺的软件,膜拜大佬中!!!!!!!!!!

    9、三方图的下载和安装,关于这点,本人写了一个一键从gamemaps下载、解压、移除zip、移除gamemaps宣传文档的sh脚本,默认根据提供的gamemaps地图编号(地图详情页的地址栏链接的五位数)直接下载解压。(服务器需要安装unzip软件,安装需要root用户,命令yum install unzip,提示输入时,请输入y;),脚本代码如下,命名后必须放置于left4dead2/addons目录下方可正确运行.

    read -t 30 -p "请输入Gamemaps地图ID" mapID //用于每次下载时手动输入地图编号
    wget https://www.gamemaps.com/mirrors/download/$mapID/6 
    //上面一行必须全部复制,gamemaps的下载链接,任何其他地址均可,创意工坊的外链亦可以参考此处重新包装
    mv 6 6.zip //默认下载的文件名只有一个6,但不影响完整性和使用
    unzip 6.zip
    rm -f 6.zip
    rm -f gamemaps_com.txt //删除gamemaps宣传文件和zip文件,只保留解压的vpk文件.
    ~                         
    
    一键从创意工坊下载地图详见求生之路2 Linux服务器从工坊下载地图脚本(python脚本)
    -----------纯原创结束------------------------------------------------------------------

    10、三方地图下载解压完毕后,用screen -x命令切换到刚刚运行的游戏服务器,然后输入exit关闭服务器,结束后,再用screen sh start.sh重启服务器,地图即可加载完毕,输入maps *命令可以查看所有地图(每一关都是一个独立的地图,以bsp文件体现).地图加载完毕后,服务器控制台直接用命令map xxxx即可切换三方地图。如果此时在游戏中,也可以用!admin命令,然后找到对应的地图名即可切换。

    11、 安装metamod的时候记得生成对应游戏的VDF文件https://www.sourcemm.net/vdf,将生成的metamod.vdf覆盖addons里的metamod.vdf。

    12、 安装l4dtoolz工具(修改服务器人数和本地服务器人数原理不同,必须用到l4dtoolz).从这里下载求生之路2对应的l4dtoolz工具,将解压出来的两个文件夹l4dtoolz和metamod放到.\left4dead2\addons\里。运行服务器sh start.sh,启动后用命令meta list查看是否安装成功。

    13、 人数插件链接: https://pan.baidu.com/s/1RN-2kUwAlmQSeEODm_h7pg 提取码: ey2s。下载解压此插件,直接拖动里面的left4dead2文件夹,和服务器上的left4dead2文件夹合并即可(备注,此插件含有cfg,可以提前修改相关设定)。

    至此,服务器应该已经相当完善了,剩下的应该只是修修补补的工作了。

    总结:linux的求生之路2服务器搭建只是抛砖引玉,事实上很多steam游戏都可以利用类似的手段打造本地服务器,例如《饥荒》、《CSGO》、《叛乱》、《方舟》等等。

    PS:发现本文有任何错误和不当之处,敬请留言评论说明,此致,由衷的谢意。
    欢迎署名转载,禁止套名照抄。

    相关文章

      网友评论

          本文标题:Linux下搭建求生之路2(l4d2)服务器的教程补充(细节点-

          本文链接:https://www.haomeiwen.com/subject/yoieektx.html