大家好我是艾西,熟悉Left 4 Dead 2求生之路2这游戏的小伙伴都知道这个游戏分为以下几种模式:
对抗模式:在对抗模式下,玩家需要掌握一定的技能才能打好比赛。无论是扮演特殊的感觉还是扮演人类的四大主角,他们都需要注意与队友的合作。
写实模式:此模式类似战役,只能4人玩,一起闯关,只能扮演人类角色。
生存模式:类似于挑战模式,感染者是无穷无尽的,坚持的时间越长,评分越高。
清道夫模式(同对抗):玩家分为感染者和人类,人类需要运输油桶,感染者阻止人类。然后双方阵营互换,油桶多的队伍获胜
今天跟大家聊下ubuntn服务器系统搭建求生之路2,药抗模式。 每一个系统都有各自的优势以及好处,根据个人习惯也可以多一种选择,之前win和centos的都有分享,大家翻翻以前的文章看看。
这篇文章底部也有很多求生之路2的游戏代码以及控制台指令有兴趣的小伙伴希望可以帮助到你们
(注:因PT原因本文中www/http/https/com等字符均由xxx代替)
那么现在开始我们的教程:
今天搭建的是Left 4 Dead 2 抗药模式
本次操作用的系统是ubuntu
准备工具:
服务器一台:个人娱乐的可以考虑云机器,如果是对外开放的建议高配置物理服务器。游戏的整体流程度以及游戏玩家体验均由服务器配置决定,这里小编就不多说了懂得都懂!!!服务器系统选择ubuntu 18.04 或更早的系统版本,开放服务器安全组TCP/UDP 设置27015和27016端口。如果不会操作的话直接找服务器供应商让机房直接操作。
本地电脑下载安装xshell和xftp软件用于远程服务器使用
用xshell远程服务器,输入你服务器的IP账户密码即可,远程进服务器我在这里就不详细的讲解了不懂的小伙伴自行baidu。进入服务器后依次运行以下指令代码:
dpkg --add-architecture i386 # enable multi-arch.apt-get update && apt-get upgradeapt-get install libc6:i386 # install base 32bit libraries4.apt-get install lib32z1apt-get install screen在运行以上代码脚本是会有出现输入 Y/N 的选项全部默认Y即可,加载需要一些时间耐心等待即可。
新建一个用户用来管理服务器:
我们命名这个用户为steam,并让它能够运行root命令,这样你就不需要总是登录root.然后就可以登录这个新用户.
依次输入以下代码:
adduser steam
我们命名这个用户为steam,并让它能够运行root命令,这样你就不需要总是登录root.然后就可以登录这个新用户.
adduser steam sudo
给予新用户权限
login
当你输入login命令的时候会询问你要登录哪个用户,直接输入你刚刚创建的新用户名字(steam)和刚刚设置的密码就可以了(创建用户时会要求你输入登录密码,设置密码时是不会有显示的,大家注意下) 登录成功后大家可以注意看一下自己的用户名是不是变成steam了,如果显示steam那就表示可以了。
安装steam和L4D2的相关文件
此时不需要登录root用户,直接登录创建的新用户steam就行了.输入指令:
wget xxxx:/ /media.steampowered/installer/steamcmd_linux.tar.gz
解压steamcmd程序包:
tar -xvzf steamcmd_linux.tar.gz
运行steamcmd程序加载L4D2的相关文件以及程序等
./ steamcmd.sh
逐行输入以下命令你就可以将I4D2服务器所需要的文件安装在/home/steam/Steam/steamapps/common/14d2”路径下
force_install_dir ./steam/ steamapps/ common/ l4d2
login anonymous
app_update 222860 validate
quit
创建服务器启动/重启/停止的文件
下载并使用Notepad++(一个编程软件)
根据开服指引,把插件文件夹中的srcds1文件修改后上传至主机/etc/init.d文件夹中
首先使用xftp软件上传文件到服务器里面,使用方法也是和xshell远程服务器是一样的。输入你的服务器IP以及账户密码进入即可。
在本地打开L4D2-Competitive-Rework/blob[master/Dedicated server Install Guide 路径下的srcds1文件用notepad++软件打开编辑。
主要修改:用户名和路径(用户名一般为默认的admin 根据个人喜欢去修改)。
文件在37行你能看到服务器IP,将原本的服务器IP改为你的服务器IP即可。
第38行为游戏端口,改为27015或是27016都可以用于访问游戏。
在第40行你能看见以下代码:
PARANMS="-game left4dead2 - port $PORT +sv_clockcorrection_msecs 25 -timeout 10 -tickrate 100 +map c2ml_highway -maxplayers 30 -nomastef +servercfgfile server$SVNUM .cfg " 这个是启动项代码
将srcds1文件改好后通过xftp上传到/etc/init.d文件并覆盖即可,回到xshell服务器内输入指令获取zonemod插件:(依次输入以下指令)
cd ~/steam/ steamapps/ common/l4d2/ left4dead2
wget xxxx://github/sirPlease/L4D2-Competitive-Rework/archive/re
ls/master.zip
unzip master $$ rm master.zip
cp -r L4D2-Competitive-Rework-master/*~/Steam/steamapps / common/l4d2/left4dead2
rm -rf L4D2-competitive-Rework-master
在解压安装时记得检查一下自己的路径,上面代码中的/xxx/xxx 要和你的路径相同才能识别到这里小伙伴们注意下就好。 解压好后通过xftp进入cfg文件找到server.cfg文件编辑修改一下游戏参数
Hosthome为服务器名称,将冒号内的名称修改为你的自己喜欢的昵称就好。用英文或是字母数字代表,如果是中文的话需要的单独安装插件。在图中框框这一栏加入sv_tags hidden用于隐藏。
如上图拉到最下面输入代码:sm_forcematch zonemod 可以在启动或重启服务器时就默认采用zonemod比赛模式 箭头1位置即为可参赛人数默认是30 你可以根据自己的喜好去修改,箭头2即为我们输入的代码格式
启动、重启和停止服务器
首先需要让系统能够运行这些文件,需要在终端输入以下命令.如果你想要运行多个服务器,就需要为每个服务器都运行以下命令:
sudo chmod +x letc/init.d/ srcds1
服务器建立完成
现在你可以简单的输入以下几个指令就可以启动/重启/停止服务器.
/etc/init.d/ srcdsl restart
/etc/init.d/ srcdsl start
/etc/init.d/ srcdsl stop
到这里服务器就算搭建完成了,在steam面板启动求生之路2然后按住~ 键调出控制台输入:connet +你的服务器IP:27015 回车即可进入到你自己的服务器啦
常用对抗三方地图的地址指令
cd ~/steam/steamapps / common/l4d2/ left4dead2/ addons
//定位下载文件的存放位置
选择自己想要的地图进行逐个下载,也可以使用最后的一次性下载指令来下载所有常用三方对抗图
wget xxxx://sirpleaseny.nfoservers/map/DarkcarnivalRemix.zip // c2改
wget xxxx://sirpleaseny.nfoservers/map/HardRainDownpour.zip //c4改
wget xxxx:/lsirpleaseny.nfoservers/map/HauntedForest.zip //颤栗森林
wget xxxx://sirpleaseny.nfoservers/map/IHateMountains2.zip //我恨山2
wget xxxx://sirpleaseny.nfoservers/map/openRoad.zip //开放公路,也叫绝命公路
wget xxxx://sirpleaseny.nfoservers/map/Blitz2.zip //闪电突袭2
wget xxxx:/lsirpleaseny.nfoservers/map/DetourAhead.zip //迂回前进
wget xxxx://sirpleaseny.nfoservers/map/DiescraperRedux.zip //喋血蜃楼
wget xxxx: //sirpleaseny.nfoservers/map/Undeadzone.zip //亡灵区
wget xxxx://sirpleaseny.nfoservers/map/UrbanFlight.zip //城市航班
wget xxxx://sirpleaseny.nfoservers/map/DeadBeforeDawnDC.zip //活死人黎明
wget xxxx:/ /sirpleaseny.nfoservers/map/warcelona.zip //巴塞罗那
需要修改模式的话只需要修改,sm_cvar mp_gamemode "versus"// 设定为对抗模式sv_gametypes versus// 设定为对抗模式实测:如果使用官方的"community6"药抗模式,一定要删除插件平台的"nextmap.smx"插件,否则直接崩服.下面是求生之路2所有的代码:包含对抗模式,特殊模式,普通模式,难度调整,地图代码难度修改(无需投票):z_difficulty Easy 简单z_difficulty Normal 正常z_difficulty Hard 困难z_difficulty Impossible 专家模式选择:map 地图名 versus 对抗模式(sb_all_bot_game 1 [*参见下面全部指令部分])map 地图名 realism 写实模式map 地图名 survival 生存模式map 地图名 scavenge 清道夫模式控制台输入格式:map 地图名 游戏模式如:map c1m1_hotel mutation2
mutation1 Last Man On Earth 【孤身一人】 单机单人 只有一个人没有小丧尸,只有特感(除BOOMER),倒地自起、控制的特感也会放开,但是会黑白mutation2 Headshots 【枪枪爆头】 合作模式 小丧尸只有爆头才会死mutation3 Bleeding Out 【血流不止】 合作模式 这个模式从关卡开头就是虚血【并持续减血】, 全图无包,只有靠药瓶和针维持血量。mutation4 Hard Eight 【绝处求生】合作模式 一次刷8个特殊感染者,特感复活时间×2mutation5 Four Swordsmen 【四剑客】 合作模式 一出场只有4把武士刀mutation7 Chainsaw Massacre 【电锯帮】 合作模式 武器只有4个无限油的电锯mutation8 Iron Man 【铁人意志】 合作模式 团灭以后直接回到大厅,不会重新开始某个小关游戏
mutation9 Last Gnome On Earth 【侏儒卫队】 合作模式 玩家必须携带一个侏儒玩偶来躲避丧尸的攻击到达安全门mutation10 Room For One 【一人救赎】 合作模式 只有一个人能终关逃生mutation11 Health pack alypse! 【没有救赎】 对抗模式 全关没有包和药mutation12 Realism Versus 【写实对抗】 对抗模式 写实难度的对抗mutation13 Follow The Liter 【清道肆虐】 对抗模式 线性清道夫,每次只有1个位置出现油桶, 每个新位置比上一个+2桶mutation14 Gib Fest 【无法近身】 合作模式 全关没有近战武器,只有一把无限子弹M60和
麦林手枪mutation15 Versus Surival 【生存对抗】 对抗模式 使用生存模式计分规则mutation16 Hunting Party 【猎人派对】 合作模式 特殊感染者都是huntermutation17 Lone Gunman 【孤胆】 单机单人 只有一个人一把沙鹰,特感保留bommer、witch和tank,小丧尸伤害高mutation18 Bleed Out Versus 【失血对抗】 对抗模式 所有幸存者虚血(并持续减血),全图无包mutation19 Taaannnk!! 【无限坦克】 对抗模式 扮演感染者方全是坐坦克mutation20 Healing Gnome 【侏儒治愈】 合作模式 所有幸存者虚血【并持续减血】,全图无包,抱着侏儒的人可以回复血量
community1 Special Delivery 【特感速递】 合作模式 无小丧尸,但是特感重生无等待时间community2 Flu Season 【感染季节】 合作模式 特感只有bommer和spitter但是重生无等待时间, 无小丧尸,但是被bommer喷到、打到警报车和开机关有丧尸群community3 Riding My Survivor【骑师派对】 对抗模式 特感方都是jockey,而且移动超快,无小丧尸(包括开警报后)community4 Nightmare 【噩梦经历】 合作模式 超级难度的生存模式,在写实难度基础上加了环境的迷雾
community5 Death's Door 【死亡之门】 合作模式 每关开始只有药没有包,倒地即死community6 Confogl 【药抗】 对抗模式,只有药和针,取消高级武器,每关tank,更合理的对抗记分方式Ps:其中mutation1、17是一个人,其他的话合作模式的是4人,对抗是八人
求生之路2地图指令(按地图指令排序):c1m1_hotel 死亡中心1旅馆c1m2_streets 死亡中心2街道c1m3_mall 死亡中心3购物中心c1m4_atrium 死亡中心4中厅c2m1_highway 黑色狂欢节1高速公路c2m2_fairgrounds 黑色狂欢节2游乐场c2m3_coaster 黑色狂欢节3过山车c2m4_barns 黑色狂欢节4谷仓c2m5_concert 黑色狂欢节5音乐会c3m1_plankcountry 沼泽激战1乡村c3m2_swamp 沼泽激战2沼泽
c3m3_shantytown 沼泽激战3贫民窟c3m4_plantation 沼泽激战4种植园c4m1_milltown_a 暴风骤雨1密尔城c4m2_sugarmill_a 暴风骤雨2糖厂c4m3_sugarmill_b 暴风骤雨3逃离工厂c4m4_milltown_b 暴风骤雨4重返小镇c4m5_milltown_escap 暴风骤雨5逃离小镇c5m1_waterfront 教区1码头c5m1_waterfront_sndscape (教区的一个特殊版本,不能正常游玩 忽略)
c5m2_park 教区2公园c5m3_cemetery 教区3墓地c5m4_quarter 教区4特区c5m5_bridge 教区5桥c6m1_riverbank 短暂时刻1河岸c6m2_bedlam 短暂时刻2疯人院c6m3_port 短暂时刻3港口c7m1_docks 牺牲1码头c7m2_barge 牺牲2驳船c7m3_port 牺牲3港口c8m1_apartment 毫不留情1公寓c8m2_subway 毫不留情2地铁c8m3_sewers 毫不留情3下水道c8m4_interior 毫不留情4室内
c8m5_rooftop 毫不留情5屋顶c9m1_alleys 坠机险途1小巷c9m2_lots 坠机险途2c10m1_caves 死亡丧钟1洞穴c10m2_drainage 死亡丧钟2引流c10m3_ranchhouse 死亡丧钟3牧场c10m4_mainstreet 死亡丧钟4主街道c10m5_houseboat 死亡丧钟5船屋c11m1_greenhouse 寂静时分1温室c11m2_offices 寂静时分2起重机c11m3_garage 寂静时分3工地c11m4_terminal 寂静时分4候机室c11m5_runway 寂静时分5跑道
c12m1_hilltop 血腥收获1山顶c12m2_traintunnel 血腥收获2火车隧道c12m3_bridge 血腥收获3桥c12m4_barn 血腥收获4火车站c12m5_cornfield 血腥收获5农舍c13m1_alpinecreek 刺骨寒溪1高山溪c13m2_southpinestream 刺骨寒溪2南松溪c13m3_memorialbridge 刺骨寒溪3纪念桥c13m4_cutthroatcreek 刺骨寒溪3残酷的小溪c14m1_junkyard 临死一搏1垃圾场c14m2_lighthouse 临死一搏2灯塔
下面是求生之路2的游戏代码:
常用指令
sb_give grenade_launcher 给所有电脑 榴弹发射器
give pistol_magnum 玛格南手枪
give shotgun_spas 战术散弹枪
give grenade_launcher 榴弹发射器
upgrade_add laser_sight 获得激光瞄准的升级效果
give gascan 汽油红桶
give health 恢复满血
give first_aid_kit 医药包
give 肾上腺素针
give pain_pills 药丸
give defibrillator 电震仪器
give pipe_bomb 土制炸弹
give molotov 莫洛托夫燃烧瓶
give vomitjar 胆汁瓶
give sniper_military 2代的连狙
give katana 武士刀
give chainsaw 电锯
命令指令
无需sv_cheats的值为1:
cl_showfps 1 显示帧数(1=显示帧数和地图名 2=显示帧数和平滑率 3=服务器信息 4=显示帧数和日志文件)
cl_showpos 1 显示玩家名称、位置及当前速度
thirdpersonshoulder 第三人称越肩视角
cl_drawhud 0 关闭UI(1为开启,控制台不受影响)
net_graph 1 显示当前网络状况(FPS PING等)
changelevel map 切换地图(本地或者服务器有权限)
openserverbrowser 打开社区服务器浏览器
connect ip 连接此ip的服务器(可能还需要端口号,如果服务器不是默认端口的情况下)
disconnect 与服务器断开连接
quit 退出游戏
需sv_cheats的值为1:
kill 自杀
kick * 踢出玩家
explode 自爆(脚下生成一个能杀死你的爆炸)
god 1 无敌(0 关闭)
buddha 1 会受到伤害但是不会死(0 关闭)
noclip 飞行(再次输入为关闭)
sv_infinite_ammo 1 无限(燃烧和高爆子弹的效果还是会被消耗)
give health 恢复满血
give ammo 获得
director_stop 停止生成任何物品和生物
director_start 继续生成任何物品和生物
vs_max_team_switches 1 可切换团队的次数(默认值为1)
fire 脚下生成一个莫洛托夫的火焰圈(相等于往自己脚底扔一个燃烧瓶,自己会受到伤害)
melee_range 70 近战武器的攻击范围(预设为70,数值越高能砍得越远)
host_timescale 游戏运行速度(默认为1,正常速度。设置为2则速度翻倍,0.5则减慢一半)
sv_infinite_primary_ammo 1 仅主武器无限(燃烧和高爆子弹的效果还是会被消耗)
其他
sb_flashlight 1 强制所有电脑队友使用手电筒(-1为强制不使用)
sb_dont_bash 1 强制电脑队友不用手推(默认右键的推开)
sb_give * 给予所有电脑一个道具或武器(*代表物品名)
sb_give_random_weapon 给每个电脑随机分配一把武器
nb_blind 1 所有电脑僵尸都看不到你(但是撞到僵尸还是会攻击你)
sb_takecontrol * 游戏中在4个人物之间切换控制(*代表四个角色,无后缀为随机切换)
sb_move 0 所有电脑队友停止移动
sb_escort 1 强制所有电脑队友保护你紧跟在你身边
sb_open_fire 1 强制所有电脑队友不停的开火
sb_dont_shoot 1 强制电脑队友不开火
warp_all_survivors_here 传送所有幸存者到当前准星位置
warp_to_start_area 传送你自己到起始位置
mat_fullbright 1 启用“全亮”模式(其中地图的所有区域都处于最大照明级别)
nb_delete_all 踢掉所有电脑队友和附近的僵尸和所有的特殊僵尸(但是所有的僵尸还是会刷新)
sb_crouch 1 强制所有电脑队友蹲下
主武器
give pumpshotgun 泵式散弹枪(单喷,没啥好说的)
give shotgun_chrome 镀铬散弹枪(单喷,没啥好说的)
give weapon_smg_mp5 MP5冲锋枪
give smg UZI冲锋枪
give smg_silenced 带消声器的MAC冲锋枪
give rifle_ak47 AK47步枪
give rifle_desert SCAR步枪
give rifle M16步枪
give rifle_sg552 SG552步枪
give autoshotgun 战术散弹枪(就是XM1014)
give shotgun_spas 战斗散弹枪(就是SPAS-12)
give sniper_awp AWP狙击枪
give hunting_rifle 狩猎步枪(猎枪)
give sniper_scout Scout狙击枪
give sniper_military 狙击枪(现代连狙)
give grenade_launcher 榴弹发射器
give rifle_m60 M60机枪
副武器
give pistol 手枪(一共有三种:M1911、P220、Glock)
give pistol_magnum 玛格南手枪
give fireaxe 消防斧
give baseball_bat 棒球棍
give cricket_bat 板球棒
give crowbar 撬棍
give frying_pan 平底锅
- 高尔夫球棒(仅可通过地图生成获得)
give electric_guitar 电吉他
give katana 武士刀
give knife 海豹短刀
give machete 砍刀
give tonfa 警棍
give pitchfork 干草叉
give shovel 铲子
give chainsaw 电锯(weapon_chainsaw)
投掷物
give vomitjar 胆汁瓶
give molotov 莫洛托夫燃烧瓶
give pipe_bomb 管状炸弹(土制炸弹)
升级品
give upgradepack_explosive 爆炸子弹升级盒
give upgradepack_incendiary 燃烧子弹升级盒
直接获得升级品的效果
upgrade_add Incendiary_ammo 燃烧子弹升级
upgrade_add explosive_ammo 爆炸子弹升级
upgrade_add laser_sight 激光瞄准升级
固定武器
- 重机枪(地图固定武器)
- Mini Gun(地图固定武器)
道具
- 圆柱形汽油桶(一般是白色的桶,桶上有红色标识,打了会燃烧并爆炸,地图生成)
give fireworkcrate 烟花盒
give gascan 汽油桶(加油用的红色桶)
give oxygentank 氧气瓶
give propanetank 煤气罐
特殊道具
give cola_bottles 可乐
give gnome 侏儒玩偶(weapon_gnome)
药品
give 肾上腺素针
give defibrillator 心脏除颤器
give first_aid_kit 药包
give pain_pills 药丸
其他
give ammo 获得
give melee Hunter Claws
- 防爆盾(由weapon_melee_spawn实体生成)
命令格式: rm [可选项] 文件名 -i: 表示删除前会进行询问是否删除 -f: 表示强制删除忽略不存在的文件 -r: 表示删除文件夹及文件夹下的所有内容。 注意当我们使用rm删除文件时是不能恢复的,当我们用上F选项时不能使用i
删除1.txt文件
2.拷贝-cp命令格式: cp 源文件 目标文件-f: 强制覆盖且不提示-i: 复制时会给出相应的提示-r: 源文件为目录时,会赋值该目录下的所有内容-v: 显示复制的进度
将1.txt复制到sss文件夹中
3.剪切-mv命令格式: mv 源文件 目标文件-f: 强制覆盖且不提示-i: 复制时会给出相应的提示-v: 显示复制的进度这个命令还可以用来修改文件的名称
a.txt移动到mvv文件夹并改名为b.txt
4.查看文件-cat 、more、grepcat 文件名:查看较少内容的文件,还可以创建文件、合并文件、追加文件等。
more 文件名:查看较多内容的文件,可以分屏显示
gerp 文件名:查看较多内容的文件。
cat:-b:对非空行输出编号-n:对所有行输出编号
合并文件
more命令格式: more 文件名空格:显示下一页的内容回车:滚蛋显示下一行的内容b:显示上一页内容f:显示下一页的内容q:退出
grep这个命令是比较常用的,是一个文本搜索工具,可以对文本进行模式查找,可使用正则表达式。命令格式:grep 文件名-v:显示不包含匹配的所有行,也就是取反-n:显示匹配的行和行号-i:忽略大小写5d
显示当前所在目录
6.clear清除当前屏幕内的内容
7.which查找程序安装位置
8.reboot重新启动操作系统
关机命令:shutdown
9.查看系统进程-ps命令格式:ps -aux 或 ps -efa: 显示终端所有进程u:显示进程的详细信息x:显示没有控制终端的进程这个命令一般会结合grep一起来查看10.查看系统进程-top
命令格式:topm:根据内存大小降序显示信息P:根据cpu使用率大小降序排序实时查看系统经进程的使用情况cpu、Disk磁盘、Memory内存、Net网络等查看磁盘空间可以使用df - hT11.关闭进程-kill
命令格式: kill -9 进程号强制关闭对应的进程12.查看端口号-netstat
命令格式:netstat 可选项-a:显示已经打开的端口-p:显示对应的进程ID-n:用数字显示对应的端口,不用别名-t:显示所有tcp协议端口-u:显示所有udp协议端口13.查看系统监听端口-lsof
命令格式:lsof -i查看系统中正在使用端口的详细信息lsof -i:80 查看80端口是否被占用14.查看日志-head、tail
命令格式: head 文件名默认显示前10行内容head -20 文件名 表示显示文件前20行的内容命令格式:tail 文件名默认显示后10行内容tail -f 文件名:实时显示日志的文件信息15.修改权限-chmod-字母法
命令格式:chmod u+rwx 文件名u:文件所属用户g:文件所属组o:其他用户a:所有用户
1.获取app日志信息
adb logcat
① 在执行测试的过程当中发现了缺陷
② 使用adb连接设备,通过adb logcat打开日志面板
③ 重新手动触发缺陷
④ 等待日志停止刷新时,触发缺陷,截取错误日志信息
⑤ 退出日志查看 CTRL+c
常见错误信息:ANR、Exception
2.查看CPU占用情况
adb shell top -s 9
参数含义:
PID : 应用程序ID
%CPU:内存使用率
%MEM:内存占用百分比
Name : 应用程序名称
3.获取APP使用流量
1.获取userId(返回数据为userId=)
adb shell dumpsys package 包名 | findstr userId
2.获取上行流量(返回数据单位bytes)
adb shell cat proc/uid_stat/userId/tcp_snd
3.获取下行流量(返回数据单位bytes)
adb shell cat proc/uid_stat/userId/tcp_rcv
4.将设备上的文件复制到电脑上
adb pull 源文件路径 目标路径
5.将电脑上的文件复制到设备上
adb push 文件路径 目标路径