记录一下l4d2服务器搭建过程,不然服务器过期了又要被吐槽怎么不备份啊,这样也不用去找别人的教程了
1. 安装SteamCMD
SteamCMD官网:https://developer.valvesoftware.com/wiki/SteamCMD
64位服务器先执行下列命令:
add-apt-repository multiverse
pkg --add-architecture i386
apt update
apt install lib32gcc-s1 steamcmd
然后再安装SteamCMD
apt-get install lib32gcc1 #运行steamcmd所需依赖
apt install steamcmd
2.运行SteamCMD安装l4d2服务端
首先进入到steamcmd的安装目录,我这里是在/usr/games
目录下然后运行./steamcmd
login anonymous
匿名登录,force_install_dir <path>
指定安装目录 <path>
为安装目录,我是安装到 /game/steam/l4d2
,app_update 222860 validate
下载l4d2服务端,等待下载完成。
下载完成之后进入游戏跟目录 cd /game/steam/l4d2
执行 ./srcds_run
若最后出现如下字样就说明游戏安装成功,启动参数详细说明 https://developer.valvesoftware.com/wiki/Command_Line_Options,当然这些参数也可以再配置文件中添加
Connection to Steam servers successful.
VAC secure mode is activated.
3. 服务端mod/插件安装
-
SourceMod
SourceMod官网:https://www.sourcemod.net/
SourceMod下载:https://www.sourcemod.net/downloads.php?branch=stable
下载完解压将
addons
和cfg
目录复制到~/left4dead2/
目录下 -
Metamod
Metamod官网:https://www.sourcemm.net/
当然不要忘记生成对应游戏的VDF文件:https://www.sourcemm.net/vdf
下载完解压将
addons
目录复制到~/left4dead2/
目录下,之后再生成VDF文件覆盖掉~/left4dead2/addons/
下的metamod.vdf
文件 -
L4DToolZ
L4DToolZ:https://forums.alliedmods.net/showthread.php?t=93600
L4DToolZ的GitHub:https://github.com/ivailosp/l4dtoolz/
下载完解压将
l4dtoolz
和metamod
目录复制到~/left4dead2/addons/
目录下
都安装完成之后再次启动游戏,在Console中执行 meta list
meta list
Listing 3 plugins:
[01] SourceMod (1.10.0.6540) by AlliedModders LLC
[02] L4DToolZ (1.0.0.9h-2-g7465d71b-dirty) by Ivailosp
[03] SDK Tools (1.10.0.6540) by AlliedModders LLC
这样的话就没什么问题了
4.服务端配置
-
服务器配置
修改
~/left4dead2/cfg/server.cfg
文件//修改服务器名 sm_cvar hostname "FF" //关联STEAM组(xxxxx为STEAM组ID,请组管理员到组配置页面查看) sm_cvar sv_steamgroup "xxxxx" //组成员游戏(0为公共游戏,任何人都可以加入;1为没人时仅限组成员加入,组成员加入后他们的非组成员好友也能加入;2为永远只有组成员可以加入游戏,即使是他们的好友,只要不是本组成员就不能加入游戏) sm_cvar sv_steamgroup_exclusive "0" //只能在游戏大厅连接,1为开,0为关,开了之后只能通过新建大厅才能搜索该服务器 sm_cvar sv_allow_lobby_connect_only "0" //一致性校验,1为开,0为关,开了之后要求游戏版本和服务器版本一致才可进入 sm_cvar sv_consistency "0" //地区代码: 0 - 美国东海岸, 1 - 美国西海岸, 2 - 南美洲, 3 - 欧洲, 4 - 亚洲, 5 - 澳大利亚, 6 - 中东, 7 - 非洲, 255 - 世界 sm_cvar sv_region "4" //最大支持玩家数量 sm_cvar sv_visiblemaxplayers "8" //服务器告知外界的最大玩家数(该参数不会影响上面的参数,只是显示在服务器列表信息中) sm_cvar sv_maxplayers "8" //每秒客户端发给服务器的数据包数量,设置过高没什么大坏处,只是浪费了你的带宽。 sm_cvar sv_cl_cmdrate "30" //每秒服务器发给客户端的数据包数量,如果服务器设定每秒更新发送30次数据,你设30就正好 sm_cvar sv_cl_updaterate "30" //激活游戏模式合作,对抗,生存 sm_cvar mp_gamemode "coop" //sm_cvar mp_gamemode "versus" //sm_cvar mp_gamemode "survival" //游戏难度设置(分别对应:简单、正常、困难、专家) //sm_cvar z_difficulty "Easy" //sm_cvar z_difficulty "Normal" //sm_cvar z_difficulty "Hard" sm_cvar z_difficulty "Impossible" //人死掉后3秒就可以出现在任一房间给人救,默认60 sm_cvar rescue_min_dead_time "3"
-
SourceMod 插件安装
一般到 http://www.sourcemod.net/plugins.php 搜索下载,按照作者说明来就行了,我一般到这 http://mlui.ysepan.com/ 下载
若下载的是源码即
.sp
文件,则需要自己使用~/left4dead2/addons/sourcemod/scripting/compile.sh
编译为.smx
文件,运行./compile.sh ***.sp
之后会在compile
目录下生成***.smx
插件的安装是直接把生成/下载的
.smx
文件放入~/left4dead2/addons/sourcemod/plugins/
目录下,有的插件还会附带配置文件一般为.cfg
文件放到~/left4dead2/cfg/sourcemod/
下 -
三方图和mod安装
将mod文件或三方图的
.vpk
文件放到~/left4dead2/addons/
目录下 -
权限设置
再
./left4dead2/addons/sourcemod/configs/admins_simple.ini
中添加STEAM_1:0:00000000 "99:z"
,这一串是在本地进入游戏随便开一个战役然后在控制台输入state
会出现如下信息,注意一定要进图status hostname: ; w ; version : 2.2.2.5 8490 insecure udp/ip : 0.0.0.0:27015 [ public n/a ] os : Windows Listen map : c1m1_hotel at ( 518, 5631, 2911 ) players : 1 humans, 0 bots (4 max) (not hibernating) (unreserved) # userid name uniqueid connected ping loss state rate adr # 1 "steam昵称" STEAM_1:0:00000000 01:04 33 0 active 30000 loopback //这里就是权限设置所需要的信息 # 3 "Rochelle" BOT active # 4 "Coach" BOT active # 5 "Ellis" BOT active #end
5.后台运行
这里我使用的是 screen
,使用 apt install screen
命令安装 screen
,常用命令如下
screen -ls //列出所有的会话及pid
screen -S xxx //新建一个名为"xxx"的会话
screen -r xxx 或 pid //恢复名为"xxx"或某个pid的会话
screen -R //恢复上一次挂起的会话
screen -S -X xxx 或 pid //关闭一个名为"xxx"或某个pid的会话
Ctrl a+d //将当前会话挂起到后台
新建 runl4d2.sh
,-insecure
是选项指不开启VAC反作弊,+hostport
指定运行端口,+map
指定地图
/game/steam/l4d2/srcds_run -game left4dead2 -insecure +hostport 27016 +map c5m1_waterfront
使用 chmod +x runl4d2.sh
添加执行权限,这样每次运行执行只需 ./runl4d2.sh
了,用 screen -S l4d2
新建窗口,在运行 ./runl4d2.sh
,最后再按 Ctrl a+d
挂到后台运行
PS:最后别忘了在云服务器中开放相应的端口,可以在游戏控制台中使用 connect IP:端口
进入服务器
参考:
https://www.jianshu.com/p/436a2d3496ee