CS:Source 伺服器架设教学 (Win Dedicated Server)
by A+ | MiNiTotor^o^ (本文欢迎自由转贴及复制)
一. 前言:
从 HL2 发行到现在也已经快半年了, 但台湾的 CS:Source 伺服器仍然少的可怜
笔者认为最主要的原因是没有人去推广, 而 CS 1.6 的老玩家们也不愿意为了
CS:Source 去升级自己现有的配备, 使得 CS:Source 在这方面似乎呈现断层状态
为了推广台湾的 CS:Source, 因此这篇伺服器架设教学文件终于诞生
CS:Source 伺服器的架设和 CS 1.6 是大同小异, 差别只在于一些 cvar 和 plugin
的放置方式有了些改变, 这些东西在本文中都会详细的提及
二. 如何安装及启动 CS:Source 伺服器:
1.首先下载 hldsupdatetool.exe , 这是 HldsUpdateTool 安装程式
可以从
http://steampowered.com/download/hldsupdatetool.exe 下载完毕后马上进行安装, 本文件是假设装在 d:\hlserver 目录
安装完毕后请执行一次 HldsUpdateTool.exe 以取得最新版本
2.安装好 HldsUpdateTool.exe 之后, 若没有 steam 帐号, 请开启你的 steam 马上申请
一个帐号, 笔者建议伺服器用的帐号应该另外申请, 不要与自己的游戏帐号共用
若已经有 steam 帐号, 那么我们开始安装 CS:Source 伺服器吧 :D
3.为了以后的更新方便, 建议将以下内容写到一个 .bat 档, 笔者是取名为 update.bat
而这个档案就放在 d:\hlserver 目录内, 可以放一个捷径至桌面
档案内容如下:
=======================
d:
cd \hlserver
.\hldsupdatetool -command update -game "Counter-Strike Source" -dir . -username <steam帐号> -password <steam密码>
=======================
我们来解说一下这行命令的各参数的意义, -command 后面可以搭配 upadte 和 list
list 参数可以列出所有可以架设的游戏名称, update 就是安装及更新游戏
-game 是指定要架设的游戏, 名称可以由 -command list 查出来
-dir 是要安装的该游戏的所在目录, 我们就将它装在 HldsupdateTool 同目录
-username 是指要登入的帐号名称, -password 则是密码
如此一来只要执行 update.bat 就可以帮你的伺服器作更新检查
当你第一次执行时, HldsUpdateTool 会从网路上将伺服器需要使用的一些档案
下载到你的硬碟, 因此会需要很长的一段等待时间, 所需空间大约是 800MB
4.经过好几个小时的等待, 突然发现 HldsUpdateTool 已经停止下载了!!
嘿嘿... 终于让我们等到了啊... 该来看看跑起来是怎样的情形了...
启动 CS:Source 的方法, 同样的我们在 d:\hlserver 目录下建立
一个 start.bat 档案, 档案内容如下:
=======================
d:
cd \hlserver
.\srcds -console -game cstrike +maxplayers 24 +map de_dust2 +ip <你的伺服器IP> -port 27015
=======================
上面 -console 参数是让 srcds 执行后只有 console 指令模式, 而不会跑出图形
设定界面这样的好处是不必每次启动伺服器时都重新设定一些伺服器参数, 另外也
比较节省记忆体 -game 参数是指定启动的游戏, 这里要注意一下后面的游戏名称是
cstrike, 而不是 "Counter-Strike Source", 因为在 d:\hlserver 目录里
CS:Source 的目录就叫作 cstrike, 所以这里的游戏名称就使用 cstrike
+maxplayers 是设定伺服器最大的玩家数, +map 是指定伺服器启动后的第一张地图
+ip 后面要指定你的伺服器的网路 IP, 在 CS:Source 这个 +IP 参数一定要设定
因为这牵扯到 rcon_address 和 rcon_password 的使用, -port 参数可用可不用
如果未指定, 那么预设 port 是 27015 , 但如果伺服器主机同时要开两个以上的
CS:Source Server, 那么就可以分别指定不同的 port
5.将伺服器启动后, 快开启你的 CS:Source , 将你的伺服器用新增的方式加到我的最爱
里, 然后再连连看, 如果没意外的话, 恭喜你已经成功的架起一个基本的 CS:Source
伺服器了, 但是怎么伺服器名称看起来很鸟... 这个别急, 我们后面再慢慢讲解伺服
器设定的部份
三. 伺服器相关设定
1.CS:Source 伺服器的设定档位置和 CS 1.x 有所不同, CS:Source 的设定档是放于
d:\hlserver\cstrike\cfg 目录内, 档名一样是 server.cfg
2.server.cfg 的设定内容, 以下是笔者自己的伺服器设定
(请勿乱试 rcon passowrd, 若被 ban 掉后果自负 XD)
===================================================
hostname "[TW][PigC1] -= 终极杀阵X =- " // 伺服器名称
rcon_password "ilovecss" // rcon 密码设定
sv_password "" // 进入伺服器所需的密码设定, 没设即不需要密码
sv_cheats 0 // 伺服器 cheat 功能 (0/1 - 关/开)
sv_maxrate 0 // 伺服器最大 rate
sv_minrate 0 // 伺服器最小 rate
sv_allowdownload 1 // 允许下载档案 (如: 新地图)
sv_allowupload 1 // 允许上传档案
sv_gravity 800 // 地心引力设定值, 预设 800
sv_alltalk 0 // mic 是否让所有人听到的设定 (0/1 - 关/开)
sv_region 4 // 设定伺服器的所在区域, 4 为亚洲
sv_voiceenable 1 // 是否允许玩家使用 mic (0/1 - 关/开)
sv_lan 0 // 伺服器是否为 LAN Server (0/1 - 关/开)
sv_downloadurl "
http://1.2.3.4/~totoro/...ke/" // 这是设定当伺服器放有新地图时
// 玩家可以不直接从伺服器下载地图
// 而可以介由网站的网路协定来下载
// 这样的好处是可以加快下载的速度
// 若设定为 "" 则是使用伺服器的方式下载
tv_enable 1 // 开启 Source TV (0/1 - 关/开)
decalfrequency 60 // logo 的显示时间 (单位: 秒)
mp_playerid 1 // 是否显示敌人及队友名字, 1:不显示敌人 2:皆不显示
mp_flashlight 1 // 是否允许手电筒 (0/1 - 关/开)
mp_allowspectators 0 // 是否允许观察者 (0/1 - 关/开)
mp_footsteps 1 // 是否允许脚步声 (0/1 - 关/开)
mp_falldamage 1 // 从空中掉落地面是否造成伤害 (0/1 - 关/开)
mp_autokick 1 // 是否将闲置及TKer自动踢出伺服器 (0/1 - 关/开)
mp_timelimit 30 // 地图的换图时间设定 (单位: 秒, 0 无限制)
mp_winlimit 15 // 某一边赢得 15 回合后换地图 (0 无限制)
mp_fraglimit 0 // 某玩家获得多少 frag 后换地图 (0 无限制)
mp_maxrounds 0 // 所有回合数达到多少后换地图 (0 无限制)
mp_freezetime 3 // 回合开始前的冻结时间 (单位: 秒, 0 为无冻结时间)
mp_roundtime 3 // 回合时间 (单位: 分钟)
mp_buytime 0.25 // 购买装备时间 (单位: 分钟) 0.25 X 60 = 15 秒
mp_c4timer 35 // C4 安装后所需的爆炸时间 (单位: 秒)
mp_forcecamera 1 // 玩家死后是否只能看到同队画面 (0/1 - 关/开)
mp_fadetoblack 0 // 玩家死后画面是否为黑幕 (0/1 - 关/开)
mp_friendlyfire 1 // 玩是否可以伤害到队友 (0/1 - 关/开)
mp_tkpunish 0 // 是否开启 TK 惩罚 (0/1 - 关/开)
mp_autoteambalance 1 // 是否启动自动队伍平衡功能 (0/1 - 关/开)
mp_limitteams 1 // 队伍人数最大可相差几人
mp_hostagepenalty 3 // 杀几个人质后将被踢出伺服器, 搭配 mp_autokick 使用
log 1 // 启动伺服器 log 功能
sv_logbans 1 // 将伺服器的 ban 人资讯记录到 log 档中
mp_logdetail 0 // 是否启用详细 log 功能 (0/1 - 关/开)
// 启用后会将玩家的每一个开枪资讯都记录下来
// log 档案会变超大
exec banned_user.cfg // 执行一次 ID ban list 设定档
exec banned_ip.cfg // 执行一次 IP ban list 设定档
===================================================
4.设定伺服器的欢迎画面
在进入每个伺服器总会有个画面显示该伺服器的一些规则或资讯的内容
这个设定档存放于 d:\hlserver\cstrike\motd.txt
你可将此档案改档名为 motd.htm , 然后再用 frontpage 或 dreamweaver 等网页
编辑软体去修改里面的内容, 改好后再将档名回复成 motd.txt
但是要注意的是有些 html 标签似乎会让画面显示不出来
内容尽量简单明了, 而且不要太长, motd.txt 档案在显示时有长度的限制
若内容太长也会造成无法显示
5.设定伺服器地图列表
该档案存放于 d:\hlserver\cstrike\mapcycle.txt
里面的地图内容就是伺服器所跑的地图顺序
一般而言你只要将你要新增的地图放进 d:\hlserver\cstrike\maps 之后
并且在 mapcycle.txt 里加入你的地图名称, 再重新启动伺服器
那么新加入的地图就会生效, 并且被伺服器读取到
笔者在这里教大家一个不必重新启动伺服器的方法
每当更新过 mapcycle.txt 档后, 在伺服器的 console 下执行
mapcyclefile ""
mapcyclefile "mapcycle.txt"
如此一来伺服器就会将 mapcycle.txt 重新载入一次
6.Source TV 的使用及设定
在 CS:Source 中的 HLTV 功能就叫作 Source TV
首先先说说该怎么启用它, 在 CS 1.x 中, HLTV 是必须另外执行一支程式来跑 HLTV
但在 CS:Source 中则不必这么麻烦了, 它是附属在伺服器里面的
启动方式是在伺服器启动之后, 将 tv_enable 设为 1, 然后再换一次地图就会生效
如果成功之后, 你会看到伺服器里有一个叫 "SrcTV" 的 "玩家" 一直躲在观察者
Source TV 一样可以录 Demo, 录出来的 Demo 是可以切换到所有玩家的视角的
Demo 档案会存放于伺服器端, 位于 d:\hlserver\cstrike 里面
Source TV 除了可以录 Demo 之外, 还提供让其他人连进 Scource TV 去观看伺服器
的战况, 连线时的架构看起来是这样的
观战者们 <------> Source TV SV <-----------------------> CS:Source SV
连线 启动后加入伺服器观察者
下面笔者就列出 Source TV 有那些指令可以使用
==============================
tv_autorecord // 于每次换地图之后就自动录 Demo
tv_delay // Source TV 在送画面给其他观看者的延迟时间 (单位: 秒, 预设 10 秒)
tv_maxclients // 允许最大观看者人数 (预设 128)
tv_maxrate // 最大的网路频宽传输, 0 为不限制
tv_name // Source TV 在伺服器中显示出来的名称
tv_password // 设定连进 Source TV 所需要的密码
tv_port // 设定 Source TV 所使用的 port, 预设是 27020
tv_record // 录制 Demo, 格式: tv_record <filename>
tv_relay // 连线到其他 Source TV Server, 并传送该 Server 的画面给观看者
tv_relaypassword // 连到其他 Source TV Server 所需要的密码
tv_retry // 连到其他 Source TV Server 的重连次数设定
tv_status // 显示目前 Source TV 的状态及人数
tv_stop // 停止 Source TV
tv_stoprecord // 停止 Demo 录制
==============================
其他未知其用途的指令笔者就先不介绍了
当 Source TV 启动后也设定好了, 那该如何连到 Source TV Server 观看呢?
Source TV 在 Steam 的伺服器列表基本上笔者没看到它们被刷出来过
所以连线的方式只有一个, 就是在 console 下打入像这样的指令
connect 211.78.160.103:27020
这样就能够连进 Source TV Server 了
四. 结语:
在龙之上卷简单的介绍了一个伺服器从无到有的架设及设定
只要跟随以上的步骤, 一个新的伺服器就可以诞生了
在龙之下卷, 笔者将介绍 CS:Source 伺服器的外挂安装及使用方式
笔者会以曾经参与国外某 Plugin 的测式心得和功能来作详细解说
如果有人愿意撰写 CS:Source 的 Plugin, 笔者也愿意跟他分享经验
但是前提必须具备有 C/C++ 程式语言的基础