前言:初入坑搭建CSGO社区服我们通常会遇到一个问题,就是换图不正常。我们不能像其他大型的社区服或者官方服务器一样进行投票换图,而经过我实验之后锁定了问题所在。
比如传统竞技或者休闲模式下,比赛结束之后会显示地图投票的界面,这时候服务器内的玩家可以进行投票选图,但我们会发现无论添不添加mp_endmatch_votenextmap 1这个参数,在换图之后经常都会换成其他的地图(我自己的服务器就经常出现选了炼狱小镇换了意大利小镇这种乌龙)。而经过我实验发现这个问题是Sourcemod默认安装的nextmap.smx这个插件引起的。
根据sourcemod官方文档介绍,nextmap.smx这个插件的作用是随机选择下张地图,而且不需要搭配任何其他插件使用,所以我们可以直接将这个插件删除或者放入/plugins/disabled里。换图不准确的问题立即迎刃而解。
接下来重头戏来了,配置maplist文件
有一定服务器配置经验都知道在/sourcemod/configs文件夹里有一个maplist.cfg文件。而我们刚刚搭建好服务器的初始状态下会发现无论是mapchooser,rockthevote,还是管理员换图菜单里地图不对,会出现两张de_dust2,缺少几张服役地图。而这一切的罪魁祸首就是maplist.cfg和/csgo/mapcycle.txt这两个文件。
刚刚搭建好并安装sourcemod的服务器打开maplist.cfg文件我们会看到这样的默认配置:
刚接触服务器搭建的我们看到这样一个配置文件肯定是一头雾水的,并且sourcemod官方文档也没有具体说明这个文件需要如何配置。
前面提到的地图不对的问题,最直接了当的方法就是修改/csgo/mapcycle.txt文件就可以得到我们想要的地图菜单了。
然鹅当我们遇到使用创意工坊地图,或者想要给管理员更多的换图选项,或者是一机多服这些需求的时候,学会配置maplist.cfg这个文件就尤为重要了。
实际上配置这个文件并不难,我们只需要看懂就可以了。实际上在任何状态下,sourcemod所有的换图插件,都是默认加载mapcycle.cfg这个文件里的内容。假设我们需要架设多人1v1服务器,需要使用到创意工坊的1v1地图。虽然CSGO服务器可以通过添加启动项的方式来让服务器直接加载创意工坊内容,但根据我实测发现在服务器没有魔法上网的情况下,会不定时出现服务器不能正常启动或是不能正常换图的问题(原因大家都懂),而如果我们将地图下载到服务器的maps文件夹里并通过fastdl服务器来加速文件下载,就可以完美避开创意工坊的网络问题。
回到maplist.cfg文件的配置来,实际上这个文件是针对sourcemod自带的几个换图插件进行功能配置的,我们可以看到randomcycle插件,mapchooser插件以及我这里没有截出来的nomination插件,同时还有管理员换图指令所使用的配置文件也同样在这里进行配置。
实操:
以mapchooser.smx插件配置为例,我们可以在addons/sourcemod/configs里创建一个新的文件,例如maps.ini,然后往里面添加我想要的地图的名字,比如1v1地图am_must2(前提是已经将am_must2.bsp文件上传至服务器的maps文件夹和fastdl服务器中)。编辑好maps.ini文件之后我们保存,然后对maplist.cfg文件进行编辑。
我们可以看到默认状态下mapchooser的配置是"target" "default"。由于官方文档并没有解释target这个指令怎么用,所以我们姑且替换他,改成"file" "addons/sourcemod/configs/maps.ini"即可。
这时候我们只需要重启服务器即可。同时我们配置之后也不会和服务器自带的投票换图功能冲突(可以禁用插件在剩余一定回合时投票换图)。同理,我们也可以为管理员换图菜单专门编辑一个文件,对maplist.cfg文件进行相应的修改即可。也包括default设置也可以进行修改。
P.S.关于如何配置FastDL,有不同的方案可以参考,链接贴在这里