GZGame 发表于 2008-8-9 12:01:04

如何搭建自己的CS游戏服务器

<p><strong>建立CS游戏服务器</strong></p>
<p>在CS游戏目录中,找到hlds.exe文件,创立快捷方式。</p>
<p>右键单击快捷方式图标,察看快捷方式属性。</p>
<p>在“目标”栏中,添加下面的参数</p>
<p>hlds.exe -game cstrike -port 27015 +maxplayers 20 -nomaster +sv_lan 1 -insecure +map de_dust2 +servercfgfile server.cfg</p>
<p>注意,每个 + 号或者 - 号的前面都有一个空格。</p>
<p><strong>各个参数的意义如下</strong></p>
<p>-port 服务器端口</p>
<p>+maxplayers 服务器最大多容纳人数</p>
<p>-nomaster 让服务器不上WON认证,避免因为出国网络不通导致的服务器问题。这个参数使玩家可以使用盗版CDKey</p>
<p>+sv_lan 1 指定其为一个LAN server,即允许使用IPX协议进行游戏,同时不影响外网的人通过TCP/IP协议进入服务器,外网的人在internet game里add server也可以进入服务器。值得一提的是,如果服务器及其使用的是双网卡或更多,那么sv_lan 1的话,服务器在建立的时候会自动搜索局域网的ip来作为服务器ip。单网卡服务器建议使用此参数。</p>
<p>-insecure CS自带的VAC凡作弊系统,-号表示不使用,要使用的话就修改为 +insecure</p>
<p>+map de_dust2 服务器起始地图</p>
<p>+servercfgfile 服务器起始使用的config文件</p>
<p>服务器的所有参数设置被纪录在一个cfg文件里面,+servercfgfile server.cfg这个参数就是用来指定服务器初始化时读取的是哪个cfg的。</p>
<p>我这里帖出一个本人根据2003WCG的比赛cfg修改得到的一个混战服务器的cfg。没有标明WCG比赛设置数值的,默认就是wcg设置了,由于混战服务器的需要做了修改的,都在后面标明了wcg设置的数值。</p>
<p>mp_maxrounds 0 最大局数,当双方开战的总局数达到多少时换地图,0表不限制</p>
<p>mp_timelimit 30 最大时间,地图开始多少时间后换地图,以分钟记</p>
<p>hostname "L.Doom CS1.5 Server" 服务器名字</p>
<p>sv_password none 进入服务器的密码,none表没有</p>
<p>sv_maxrate 10000 限制网络传输的资料最大值,最大25000,WCG比赛设置 25000</p>
<p>sv_minrate 1000 限制网络传输的资料最小值</p>
<p>sv_maxspeed 320 移动的最大速度</p>
<p>pausable 0 玩家是否可以暂停游戏</p>
<p>sv_cheats 0 是否允许作弊</p>
<p>sv_aim 0 是否允许自动瞄准</p>
<p>mp_flashlight 1 战术手电是否允许使用</p>
<p>mp_footsteps 1 是否有脚步声</p>
<p>mp_falldamage 1 高出落下伤害</p>
<p>mp_autokick 3 睡死几局后自动踢出玩家</p>
<p>allow_spectators 1 是否允许旁观</p>
<p>mp_freezetime 6 每局开始时的买枪冰冻时间,以秒记,WCG 7</p>
<p>mp_roundtime 3 单局的时间,以分钟记</p>
<p>mp_buytime 1 可以买枪的时间,以分钟记,WCG 0.25</p>
<p>mp_c4timer 35 C4的爆炸时间</p>
<p>mp_startmoney 800 起始钱数</p>
<p>mp_forcecamera 2 死后视角,0,自由移动,1,只能跟在玩家身后,2,固定不动</p>
<p>mp_forcechasecam 2 死后视角,0,自由移动,1,只能看第一视角,2只能看队友第一视角</p>
<p>mp_fadetoblack 0 死后黑屏,WCG 1</p>
<p>mp_friendlyfire 1 友军伤害</p>
<p>mp_tkpunish 1 杀死队友惩罚,即杀死队友后,下一局自动自杀</p>
<p>mp_autoteambalance 2 自动人数调整,当双方人数差距多少时自动调整人数,WCG 0</p>
<p>mp_limitteams 1 一方队伍的最少人数,WCG 0</p>
<p>mp_hostagepenalty 10 杀了多少人质或队友后会被踢</p>
<p>mp_fraglimit 0 最大杀人数模式,即有人杀人数到达多少时换地图,0表无限制</p>
<p>mp_winlimit 0 最大胜利数模式,即某方胜利次数到达多少时换地图,0表无限制</p>
<p>sv_allowdownload 1 允许玩家下载</p>
<p>sv_send_logos 0 允许玩家上传logo贴图信息</p>
<p>sv_send_resources 1 允许玩家发送资源信息</p>
<p>sv_allowupload 0 允许玩家上传</p>
<p>sv_gravity 800 重力设置,默认800</p>
<p>mp_kickpercent 0.6 投票kick某玩家超过60%则kick,WCG 1</p>
<p>mp_mapvoteratio 0.6 投票换某地图的人数达60%换地图,WCG 1</p>
<p>mp_ghostfrequency 0.1 鬼魂每秒钟更新的频率</p>
<p>sv_sendvelocity 0 设定1开启较复杂的花样以及物理设定,适用较快的Server</p>
<p>mp_lowlag 0 子弹打在墙上的效果,速度快用0,慢用1</p>
<p>mp_decals 300 最大同时显示贴图</p>
<p>sv_voiceenable 1 是否允许语音通讯</p>
<p>sv_alltalk 0 语音通讯对象,0 则语音通讯只有队友能听到,1 则所有人能听到</p>
<p>log on 是否允许记录,关闭为log off</p>
<p>mp_logfile 0 是否开启记录文件</p>
<p>mp_logmessages 0 是否纪录玩家聊天内容,此项设定必需同时设定"log on""mp_logfile 1"才可生效</p>
<p>sv_proxies 4 允许接入的hltv服务器的数量</p>
<p>sv_rcon_maxfailures 5 试验op密码错误次数超过多少则ban ip</p>
<p>sv_rcon_banpenalty 5 ban ip时间,以分钟记</p>
<p>rcon_password "ldoom" 服务器远程op密码</p>
<p>mapcyclefile maplst.txt 服务器地图循环文件</p>
<p>maplst.txt文件举例:</p>
<p>该文件是地图循环文件,默认为mapcycle.txt</p>
<p>里面的地图名字一行一个,不要加扩展名,例如</p>
<p>de_dust2</p>
<p>de_cbble</p>
<p>de_aztec</p>
<p>de_nuke</p>
<p>de_train</p>
<p>de_inferno</p>
<p>de_prodigy</p>
<p>远程op应用祥解</p>
<p>作为客户端进入服务器后,在控制台输入 rcon_password oppw ,例如上面的设置,则输入 rcon_password ldoom</p>
<p>如果控制台没有提示你输入了错误的密码,那么你就已经顺利的获得了管理员权限。</p>
<p>获得远程op权限后,就可以远程遥控服务器了,可以更改几乎所有的服务器设置。</p>
<p>命令格式为在服务器参数命令前加 rcon</p>
<p>例如:</p>
<p>rcon sv_restartround 1 1秒后刷新</p>
<p>rcon mp_freezetime 3 将冰冻时间改为3秒</p>
<p>rcon sv_restart 重新启动服务器</p>
<p>rcon changelevel de_dust2 换地图到de_dust2</p>
<p>rcon exec wcg.cfg 读取服务器端的wcg.cfg配置文件</p>
<p>rcon sv_password welcome 设置进入服务器的密码为welcome</p>
<p>rcon mp_friendlyfire 0 关闭友军伤害</p>
<p>以此类推。</p>
<p>有一个特殊的命令,就是是否允许暂停,这个命令不加rcon,也就是需要修改时,直接输入 pausable 0/1 就可以了。</p>
<p>关于“Class C”问题</p>
<p>这是一个比较恼人的问题,但是解决该问题很简单,只要用一个破解程序破解swds.dll文件就可。只需服务器端破解该文件,与客户端无关。</p>
<p>破解补丁下载,覆盖原文件即可。<br/><br/></p>
<div class="content" id="textbody">
<p></p>
<p><strong>关于motd.txt文件</strong></p>
<p>这个文件是玩家进入游戏后看到的一个窗口,窗口上有个 “ok” 按钮,该窗口用以提供一些服务器信息等,可随意修改。</p>
<p>简单建立和应用CS观众服务器</p>
<p>如果要建立观众服务器,找到hltv.exe文件,创建快捷方式,添加参数如下:</p>
<p>hltv.exe +connect ip:port -port 27020 +serverpassword *** +maxclients 50</p>
<p>参数意义:</p>
<p>+connect ip:port 观众服务器连入哪一个游戏服务器</p>
<p>-port 27020 观众服务器端口</p>
<p>+maxclients 50 观众服务器最大容纳的观众人数</p>
<p>+serverpassword *** 游戏服务器的密码</p>
<p>这些信息也可以写在hltv.cfg文件中,但是要去掉+号和-号。</p>
<p>观众服务器更多设置请用记事本打开hltv.cfg文件察看</p>
<p>//进入游戏服务器所现实的名字</p>
<p>name "HLTV Proxy"</p>
<p>//hltv服务器的名字,加//屏蔽该命令的话,hltv服务器的名字将和连到的游戏服务器名字相同</p>
<p>//hostname "HLTV Proxy"</p>
<p>//转播延时时间,以秒记。</p>
<p>delay 30.0</p>
<p>slowmotion 0.5 0.2</p>
<p>multicast 0</p>
<p>//最高客户端速率,Internet互联网 3500 , Lan/IPX局域网 10000</p>
<p>maxclientrate 4000</p>
<p>// 是否记录HLTV日志文件到proxy.log文件</p>
<p>logfile 0</p>
<p>// 谈话模式 0禁止 1连接到同一个观众代理服务器的观众可以相互谈话 2 所有观众都能相互谈话</p>
<p>chatmode 1</p>
<p>//观众服务器远程op密码</p>
<p>adminpassword "hltvadmin"</p>
<p>// 允许客户端使用joingame命令加入游戏。</p>
<p>allowjoingame 1</p>
<p>//loopcmd 1 60(每隔60秒) localmsg "You're watching HLTV. "(显示的信息内容) 5(显示5秒) -1(X轴-1表示中间) -1(Y轴-1表示中间) 7700FFFF(RGBA颜色值:红、绿、蓝、透明度 16进制2位表示)</p>
<p>loopcmd 1 120 localmsg "You're watching HLTV. "5 -1 0.9 FFA000FF</p>
<p>// 设置客户端的语音部分</p>
<p>signoncommands "voice_scale 2; voice_overdrive 16; volume 0.5; echo Voice adjusted for HLTV"</p>
<p>录制录像的命令</p>
<p>record *** 录制文件名为***_1的demo. 他在你的cstrike目录下</p>
<p>用stoprecord命令来结束demo的录制</p>
<p>当你开始运行hltv以后,他会自动不断地连接你所选择的服务器,每三秒 一次,直到连上为止。掉线也一样,他会自动将你得demo分段进行录制。</p>
<p>服务器反作弊插件</p>
<p>仅以著名的反作弊插件Cheating-Death和WWCL为代表,简述反作弊插件的安装方法。</p>
<p>首先需要安装metamod插件,将metamod.dll或metamod_i386.so解压到cstrike目录下的dlls目录中。</p>
<p>用记事本打开cstrike目录下的liblist.gam文件。</p>
<p>原文件内容为:</p>
<p>game "Counter-Strike"</p>
<p>url_info "<a href="http://www.counter-strike.net/"><font color="#000000">www.counter-strike.net</font></a>"</p>
<p>url_dl ""</p>
<p>version "1.5"</p>
<p>size "184000000"</p>
<p>svonly "0"</p>
<p>secure "0"</p>
<p>type "multiplayer_only"</p>
<p>cldll "1"</p>
<p>hlversion "1110"</p>
<p>nomodels "1"</p>
<p>nohimodel "1"</p>
<p>mpentity "info_player_start"</p>
<p>gamedll "dlls/mp.dll"</p>
<p>gamedll_linux "dlls/cs_i386.so"</p>
<p>trainmap "tr_1"</p>
<p>修改gamedll行,保存得到新的liblist.gam文件,注意做好备份工作,这个文件至关重要。</p>
<p>gamedll "dlls/metamod.dll"</p>
<p>gamedll_linux "dlls/metamod_i386.so"</p>
<p>然后在cstrike目录下创建一个文本文件保存为metamod.ini文件。</p>
<p>安装C-D.</p>
<p>将C-D服务器端解压到cstrike目录下,一般是一个addons文件夹。</p>
<p>在metamod.ini文件中添加这样的命令行</p>
<p>win32 addons/cdeath/cdmod.dll</p>
<p>linux addons/cdeath/cdmod_i586.so</p>
<p>保存后,运行服务器,将加载反作弊插件Cheating-Death,在服务器的DOS窗口中可以看到加载C-D的提示。</p>
<p>安装WWCL.</p>
<p>将WWCL服务器文件解压到cstrike目录下,一般是一个addons文件夹和一个wwclconfig.cfg文件。</p>
<p>在metamod.ini文件中添加这样的命令行</p>
<p>win32 addons/wwcl/dlls/pcawwclconfig_mm.dll</p>
<p>linux addons/wwcl/dlls/pcawwclconfig_mm_i386.so</p>
<p>保存后,运行服务器,将加载反作弊插件WWCL.</p></div>
页: [1]
查看完整版本: 如何搭建自己的CS游戏服务器