CS1.6服務器完全架設指南(Win32篇)

Home Home
引用 | 編輯 amore12
2008-11-26 00:57
樓主
推文 x0
此文網路資源轉載!!


前言:這篇文章其實我原本不打算寫的,因為WIN32下服務器建立的教程實在太多了, 但應櫻寧MM的強烈要求,我還是寫了。如果你需要轉載,請註明出處,尊重他人勞動成果。謝謝!

Ok, Lets get started.

你將需要:
一套正在運行的Win32系統(強烈推薦Win2003,好處是系統穩定和易於遠程維護)
一條互聯網接入線路
一些基礎的Windows服務器優化知識
一些HLDS超級管理方面的內容

硬件要求:
Intel或者更加適宜的AMD處理器,主頻至少在1G以上(支持12人),(推薦20人的配置採用2G以上的主頻以取得流暢效果)
256M的內存(推薦512M內存)
基於2M速率的Cable/DSL接入(這樣大概支持10人),(推薦光纖接入,國內南方首選電信,北方首選網通,雙線會更好)
至少500M的磁盤空間(日誌及擴展)
註:如果你有專業服務器加光纖接入,那將是最理想的配置

如果你達不到要求,繼續讀下去已經沒有意義..........

步驟一、去steam網站下載hldsupdatetool工具(http://storefront.steampowered.com/download/hldsupdatetool.exe),以便從Steam服務器下載服務器文件(這樣得出的服務器文件是最純淨和穩定的,我的純淨版服務器就是這樣製作出來的),如果你不想學習這部分內容,你可去下載我提供的「新迪酷CS1.6純淨服務器」版本,詳情請見:http://219.153.14.29:81/usr/bbs/ ... sid=ZN0q6g#pid7255)。

  創建.txt文件,將以下寫內容進此txt文件,例子:
START/HIGH HldsUpdateTool.exe -command update -game cstrike -dir .     將此txt文件重新命名為HldsUpdate.bat,並和HldsUpdateTool.exe放在一起,運行HldsUpdate.bat。註:                                             1、以上命令行僅適用於最版hldsupdatetoo.exe;
2、出現Connection Reset, WinSock Error 10054 "Connection reset by peer"時,需要找一個能正常登錄Steam的ClientRegistry.blob文件,把它複製到HLServer目錄下,再次重試。提供一個每日更新ClientRegistry.blob文件的下載地址:http://bbs.steamcn.com/viewthread.php?tid=3133&fpage=1。  


步驟二、現在你已經擁有HLDS文件,,我們可以創建啟動腳本來運行你的CS1.6服務器。例如:

START/HIGH hlds.exe -game cstrike +map de_dust2 +maxplayers 16 +servercfgfile 27016.cfg -port 27016 -insecure +sv_lan 0 □console +sv_region 4
將此內容保存成一個批處理文件,比如27016.bat。
參數解釋:
-game cstrike       指定hlds建立的是cstrike的服務器
+map de_dust2 指定服務器開機運行時的第一張地圖為de_dust2
+maxplayers 22 指定服務器最大人數為16人
+servercfgfile 27016.cfg 指定使用27016.cfg作為服務器的配置文件,此文件必須放在cstrike目錄下。如果不指定,默認為cstrike目錄下的server.cfg文件。另外,在cs的lan game中建立的那種初級服務器,使用的是listenserver.cfg
-port 27016       指定服務器的端口為27015。如果不指定,默認為2715
-insecure       關閉vac反作弊功能。vac反作弊打開的話需要先到vac服務器進行won認證。建議關閉VAC認證,使用CD反作弊器,下載地址:http://fi1.eu.unitedadmins.com/index.php?p=content&content=cd

+sv_lan 0           指定服務器運行方式為因特模式。1為局域網模式,含義是無法在因特網列表刷新出來,但可在服務器列表中添加,並不是代表無法在因特網上找到服務器。
-console     以控制台模式啟動服務器
+sv_region 4   指定服務器區域為亞洲。利於中國玩家第一時間找到你的服務器
步驟三、配置server.cfg文件。如果在啟動參數中增加了+servercfgfile x.cfg,那麼你就要在cstrike目錄下新建立一個x.cfg文件,需要注意的是如果你想要服務器名字的支持中文顯示,你必須將其保存成UTF-8格式,負責顯示的是亂碼。在這裡我引用BoeZombie老兄翻譯的服務器配置參數說明(另外我在附件中提供了CPL、WCG等組織的比賽服務器配置文件作為參考),內容如下:
  經常有朋友向我咨詢如何設置server.cfg,或者要我的server.cfg,而我的server.cfg沒有中文註釋,這次我參照國際比賽服務器server.cfg和很多資料,總結並翻譯了一個所謂的標準的比賽服務器server.cfg。

如果您的服務器名稱用中文,那麼請將server.cfg保存為UTF-8編碼。

這個server.cfg並不適合所有網絡狀況,請您根據自己的實際網絡狀況修改、增刪。

如果您覺得哪裡設置不妥或有疑問,本人期待您的批評指正、意見建議!
**************************************************************
//CS1.6 比賽服務器腳本 by Boe

rcon_password "rconpassword"
// OP 密碼
// "" 表示沒有

hostname "CS1.6比賽專用服務器 #A01"
// 服務器名稱

sv_region 4
// 服務器所在區域註冊參數
// 255=全球
// 0=美國東部
// 1=美國西部
// 2=南美洲
// 3=歐洲
// 4=亞洲
// 5=澳洲
// 6=中東
// 7=非洲

sv_rcon_minfailures 9999
// 允許輸入OP密碼 錯誤次數下限
// 達到下限則封禁對方的IP

sv_rcon_banpenalty 5
// 封禁的時限 單位 分鐘
// 0=永久

sv_maxupdaterate 30
// 服務器每秒更新最大頻率
// 根據實際網絡狀況調節
// sv_maxrate / 300 = 要設的值
// 默認=30
// 局域=101

sv_minupdaterate 20
// 服務器每秒更新最小頻率

sv_unlag 1
// 玩家延時補償
// 0=關閉
// 1=開啟 (默認)

sv_maxunlag 0.5
// 延時補償最大值默認 0.5
// 0.5=500毫秒 (默認)

sv_voiceenable 1
// 服務器是否允許麥克風語音通訊
// 0=禁止
// 1=允許 (默認)

sv_unlagsamples 1
// 延時補償數據包平均採樣數量
// 默認=1

sv_unlagpush 0
// 服務器推進延時補償
// 0=關閉 (默認)
// 1=開啟

mp_autokick 0
// 自動踢除不動的玩家
// 0=關閉
// 1=開啟 (比賽默認)

mp_autocrosshair 0
// 自動瞄準
// 0=關閉 (默認)
// 1=開啟

mp_autoteambalance 0
// 自動平衡雙方人數
// 0=關閉 (比賽默認)
// 1=開啟

mp_buytime 0.25
// 每回合購買武器裝備時間單位分鐘
// 比賽默認=0.25

mp_consistency 1
// 防止某些模型被更改
// 0=關閉
// 1=開啟 (默認)

mp_c4timer 35
// C4爆炸倒計時單位秒
// 比賽默認=35

mp_decals 300
// 牆壁上的血花彈孔貼圖細節數據傳送(200-300)

mp_falldamage 1
// 高處落下傷害
// 0=關閉
// 1=開啟 (默認)

mp_fadetoblack 0
// 死後黑屏
// 0=關閉 (默認)
// 1=開啟

mp_flashlight 1
// 手電筒
// 0=禁止
// 1=允許 (默認)

mp_forcechasecam 2
// 死後跟隨
// 0=所有玩家
// 1=僅隊友
// 2=僅隊友,主視角 (比賽默認)

mp_forcecamera 2
// 死後視角選擇
// 0=全部視角
// 1=僅隊友,全部視角
// 2=僅隊友,主視角 (比賽默認)

mp_footsteps 1
// 腳步聲
// 0=關閉
// 1=開啟 (默認)

mp_fraglimit 0
//殺人數上限(1~n),超過上限就換地圖
// 0=關閉 (默認)

mp_freezetime 7
// 每回合開始凍結時間單位秒

mp_friendlyfire 1
// 友軍傷害
// 0=關閉
// 1=開啟 (默認)

mp_friendly_grenade_damage 1
// 友軍手雷傷害
// 0=關閉
// 1=開啟

mp_hostagepenalty 0
// 懲罰人質殺手
// 0=不懲罰 (默認)
// 1~N=人質被殺數量,超過則踢出該玩家

mp_limitteams 10
// 兩隊人數差異上限
// 超過此上限,新玩家只能當觀察員
// 比賽默認=10

sv_logbans 1
// 服務器日誌裡記錄Ban掉玩家的內容
// 0=不記錄
// 1=記錄

mp_logecho 1
// 將服務器日誌反饋到控制台
// 0=關閉
// 1=開啟

mp_logdetail 3
// 服務器日誌裡記錄攻擊信息
// 0=不記錄任何信息
// 1=記錄敵人攻擊
// 2=記錄隊友攻擊
// 3=記錄所有攻擊

mp_logfile 1
// 服務器記錄日誌為文件
// 0=不記錄
// 1=記錄

mp_logmessages 1
// 服務器日誌裡記錄談話內容
// 0=不記錄
// 1=記錄

mp_maxrounds 0
// 回合上限,達到此上限,自動重新載入新地圖
// 0=無回合上限 (默認)

mp_playerid 0
// 當準星指向敵人或隊友時,顯示他們的名字
// 0=顯示所有人(比賽默認)
// 1=僅顯示隊友
// 2=不顯示

mp_roundtime 1.75
// 每回合時限單位分鐘

mp_timelimit 0
// 地圖最大時限,達此時限,自動重新載入新地圖
// 0=無時限

mp_tkpunish 0
// 懲罰隊友殺手
// 0=關閉 (默認)
// 1=開啟

mp_startmoney 800
// 第一回合開始金錢(800~16000)
// 加時賽=10000

mp_winlimit 0
// 一方最大勝利回合數,達到此數量,自動重新載入新地圖
// 0=無限制 (默認)

sv_aim 0
// 自動瞄準
// 0=關閉 (默認)
// 1=開啟

sv_airaccelerate 10
// 玩家在空中移動的速度
// 默認=10

sv_airmove 1
// 在空中移動&轉向
// 0=禁止
// 1=允許(默認)

sv_allowdownload 1
// 客戶端下載服務器資源
// 0=禁止
// 1=允許 (默認)

sv_allowupload 1
// 客戶端上傳自己的噴圖
// 0=禁止
// 1=允許 (默認)

sv_alltalk 0
// 警匪通話
// 0=禁止 (默認)
// 1=允許

sv_proxies 1
// HLTV代理
// 0=禁止
// 1=允許 (默認)

sv_cheats 0
// 作弊模式
// 0=關閉 (默認)
// 1=開啟

sv_clienttrace 1.0
// 客戶端模型的範圍框的尺寸
// 默認 1.0

sv_clipmode 0
// 鎖定客戶端快速模式
// 0=關閉(默認)
// 1=開啟

sv_contact cschina2008@163.com
// 服務器構建者的聯繫郵箱

sv_friction 4
// 地面摩擦力默認 4
// 數值越低,摩擦越小

sv_gravity 800
// 重力默認 800

sv_maxrate 25000
// 服務器最大傳輸速率 <0-25000>
// (服務器上傳帶寬 x 125) /服務器設定的最大人數 = 要設的值
// 0=無限制
// 局域=25000

sv_maxspeed 320
// 客戶端最大移動速度

sv_minrate 0
// 服務器最小傳輸速率 <0-25000>
// 0=無限制

sv_restartround 0
// 重新開始第一回合在n秒後


sv_restart 0
// 重新開始遊戲在n秒後
// 作用等同於sv_restartround

sv_send_logos 1
// 客戶端相互之間傳送噴圖
// 0=禁止
// 1=允許(同時確保sv_allowdownloads鍵值為1)

sv_sendvelocity 0
// 服務器混合物理運算,適用於較好配置的服務器
// 0=關閉
// 1=開啟

sv_send_resources 1
// 自動向客戶端傳送地圖關聯的 & .res文件裡包括的資源文件
// 0=關閉
// 1=開啟(同時確保sv_allowdownload為1)

sv_stepsize 18
// 玩家的步伐距離
// 默認 18

sv_stopspeed 75
// 玩家停止移動時的速度默認 75

sv_timeout 65
// 客戶端連接服務器超時的時限,達到時限則斷開連接

sv_voicecodec voice_speex
// 語音通話解碼
// voice_miles是HL引擎長期以來用的語音解碼(默認),佔用帶寬較大,為32kbps
// voice_speex是Valve新加入的解碼,優於voice_miles,佔用帶寬較少,為2.4kbps至15.2kbps

sv_voicequality 5
// 客戶端語音通話質量(確保sv_voicecodec voice_speex)
// 1=非常差...........佔用帶寬 2.4 kbps
// 2=差...............佔用帶寬 6.0 kbps
// 3=中等.............佔用帶寬 8.0 kbps
// 4=好...............佔用帶寬 11.2 kbps
// 5=非常清晰.........佔用帶寬 15.2 kbps

allow_spectators 1
// 觀察員模式
// 0=禁止
// 1=允許

decalfrequency 60
// 玩家噴圖的時間間隔單位秒

edgefriction 2
// 玩家與玩家、牆壁、物體之間的摩擦
// 默認 2

host_framerate 0
// 與Demo錄製有關
// 0<n<1 為慢錄
// n=0 為正常(默認)
// n>1 為快錄

log on
// 開始記錄日至

pausable 0
// 客戶端暫停遊戲
// 0=禁止
// 1=允許

mapcyclefile mapcycle.txt
// 地圖循環列表所在的.txt文件
// *.txt = cstrike\*.txt文件

花絮一:

在這次整理和翻譯過程中,有幾個參數的含義比較麻煩,因為要讓大家明白這些參數的意義,我測試了多次,才弄清楚:

例如:mp_forcechasecam 、mp_forcecamera這兩個參數,比賽的時候它們的鍵值均為2 。

而網上大多都是對mp_forcechasecam 的解釋:
死掉的人:0自由模式、1只能跟著自己隊友走動、2屍體視線留在原地。

後來我發現,這個解釋也是翻譯的國外的,但是CS1.5,甚至更早的版本了,所以這個解釋一直沿用到了CS1.6。

但經過我測試,當mp_forcechasecam鍵值為2時,並不是「屍體視線留在原地」,而是主視角+跟隨隊友。

那麼既然mp_forcechasecam鍵值為2時是主視角+跟隨隊友,為什麼比賽時還要將mp_forcecamera鍵值設為2呢?

經過我的多次測試得出了大家看到的解釋:

mp_forcechasecam 2
// 死後跟隨
// 0=所有玩家
// 1=僅隊友
// 2=僅隊友,主視角

mp_forcecamera 2
// 死後視角選擇
// 0=全部視角
// 1=僅隊友,全部視角
// 2=僅隊友,主視角

下面我將測試過程給大家寫出來,為了簡化和便於理解,我下面的描述將mp_forcechasecam 用「A」代替,mp_forcecamera用「B」代替:

當A=0,B=0時,效果=全部視角+所有活人;

當A=0,B=1時,效果=全部視角+本隊活人;

當A=0,B=2時,效果=第一視角+本隊活人;

當A=1,B=0時,效果=全部視角+本隊活人;

當A=1,B=1時,效果=全部視角+本隊活人;

當A=1,B=2時,效果=第一視角+本隊活人;

當A=2,B=0時,效果=第一視角+本隊活人;

當A=2,B=1時,效果=第一視角+本隊活人;

當A=2,B=2時,效果=第一視角+本隊活人;

現在很容易看出,其實只要A或B其中一個鍵值為2,那麼就是[第一視角+本隊活人],比賽服務器則是為了確保萬無一失,而將兩個參數的鍵值都設為了2。

****************************************************************
花絮二:

還有值得一說的的參數,就是:

sv_voicecodec voice_speex 語音通話解碼選擇,voice_miles是HL引擎長期以來用的語音解碼(默認),佔用帶寬較大,為32kbps,而voice_speex是Valve新加入的解碼,優於voice_miles,佔用帶寬較少,為2.4kbps至15.2kbps 。

大家仔細看看自己的CS(CZ)客戶端、服務器端的主目錄,就會發現voice_miles.dll和voice_speex.dll文件,說到speex解碼,我想用過TeamSpeak2的朋友可能都記得,TS2採用多種語音解碼,其中就包括speex解碼,而且在TS2里,我認為通話效果最好的就是speex解碼!而且帶寬有多種選擇!

而CS默認是用voice_miles,根據國外資料表明,該解碼佔用帶寬較大,不被推薦。所以這次的server.cfg整理過程中,我向大家推薦speex解碼。

sv_voicecodec voice_speex
// 語音通話解碼
// voice_miles是HL引擎長期以來用的語音解碼(默認),佔用帶寬較大,為32kbps
// voice_speex是Valve新加入的解碼,優於voice_miles,佔用帶寬較少,為2.4kbps至15.2kbps

sv_voicequality 5
// 客戶端語音通話質量(確保sv_voicecodec voice_speex)
// 1=非常差...........佔用帶寬 2.4 kbps
// 2=差...............佔用帶寬 6.0 kbps
// 3=中等.............佔用帶寬 8.0 kbps
// 4=好...............佔用帶寬 11.2 kbps
// 5=非常清晰.........佔用帶寬 15.2 kbps

步驟四、配置motd.txt文件。此文件的作用是進入服務器時,所顯示的歡迎窗口的內容,這是一個HTML格式的文件,如果你不懂HTML語法,建議你不要在它上面花費精力,你可用我附件中文件自行修改。當然如果你想要你服務器凸顯個性,你就要好好去學習一下HTML語法了
步驟五、配置mapcycle.txt文件。mapcycle.txt是地圖文件循環的順序文件,裡面寫的都是地圖文件名,不帶後綴,如cs_747.bsp,只取cs_747。地圖在Hlserver\cstrike\maps目錄下,將你想循環的地圖挑出來,然後將文件名按上面所說的規則輸入mapcycle.txt中,每個地圖之間用硬回車隔開。加入的新地圖不僅要把.bsp文件拷到Hlserver\cstrike\maps目錄下,也要在mapcycle.txt裡面加入新地圖的名稱,切記!

步驟六、破解你的HLDS服務器為免steam認證。附件有下載,下載破解文件並覆蓋到HLDS的根目錄即可。

步驟七、加載CD插件。,如果不明白的可發帖咨詢我。其它插件(比如服務器加速插件、AMXX、AMX等).

步驟八、啟動服務器。執行你建立的服務器啟動腳本27016.bat文件即可。

至此,一個簡單的、基本的CS服務器建立完成。建議再去學習我的另外一篇文章《CS1.6服務器網絡參數配置說明(如何當好一個合格的OP)》。

獻花 x0
引用 | 編輯 kenar999
2009-06-02 18:44
1樓
  
有附件給我下載破解HLDS服務器為免steam認證嗎- -?

獻花 x0