Steam 板


LINE

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







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP