作者konn (PigC CS:S Server 完工)
看板C-Strike
标题[心得] CS:Source 伺服器架设教学 (Win Dedicated Server) 龙之上卷
时间Sat Apr 30 16:57:00 2005
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/css/cstrike/"
// 这是设定当伺服器放有新地图时
// 玩家可以不直接从伺服器下载地图
// 而可以介由网站的网路协定来下载
// 这样的好处是可以加快下载的速度
// 若设定为 "" 则是使用伺服器的方式下载
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 设定档
===================================================
3.使用 rcon 密码登入伺服器及使用指令
rcon 在 CS:Source 的登入方法和 CS 1.x 也有不相同的地方
先叫出你的 CS:Source 的 console, 登入指令如下:
rcon_password "ilovecss"
rcon_address 211.78.160.103:27015
以上两行指令先後顺序没有差别, 但如果其中一个指令打错了就无法使用 rcon 权限 :)
这里的 rcon_address 所使用到的 ip:port 就是在启动伺服器时所给予的 +ip -port
参数, 所以在启动伺服器时 ip 和 port 一定要设定, 否则 rcon 将无法使用
另外 rcon 尝试太多次错误, 将会被伺服器 ban IP, 这点请特别注意
将两行指令打完後, 首先要确定一下是否有成功登入, 可以打以下指令
rcon status
如果你看到 console 画面有出现玩家的资讯, 那就是登入成功了
如果要踢掉一个玩家, 指令格式如下:
rcon kick #1232
有没有发现一件事, 在指令的前面都有个 rcon , 这就是使用 rcon 去执行伺服器端的
方法, kick 指令後面接的是玩家的代号, 这里指的代号是伺服器给予的流水编号
而不是玩家的 Steam ID, 这一点一定要搞清楚, 否则会踢不掉人
如果你要使用 Steam ID 去踢除一个玩家, 并且送他一个讯息, 可以使用下面指令
rcon kickid STEAM_0:1_12345678 "I hate you @O@"
这样子可以将 Steam ID 为 STEAM_0:1_12345678 的玩家踢出伺服器
在他离开後画面上会有个小对话框, 上面会显示: I hate you @O@
如果你要 ban 掉一个玩家 1 小时的时间, 指令格式如下:
rcon banid 3600 STEAM_0:1_12345678 kick
rcon writeid
这样该玩家就会被伺服器 ban 3600 秒, 也就是 1 小时, 若是改成 0 , 那就是永久
ban 掉, 指令最後面有个 kick, 就是当他被 ban 之後也顺便一起踢掉, 若没有加的
话则不会被踢, 通常 banid 指令要搭配 writeid 指令一起用, writeid 是将
ban list 的资讯, 写到 d:\hlserver\cstrike\cfg\banned_user.cfg 档案里面
如果你要 ban 掉一个 IP, 或是一个子网路的 IP, 指令如下:
rcon addip 0 111.222.333.0
rcon writeip
上面的 0 相同於 banid 的时间, 後面则是 IP 部份, 111.222.333.0 就是将
111.222.333.1 ~ 111.222.333.254 通通 ban 掉
在 addip 指令下完之後, 同样的要记得将 IP ban list 写入档案
该档案是 d:\hlserver\cstrike\cfg\banned_ip.cfg
既然学会 ban 人, 那还有一件更重要的事要学, 就是解 ban XD, 解 ID 的方法是
rcon removeid STEAM_0:1_12345678
rcon writeid
解 IP 的方法是
rcon removeip 111.222.333.000
rcon writeip
以上是简单的踢人, ban 人的指令
此外 rcon 指令也可以用来更改伺服器的那些设定值
比如说地图时间想改为 1 小时, 那麽可以下这样的指令
rcon mp_timelimit 60
如果要换地图的话, 指令是 changelevel <地图名称>
以上这些基本指令的讲解就先到这里, 若要更多更详细的文件可以问 google 大神
只要问它: cs + 指令
就可以找到一堆相关文件了
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++ 程式语言的基础
那麽咱们下次再见了 :->
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.76.46.83
1F:→ itski:该M起来 219.81.135.88 05/01