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++ 程式語言的基礎