thumbnail
在linux平台上搭建求生之路服务器

L4D2一直是一款我特别喜欢的多人娱乐向游戏,除了MC基本上每次高中好友线上团建就是在这里面。

可惜最近V社的服务器ping值令人忍无可忍,不过好在我手上有一台2核4G的服务器,开个私服应该没啥问题。

安装运行环境(我的是ubuntu)

sudo apt-get install lib32gcc1

下载安装steamCMD

mkdir ~/Steam //创建Steam文件夹
cd ~/Steam //进入Steam文件夹
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
tar -zxvf steamcmd_linux.tar.gz //解压

输入

./steamcmd.sh

开始下载安装

会要求登录,匿名登录就行

login anonymous

下载L4D2服务端

app_update 222860 validate

一开始几次没连上,多试几次就行

退出quit

配置文档

修改H键公告的标题需修改文件/home/steam/l4d2/left4dead2/host.txt,修改内容需修改/home/steam/l4d2/left4dead2/motd.txt

Steam/steamapps/common/Left 4 Dead 2 Dedicated Server/left4dead2/cfg下,新建一个 server.cfg 文件

战役模式

hostname "PiCpo's L4D2"
//模式选择
//sm_cvar mp_gamemode "coop"
//隐藏服务器
//sv_tags "hidden"
//ads_delay 45

//mod一致性检查
sv_consistency 0
//正版服务器匹配参数限制
sv_region 4
sv_steamgroup "" //第一个组编号数字改成自己的组,其他为热门求生组
sv_steamgroup_exclusive 1//允许什么玩家匹配?(0-公共游戏,1-组内成员,2-仅限好友)
//人数设置
sm_cvar sv_maxplayers 8
sm_cvar sv_visiblemaxplayers 8
sm_cvar sv_removehumanlimit 1
//sm_cvar sv_force_unreserved 1
//sv_allow_lobby_connect_only 0
//正版大厅匹配
sm_cvar fps_max 300
sm_cvar allow_all_bot_survivor_team 1

对抗模式

//100tick
sm_cvar fps_max 0
sm_cvar net_splitpacket_maxrate 30000
sm_cvar nb_update_frequency 0.06
sm_cvar sv_minrate 100000
sm_cvar sv_maxrate 101000
sm_cvar sv_mincmdrate 100
sm_cvar sv_maxcmdrate 100
sm_cvar sv_minupdaterate 100
sm_cvar sv_maxupdaterate 100
sm_cvar sv_client_min_interp_ratio -1
sm_cvar sv_client_max_interp_ratio 2
sm_cvar sv_maxplayers 8
sm_cvar sv_visiblemaxplayers 8
sm_cvar sv_allow_lobby_connect_only 1

sv_tags "hidden"
sm_cvar mp_gamemode "versus"// 设定为对抗模式
sv_gametypes versus// 设定为对抗模式
sm_cvar sb_all_bot_game 1// 防止人数不足而自动关闭
sm_cvar sb_all_bot_team 1
sm_cvar allow_all_bot_survivor_team 1// 真人玩家死亡后由电脑玩家组队进行游戏
sm_cvar sb_escort 1 // 强制电脑玩家紧随其后
sm_cvar director_allow_infected_bots 0// 关闭AI特感
sv_allow_wait_command 0// 封禁wait指令
coop //战役模式

realism //写实模式

versus //对抗模式

teamversus //团队对抗模式

mutation12 //写实对抗模式

survival //生存模式

scavenge //清道夫模式

teamscavenge //团队清道夫模式

