战斗起来:建一个CS服务器

关于建设CS服务器的文章已经很多,这篇文章旨在提供简单易行的方法,无意成为全面的向导。如果想要知道CS服务器架设的方方面面,或者想在linux上架设,不妨访问官方网站server.counter-strike.net。 比较好的中文建站指南可以在8da找到。8da的指南天极网的CS命令 详解和本文互相补漏,建议参考。

如果不在教育网,请不必照搬本文,根据情况变通一下。

准备

如果你想让大家玩得痛快,下面几点很重要:

下载软件

上海大学的CS文件服务器可以找到CS服务器版。Windows上的CS服务需要两个文件,首先安装hlserver41081.exe,然后是csv13full2.exe。这个服务器上内容丰富,不妨留意一下。实际上CS的一般版本自带服务端程序hlds.exe,不必劳神去找。

开战

为hlds.exe建立一个快捷方式,用下面的参数:

hlds.exe -game cstrike -nomaster +sv_lan 1 +maxplayers 20 +map de_dust

执行,应该看到hlds报告加载各个组件,显示游戏状态。同一网段里(严格的说,多播边界里)的用户应该可以在lan game看到你的服务器。其它的玩家,如果ip地址和CS服务器的地址前三部分相同,或者使用保留IP(譬如192.168.0.*),在net game里add server,输入CS服务器的地址,也应该能够加入。这将在下面解释。

"-game cstrike"使服务器运行CounterStrike(而不是HalfLife),"-nomaster"关闭WON通讯。余下的参数可以去掉加号当作命令放在cstrike文件夹下的autoexec.cfg文件里。"+sv_lan 1"指定使用局域网模式,如果不指定,hlds会试图和Valve取得联系,以便验证CDKey。这永远不会成功(教育网不能直接出国),因此CS服务永远不会启动。余下两个参数基本是自说明的。map没有默任值,必须指定。

运行在局域网模式,hlds根据IP地址判断用户是否在局域网内。局域网的掩码存在sw.dll里,查找8A 4C 24 1C 3A C1 75 E6,将 8A 4C 改成 EB 12 即可解除掩码限制。

维护

CS服务器的参数在下面几个文件里设置(它们都在cstrike文件夹)

mapcycle.txt
这个文件包含地图顺序
server.cfg
每次roundstart时执行这个脚本。这个脚本文件保存了主要的设置。
autoexec.cfg
hlds启动时首先执行这个脚本。可以包含sv_lan,maxplayer这些命令。
motd.txt
进入游戏之前,客户端会显示这个文件的内容。只能用英语,所以几乎没人看。

这些文件配置的方法在前述两文里有详细介绍。

hlds并不运行为服务(它应该是),最好用计划任务和rcon命令(参看其他命令指南)配合来管理。把hlds添加为“在计算机启动时”执行的计划任务即可。如果用at命令配合/interactive参数启动计划任务,可以交互控制。hlds有时会异常退出,可以在计划任务里设置重复运行,比如每3分钟重复一次。不必担心会同时运行hlds的多个副本。


Google No GIFs Valid XHTML 1.1! Creative Commons License Viewable With Any Browser