community(1-6)&&mutation(1-20) //突变模式(总共26种不同内容)
{
community1 【特感速递】 4人合作 同屏最多8特,无小丧尸,每种特感的出现时间间隔20秒,特感刷新时间0秒,所以是8个槽位同时刷,每个槽位20秒刷一个,无等待时间,不停的刷。
community2 【感染季节】 4人合作 同屏最多8特,只有bommer和spitter两种特感,特感刷新倒计时固定20秒。无小丧尸,但是被bommer喷到、打到警报车和开机关有丧尸群。
community3 【骑师派对】 8人对抗 特感方都是jockey,而且移动超快,无小丧尸(包括开警报后)
community4 【梦魇】 4人合作 生存者模式,只有17个场景 同屏最多8特,战役模式设定,但无队友轮廓,场景有浓雾。
community5 【死亡之门】 4人合作 每关开始只有药没有包,倒地即死。
community6 【药抗】 8人对抗,只有药和针,取消高级武器,每关tank,更合理的对抗记分方式。
mutation1 【孤身一人】 1人单机 只有一个人没有小丧尸,只有特感(除BOOMER),倒地自起、控制的特感也会放开,但是会黑白。
mutation2 【枪枪爆头】 4人合作 小丧尸只有爆头才会死。
mutation3 【血流不止】 4人合作 这个模式从关卡开头就是虚血【并持续减血】,全图无包,只有靠药瓶和针维持血量。
mutation4 【绝境求生】 4人合作 同屏最多8特,战役模式设定,每种特感的出现时间间隔20秒,特感刷新时间15秒,所以是8个槽位同时刷,每个槽位15-20秒刷一个,但特感刷新由导演系统控制,倒计时结束,不会不停的刷新。
mutation5 【四剑客】 4人合作 一出场只有4把武士刀
mutation7 【电锯帮】 4人合作 武器只有4个无限油的电锯
mutation8 【铁人意志】 4人合作 团灭以后直接回到大厅,不会重新开始某个小关游戏
mutation9 【侏儒卫队】 4人合作 玩家必须携带一个侏儒玩偶来躲避丧尸的攻击到达安全门
mutation10 【一人救赎】 4人合作 只有一个人能终关逃生
mutation11 【没有救赎】 8人对抗 全关没有包和药
mutation12 【写实对抗】 8人对抗 写实模式设定的对抗
mutation13 【清道肆虐】 8人对抗 线性清道夫,每次只有1个位置出现油桶, 每个新位置比上一个+2桶
mutation14 【无法近身】 4人合作 全关没有近战武器,只有一把无限子弹M60和麦林手枪
mutation15 【生存对抗】 8人对抗 使用生存模式计分规则
mutation16 【猎人派对】 4人合作 特殊感染者都是hunter
mutation17 【孤胆枪手】 1人单机 只有一个人一把沙鹰,特感保留bommer、witch和tank,小丧尸伤害高
mutation18 【失血对抗】 8人对抗 所有幸存者虚血(并持续减血),全图无包
mutation19 【Tank!!!!!!】 8人对抗 扮演感染者方全是做tank
mutation20 【侏儒治愈】 4人合作 所有幸存者虚血【并持续减血】,全图无包,抱着侏儒的人可以回复血量
} 
dash Dash
l4d1coop Left 4 Dead 1 Coop
l4d1vs Left 4 Dead 1 Versus
l4d1survival Left 4 Dead 1 Survival
gunbrain GunBrain
holdout Holdout
shootzones Shootzones
tankrun Tank Run
rocketdude RocketDude

完整版

//管理密码
rcon_password "0"

//游戏模式
sm_cvar mp_gamemode "coop"

//服务器人数破解
l4d_maxplayers 4
sv_maxplayers 4
sv_visiblemaxplayers 4
sv_removehumanlimit 1
sv_force_unreserved 1

//服务器难度锁定
// Difficulty Setting: easy, normal, hard, impossible
z_difficulty "impossible"

//限制投票
sm_cvar sv_allow_votes "1"

//正版服务器匹配参数限制
sv_region 4 
sv_steamgroup "114514"
sv_steamgroup_exclusive 0


//插件开关 1=ON/0=OFF
sm_advertisements_enabled 1

//广告播放延时默认30s
sm_advertisements_interval 60
ads_delay 45

//不允许正版大厅匹配到
sv_allow_lobby_connect_only 0

//地区代码:
sm_cvar sv_region "4"

// 作弊开关(1\0)
sv_cheats 0  


//关闭模型[MOD]冲突
sm_cvar sv_consistency 0

//隐藏服务器
sv_tags hidden
sv_tags "hidden"

//tick
sm_cvar fps_max 300
sm_cvar sv_minrate 100000
sm_cvar sv_maxrate 100000
sm_cvar sv_minupdaterate 100
sm_cvar sv_maxupdaterate 100
sm_cvar sv_mincmdrate 100
sm_cvar sv_maxcmdrate 100
sm_cvar nb_update_frequency 0.1
sm_cvar net_splitrate 2 
sm_cvar net_splitpacket_maxrate 100000
sm_cvar sv_client_min_interp_ratio 1
sm_cvar sv_client_max_interp_ratio 1

// 防止人数不足而自动关闭
sm_cvar sb_all_bot_game 1

//玩家死亡时电脑组成队伍继续游戏
sm_cvar allow_all_bot_survivor_team 1

幸存者参数介绍

队友伤害,0为关闭
survivor_friendly_fire_factor_easy 0.2
survivor_friendly_fire_factor_normal 0.2
survivor_friendly_fire_factor_hard 0.4
survivor_friendly_fire_factor_expert 0.6
火焰伤害,0为关闭
survivor_burn_factor_easy 0.1
survivor_burn_factor_normal 0.2
survivor_burn_factor_hard 0.3
survivor_burn_factor_expert 0.5


survivor_crouch_speed 75 蹲著的速度(默认:75 数字越大越快)
rescue_min_dead_time "3" 人死掉后3秒就可以出现在任一房间给人救
survivor_revive_health "75" 躺在地上被人拉起来的血量
survivor_revive_duration "1.75" 拉人起来的时间1.75秒
first_aid_kit_use_duration "1" 用急救包的时间 ,这里是1秒救治疗好了。

sm_cvar first_aid_heal_percent "1" //医疗包恢复生命百分比,这里为1,即100%
sm_cvar first_aid_kit_max_heal "500" //医疗包恢复生命数
sm_cvar first_aid_kit_range "200" //医疗包恢复生命距离
sm_cvar first_aid_kit_use_duration "1" //医疗包恢复生命所需时间(秒)
sm_cvar z_survivor_respawn_health "100" //重生后的血量
sm_cvar pain_pills_health_value "100" //止痛药的补血量,默认40
sm_cvar pain_pills_decay_rate "0.10" //止痛药的损耗速度,默认0.34


//丢东西的力量
sm_cvar z_throw_force "5000"
//右键推的力量,默认为25
sm_cvar z_gun_physics_force "500"
//右键推的范围
sm_cvar z_gun_range "75"
//盖特机枪冷却时间
sm_cvar z_minigun_cooldown_time "3"
//盖特机枪过热时间
sm_cvar z_minigun_overheat_time "60"
//盖特机枪攻击范围
sm_cvar z_minigun_rate_of_fire "1500"


//AI随机放置汽油弹密度(设为0就等于禁止了汽油弹)
//sm_cvar director_molotov_density "0"
//AI随机放置土制****密度(设为0就等于禁止了土制)
//sm_cvar director_pipe_bomb_density "0"
//土制****的爆炸时间
sm_cvar pipe_bomb_timer_duration "8"


sm_cvar inferno_damage 10 说明:这是火焰的燃烧秒数(明火)
sm_cvar inferno_flame_lifetime 10 说明:这是燃烧持续的秒数(实际火焰-暗火)
sm_cvar inferno_flame_spacing 1000 说明:这是燃烧刚开始的距离
sm_cvar inferno_max_range 2000 说明:这是燃烧距离的最大值(最后出现火焰的最大范围)
sm_cvar inferno_max_flames 32 说明:这是火焰扩散的次数

// 队友伤害
sm_cvar survivor_friendly_fire_factor_expert "0.2"
//服务器密码
rcon_password "250631941"

//关闭队友投票权
sm_cvar sv_allow_votes "0"

//电脑BOT开枪延迟,默认0,改成10电脑BOT完全没用
sm_cvar sb_open_fire "0"

// 激活服务端中文名称
sm_namehost 1

//开启修改
Sv_Cheats 0

//躺下后依然可以移动
sm_cvar survivor_allow_crawling "1"
sm_cvar survivor_crawl_speed "160"

//双重跳指令
sm_cvar sm_doublejump_enabled "0"
sm_cvar sm_doublejump_max "0"
//---------------------------------------

//人死掉后3秒就可以出现在任一房间给人救,默认60
sm_cvar rescue_min_dead_time "300"

/没有电脑BOT帮助
sm_cvar director_no_survivor_bots "0"

//右键速度默认 0.7 越低越快 (0.19)
sm_cvar z_gun_swing_interval "0.5"

//蹲下移动速度变快
sm_cvar survivor_crouch_speed "120"

//丢东西的力量
sm_cvar z_throw_force "1000"

//右键推的力量,默认为25
sm_cvar z_gun_physics_force "100"

//右键推的范围 默认为75
sm_cvar z_gun_range "100"

// 近战武器每次攻击间隔 (默认1.2秒)
sm_cvar melee_combo_reset_time "0.5"

// 近战武器最大推怪数量
sm_cvar melee_collateral_shove_count "20"

// 近战武器伤害范围数值越高能砍得越远 (默认70)
sm_cvar melee_range "180"

// 近战武器力量(默认20)
sm_cvar melee_force_scalar "100"

// 近战武器显示摆动(默认0)
sm_cvar melee_show_swing "1"

//生还者受伤时行走速度
sm_cvar survivor_limp_walk_speed "120"

倒下后到了这个数值后就会死(不确定,可能是倒下血到了1后仍然没有被队友拉起的话就会死亡)
sm_cvar survivor_max_incapacitated_count "1"

此数值以下称为受伤(貌似是40、20还是10忘了,血量到了这个数值后玩家就会变成瘸腿)
sm_cvar survivor_limp_health "10"

 //口水婆吐在地面酸液的存在时间,默认10秒(PS:即受到10秒伤害。)
sm_cvar z_spitter_high_chance "30"

//口水婆喷吐距离半径默认900(PS:这个距离是指以spitte为起点吐向玩家的距离半径)
sm_cvar z_spit_range "1000"

//酸液每0.5秒加乘默认0.3的扣血量(PS:这个参数是配合上面酸液存在的时间相互使用的。酸液存在10的秒里,每半秒扣除3点血。10秒即为受到30点血的损伤,修改时须保留小数点后一位。)
sm_cvar z_spit_latency "0.9"

//口水婆吐出酸液之前的僵直时间默认0.1秒(PS:即口水婆原地立正过X秒后才可向玩家吐出酸液)
sm_cvar z_spit_detonate_delay "0.1"

// Spitter 大吐婆的移动速度
z_spitter_speed 500

//--------------------------------------------

//爆炸子弹爆裂度
sm_cvar upgrade_explosive_bullet_force "800"
sm_cvar upgrade_explosive_slug_force "800"
upgrade_laser_sight_spread_factor 1

//榴弹炮伤害
grenadelauncher_damage "100"

//对其它玩家的伤害面
grenadelauncher_ff_scale "1"

//对自身的伤害面
grenadelauncher_ff_scale_self "1"

//范围伤害力
grenadelauncher_force_kill "100"

//绝对伤害范围,此范围内小僵尸必杀
grenadelauncher_radius_kill "100 "

//伤害范围冲击波大小
grenadelauncher_radius_stumble "500"

//是否显示伤害范围
grenadelauncher_show_radius "1"

//榴弹炮发射速度(默认1200)
grenadelauncher_velocity "1200"
//--------------------------------------------

//每次刷新出现的胖子的数量,默认1
sm_cvar z_boomer_limit "3"

//每次刷新出现的烟鬼的数量
sm_cvar z_gas_limit "3"

//每次刷新出现的猎人的数量
sm_cvar z_hunter_limit "5"

// Charge同时出现数量(默认1)
sm_cvar z_charger_limit "4"

//最大同时出现数量
z_jockey_limit "3"

//口水婆最高刷新数量(已测试能用,嘿..注意不是同时在一个地点刷这么多)
z_spitter_limit "3"

//----------------------------------------

//Boomer 胖子的生命值
z_exploding_health "2000"

// Charge生命(默认600)
sm_cvar z_charger_health "1200"

// Hunter生命(默认250)
sm_cvar z_hunter_health "600"

//烟鬼生命值 默认250(默认250)
sm_cvar z_gas_health "800"

// Jockey生命(默认325)
sm_cvar z_jockey_health "800"

// 大吐婆的生命值
z_spitter_health "800"
//-----------------------------------------

// 设置为1,使用有效出现雾气
sm_cvar z_fog_spawn 1
//----------------------------------------


//-----------------------------------------

//女巫生命值,默认1000
z_witch_health "1000"

//女巫的发飙范围,默认200
sm_cvar z_witch_berserk_range "100"

//女巫的燃烧时间,烧完就死了
sm_cvar z_witch_burn_time "5"

//女巫的伤害,默认100
sm_cvar z_witch_damage "150"

//女巫对手电筒照射的反应范围,默认400
sm_cvar z_witch_flashlight_range "50"

//Witch 女巫的移动速度
z_witch_speed 1000

//-----------------------------------------

//猎人跳跃角度
sm_cvar hunter_pounce_max_loft_angle "150"

//猎人爪子伤害值,默认6
sm_cvar hunter_pz_claw_dmg "50"

//猎人行走速度,默认300
sm_cvar z_hunter_speed "1000"

//猎人飞扑的速度,默认700
sm_cvar hunter_pounce_air_speed "1500"

//猎人飞跃距离,默认1000
sm_cvar hunter_leap_away_give_up_range "2000"

//猎人最长距离的飞扑仰角,默认45
sm_cvar hunter_pounce_max_loft_angle "45"

//猎人的扑倒范围,默认240
sm_cvar z_hunter_claw_force "800"

//猎人扑倒后的攻击力,默认5
sm_cvar z_pounce_damage "20"

//猎人扑倒持续伤害间隔,默认1
sm_cvar z_pounce_damage_delay "0.5"

//-----------------------------------------

运行

cd ~/Steam/steamapps/common/"Left 4 Dead 2 Dedicated Server"/
screen -S coop
./srcds_run -game left4dead2 -condebug -secure +port 27015 +map c2m1_highway +exec server.cfg

别忘记开防火墙里端口UDP协议

插件安装

sourcemod

https://www.sourcemod.net/downloads.php?branch=stable

metamod

https://www.sourcemm.net/downloads.php?branch=stable

L4DtoolZ

https://github.com/Accelerator74/l4dtoolz/releases

解压

将下载来的三个压缩包解压到一起,得到addons和cfg两个文件夹。如果得到多个文件夹,就把多余文件夹移入addons文件夹,只剩下addons和cfg两个文件夹。

控制台输入meta list,即可查看安装是否成功

控制台输入sm plugins list,即可查看安装的插件

安装插件(以MultiSlots多人插件为例)

啊,这个插件MultiSlots搞了我半天==

因为网上流传的许多是win版本的整合包,我在里面寻找,拿过去用之后发现总是给我报错,说缺失dhooks.ext.so这个运行库

但是整合包里全是dll,找半天才搜到

emmm,之后找到了放到extension里面也没用,还是同样的报错

看似穷途末路了,但是还是让我找到了这个插件的最初版本

https://forums.alliedmods.net/showthread.php?t=132408

好耶!(所以说应该能用了)

添加管理员

在l4d2控制台输入status会出现 “STEAM_1:1:xxxxxxxxx”这一串就是你的Steam UniqueID,复制一下

/addons/sourcemod/configs里找admins_simple.ini

插件推荐

sourcemod的官方论坛

alliedmods.net

电击器修复

这个是电击器修复,5人及以上的时候不会电起来错误的人

https://forums.alliedmods.net/showthread.php?p=2647018

witch惊扰修复

防止惊扰的witch只会找tab列表里能看到的人等等

https://forums.alliedmods.net/showthread.php?p=2647014

榴弹M60正常化

https://forums.alliedmods.net/showthread.php?p=2694504

上一篇
下一篇