發新話題
打印

HLTV伺服器命令全集

[Close]

HLTV伺服器命令全集

HLTV伺服器命令全集
這篇文章是最新發布的HLDS 4.1.1.1/3.1.1.1中的HLTV的自訴文章翻譯而來,對簡單的HLTV架設和大規模HLTV NET的架設都有詳細地介紹。HLTV獨特的實時轉播方式注定它將會在電子競技的發展道路上的重要地位,這一點也在世界各國的CS比賽,以及國內的幾次大規模CS大賽,浩方平台的幾次轉播中得以體現。HLTV隨著HLDS 4.1.1.1/3.1.1.1的發布也變得更加成熟,困擾大家兩年多的閃光彈bug也已經修復,但是國內很多服務器管理員和比賽組織者都不是很了解 HLTV的用法或者只是了解最近本的用法,很多很有趣的弁鄖S有實現,基於此,將這篇很詳細的README文章介紹給大家。

文章中一些不常用的命令可能會有一些翻譯上的錯誤,歡迎大家指出,謝謝。

1、總覽

Half-Lift TV提供了理論上無限制觀察者觀看在線游戲的可能。他們可以在游戲服務器中跟隨任一名玩家的視角。觀察者對於游戲者來說是不可見的,也不能以任何方式干擾進行中的游戲。每個觀察者可以選擇任意玩家的任意視角。為了獲得更有趣的觀察體驗,觀察者可以打開自動切換模式,這樣鏡頭將自動切換到以合適的角度來觀看精彩的鏡頭。這樣觀察者們就能舒服的靠在椅背上不用作任何動作。觀察者們還可以用最基本的HL Chat模式來互相溝通。
大多數流行的Half-Life的MOD例如CS,Team Fortress Classic,DOD都支持HLTV,HLTV的提供者擁有對HLTV系統的完全控制權,可以改變觀察者人數,添加文字資訊,更換HLTV logo等等。播放的畫面可以自定義一個延遲時間,預設的是30秒,這樣可以確保正在比賽的隊伍不可能通過HLTV來得到一些有用的對手資訊。建立一個單獨的支持100人的HLTVServer是很簡單的事情,不需要對預設設置作任何改變。
架設一個龐大的HLTV網絡來支持上千人的觀看需要為服務器的配置等等準備多一些的時間和經驗。

2、觀看游戲

為了觀看一個HLTV,啟動Half-Life(或其他MOD包),進入多人模式,然后進入HLTV提供者提供給你的IP:port,或者直接在控制台輸入(假設服務器為192.168.0.1:27020)

connect 192.168.0.1:27020

這樣的命令,即可進入HLTV服務器觀看比賽。
預設的HLTV連接埠是27020,但是這是可以更改的,通常會包括在給出的IP地址中提供。
你可以用不同的模式來觀看游戲:跟隨視角,第一人稱視角,自由觀察,地圖總覽,地圖跟隨。最簡單的切換視角方法是按“跳躍”鍵(預設是空格鍵),另外一種方法是使用按“蹲下”鍵(預設是Ctrl)激活的觀察弁鄋瞴A在那兒你可以定義自己的觀察風格並且開啟自動切換模式。循環按下“使用”(預設是E)可以開關畫中畫模式。

下列HL控制台命令可以在用來自定義觀察模式:

spec_autodirector <0|1> - 開啟或者關閉自動切換模式
spec_drawcone <0|1> - 在地圖總覽模式顯示你的視角範圍
spec_drawnames <0|1> - 在玩家標志下顯示玩家的名字
spec_drawstatus <0|1> - 顯示游戲資訊(時間,地圖名稱等)
spec_pip <0|1> - 開關畫中畫弁?BR>spec_menu - 開啟觀察者弁鄋?BR>spec_help - 顯示幫助屏幕
spec_mode <1-6> [<0-4>] - 設置主顯示模式,第二個參數是設置畫中畫模式。並非所有的組合都有效。

主顯示模式:
1、鎖定跟隨
2、自由跟隨
3、自由觀察
4、第一人稱視角
5、地圖總覽
6、地圖鎖定跟隨畫中畫模式:
    0、關閉畫中畫
    1、自由跟隨
    2、第一人稱視角
    3、地圖總覽
    4、地圖跟隨

以上命令中 <>,()包括的為必填項,[]包括的為可選項,下同。




3、基本HLTV架設

HLTV 廣播系統的核心是HLTV服務器,也稱之為HLTV代理。HLTV在控制台視窗運行,類似於HL的專業服務器。為了轉播一台指定服務器上的比賽,HLTV 代理像一個普通玩家一樣連入這台服務器,然后觀察者們連入這台HLTV代理,這樣游戲資料流就通過HLTV代理轉發到所有的觀察者客戶端。下面這個圖示就是一個基本的HLTV配置:

HLGameServer --> HLTV 代理 -->觀察者

HLTV 代理可以支持的客戶端人數取決於服務器的硬體配置和網絡條件,理論上來說,一個單獨的HLTV可以支持最多255個觀察者,但是請注意,平均每個支持了 100個觀察者的HLTV代理需要2M的頻寬才能流暢收看,如果需要支持更多的觀察者,網絡負荷必須被分部到多HLTV代理上去。
第一個連接到游戲服務器上的HLTV服務器被稱為主服務器,在上面可以進行游戲資料流的延時和發包率等綜合廣播的設置,其他的HLTV代理連入到這台主服務器上作為接替。這樣的連接數量和方式是不受限制的,可以串聯也可以並連。重要的是他們不要處於同一個網絡中,這樣才能確保頻寬被均衡使用。

                   --> HLTV 轉播服務器 1 --> 觀察者
HL Game Server --> HLTV 主服務器  --> HLTV 轉播服務器 2 --> 觀察者
                    --> HLTV 轉播服務器 3 --> 觀察者

4、游戲比賽轉播

讓我們來看一下最普通的設置,一台HLTV代理在局域網環境中。這是最普通的情況,預設的HLTV設置不需要作任何改動。選擇一台專用電腦作為里的HLTV 代理並且安裝Half-Life專業服務器版軟體,它包含了所有的HLTV代理文件。這並不需要你的電腦上安裝有Half-Life這個游戲。
啟動HLTV應用程序(帶有小照相機的 HL的小圖標)就能看到HLTV的控制台視窗,顯示了一些初始化資訊后(如果初始化進行了很長時間,可能是HLTV不能解析出一些IP地址,那麼請在 HLTV啟動命令行增加 "-nodns"參數來跳過),控制台就可以接受你的命令了,下面我們用">"來代表命令行提示符,記住你只需要輸入">"后面的字符就可以了。首先給你的HLTV代理起一個獨特的名字:

>name "My HLTV Proxy"

我們假定你的HLTV Proxy的IP為192.168.0.2,你想觀察在192.168.0.3:27015上的游戲,那麼鍵入以下的命令使HLTV代理連入:

>connect 192.168.0.3:27015

過了一會兒HLTV完全連入服務器並且準備提供觀察者服務時,用"status"命令可以檢查HLTV代理的連接狀態:

>status

--- HLTV Status ---
Local IP 192.168.1.2:27020, FPS 72.8, Network In 0.8 Out 0.9
Local Slots 128, Spectators 0, Proxies 0
Source: Server "Half-Life" (192.168.1.3:27015)
Total Slots 128, Spectators 0, Proxies 1
Time 01:02, Game "valve", Map "maps/frenzy.bsp", Players 1

"status"命令可以顯示你的IP、每秒刷新的HLTV系統的進出流量、你的HLTV代理提供的觀察者數量,這台游戲服務器中所有HLTV廣播系統的觀察者數量。游戲源可以是游戲服務器,也可以使另一台HLTV代理,甚至一個Demo文件。


5、錄制HLTV Demos

HLTV demo文件和普通的Half-Life游戲錄影差不多,但是你可以選擇任意的視角和視點以及跟隨的玩家。回放一個HLTV demo的時候並不需要HLTV服務器,只要啟動Half-Life並且在控制台輸入" playdemo (demo name)"或者"viewdemo (demoname)"就可以了。錄制一個HLTV demo,需要將HLTV代理連入游戲server,並且在控制台輸入:

>record (name)

發出這一命令后,所有的游戲資料將被錄制下來,demo文件會放在當前的Mod目錄下,例如 \cstrike。所有的demo文件將被預設指定為如下格式的文件名:<名稱>-<時間>-<地圖>.dem,demo文件也記錄了一些發往觀察者的資料,這意味著,demo文件記錄了和觀察者同步的游戲資訊。

停止錄制的命令是"stoprecord"。

有的時候只需要錄制HLTV的demo而並不想進行廣播的話,可以增加這樣一些命令:

>maxclients 0 //不允備[察者客戶端
>delay 10 //最低的延遲設置
>rate 10000 //最高的資料速率
>updaterate 20 //基本上行輸率
>nomaster 1 //不在master服務器注冊

注://后是命令注釋,在平常使用中不需要輸入
hihi

TOP

6、大規模廣播

建立一個可以支持大規模觀察者(>1000人)的HLTV網絡是一個艱難且耗時的工作。下列指導將幫助你配置和運行以這樣的一個HLTV網絡。一條重要的規則是:“要質量,不是只要數量”。相對於使用所有的頻寬來說,建立少一點觀察者的選擇顯然更好,這樣所有的觀察者都不會為lags和超時所困擾。檢查你的頻寬容量並且計算出你的HLTV服務器能支持多少觀察者,平均每個觀察者需要2-3K的流量,CPU和記憶體在目前流行的PC系統中到是不太會成為性能瓶頸。

這個列表給出大致的Internet連接HLTV所需要頻寬:
- ISDN 64Kbps : 2個觀察者
- ADSL 512Kbps(上行速率) : 20個觀察者
- T1 1.5Mbps : 75個觀察者
- LAN 10Mbps : 500個觀察者
- T3 75Mbps : 4000個觀察者

使用"maxclients"命令可以控制HLTV服務器接受的客戶端連入數量,確定"maxrate"參數被設為一個合理的數值,例如:3500 kB/sec。更低的數值也是可能的,但是會造成觀察者們產生"choke"。命令"maxrate"並不影響HLTV代理服務器之間的頻寬限制,僅對觀察者客戶端有效。為了降低頻寬需求,你可以關閉internet HLTV chat("chatmode 0"或者將游戲的上行速率從預設的20降低到10("updaterate 10"。低一些的上行速率可以節省25%的頻寬並且這是可接受的,因為在這時,觀察這並不需要和真實玩家相同的上行速率。

一個針對大規模廣播非常普遍的設置是使用兩台分離的HLTV服務器來創建一個私有段和一個公共段。我們假定游戲服務器在一個封閉的局域網中外網無法到達。這確保了最大的安全無法被外界攻擊(例如D.O.S攻擊)。HLTV主服務器在局域網中啟動,並且它的外網地址保密。第二台擁有真實IP地址的HLTV服務器在局域網外啟動並且連入HLTV主服務器。這第二台HLTV服務器是公眾HLTV發布機,IP和連接埠公開給觀眾們,並且所有的轉播服務器都連入這台 HLTV發布機。這樣HLTV主服務器就在安全的局域網環境下工作,並且可以被用來錄制demo或者現場放映機。觀察者們連入HLTV發布機或者其他轉播服務器。這樣所有的網絡負載就被均衡到了所有的HLTV代理上。
如圖:

  +---- Private LAN -----+ +------ Public Internet --------+
                          -> HLTV Proxy 1
 HL Server -> HLTV主服務器 -> HLTV發布服務器 -> HLTV Proxy 2
                          -> HLTV Proxy 3

主服務器和發布服務器的配置文件不同:

master.cfg
nomaster 1 //不在WON主服務器上注冊
proxypassword MyPWD //保護密碼
publicgame 0 //不顯示游戲服務器IP
dispatchmode 0 //不分派觀察者

dispatcher.cfg
forcemaster 1 //注冊到WON主服務器上
publicgame 0 //不顯示游戲服務器IP
dispatchmode 2 //分派所有客戶端到其他服務器
hostname MyGame //公開的HLTV服務器名稱

如果你在運行3個或者更多的HLTV服務器,一個很好的方案是通過服務器管理工具來使用RCON命令管理他們。在HLTV服務器上開啟RCON的方法是設置"adminpassword"選項。同時"proxypassword"可以確保只有經過你授權的HLTV提供者才可以連入你的HLTV網絡。否則任何人都可以使用緩慢的HLTV代理連入你的網絡打亂你的整個網絡的負載均衡。




7、HLTV設置

一個簡單的的控制台命令語法:命令將被描述為以下形式:

command (parameter) [(parameter)] - description

一條命令或雪|有一個或者多個參數。[]中的參數為可選項,一般來說參數包括:

 (string) : 文字,如果文字中包含空格則必須被引號包括例如 "My Name"
 (n) : 任意整數,例如:42
 (f) : 任意浮點數,例如:4.2
 (IPort) : IP地址,例如:192.168.0.1:27020
 (a|b|c) : 可選擇的選項,或者a或者b或者c

注意;所有的<,>,(,),|,[,]這樣的字符是不包含在最終輸入在控制台上的命令中的。大多數命令符合布爾代數開關,即1表示打開,0表示關閉。

connect (IPort) - 連接HLTV代理到游戲服務器(預設port為27015)
disconnect - 從服務連接埠斷開,但是不停止廣播,所有的觀察者仍然保持連接狀態
stop - 斷開連接,同時停止廣播
quit - 退出HLTV程序
retry - 重試最后一次服務器連接
autoretry <0|1> - 如果開啟,HLTV因為任何理由的斷開后將自動重新連接服務器
name (text) - 設置HLTV代理計分版上的名稱
hostname (text) - 設置HLTV服務器在服務器列表中的名稱
serverpassword (text) - 設置游戲服務器連接密碼,連入需要密碼的服務器時使用
adminpassword (text) - 設置RCON管理員和評論員密碼
proxypassword (text) - 設置其他HLTV連入的密碼
spectatorpassword (text) -設置觀察者密碼,對其他HLTV服務器也有效
clients - 列出已經連接的觀察者
proxies - 列出已經連接的其他HLTV服務器
players - 列出游戲服務器中的玩家
kick (ID) - 踢出指定名字的觀察者
bann (IP) - 禁止IP連接
say (text) - 向游戲服務器送出文本資訊
msg (text) [(duration) (pos x) (pos y) (color hex rgba)] - 向所有的觀察者送出大屏幕資訊
localmsg (text) [(duration) (pos x) (pos y) (color hex rgba)] -和msg相同,但是只對本服務器上觀察者送出
servercmd (string) - 轉發命令給游戲服務器
clientcmd (group) (string) - 送出控制台命令給所有指定群組的客戶端:1=觀察者 2=其他HLTV服務器 3=所有
loopcmd (id) (n) (string) - 這一命令將每(n)秒執行(string)中的命令。(id)取1到64中的數字來認定這條loopcmd,"loopcmd (id) none"

將取消正在循環的命令。loopcmd不帶任何參數將列出正在循環的命令。
signoncommands(string) - 本地觀察者連接后將被執行的控制台命令,多條命令可以用分號來分隔。
maxclients (n) - 設置本服務器的觀察者數量上限(預設為128)
delay (n) - 從主HLTV上接受的游戲資料流延遲時間,預設是30秒來消除作弊的可能,最低為10秒。
rate (n) - 游戲服務器送出到HLTV的頻寬速率
updaterate (n) - 從游戲服務器送出到HLTV的游戲上行速率
maxrate (n) - 觀察者可用的最大頻寬速率
maxqueries (n) - 服務器列表每秒得到的服務器資訊數量
dispatchmode (0|1|2) - 模式1(Auto)將會把連接負載自動均衡到其他HLTV服務器,模式2(Always)將會把所有連接轉發到其他HLTV服務器,這樣本台HLTV服務器就成了轉發機,模式0(OFF)將不會轉發任何連接。
publicgame <0|1> - 如果public為1,游戲服務器的IP將能被觀察者看到,並且可以使用"joingame"命令進入游戲服務器。
offlinetext (string) - 如果HLTV沒有繼續轉播,觀察者被拒絕的時候將看到的文字資訊。
chatmode <0|1|2> - 如果chatmode為0,觀察者不能聊天,如果是1,連入同一台服務器的觀察者可以看到彼此之間的資訊,如果是2,整個HLTV NET中所有的觀察者將能互相聊天。
bannerfile (file) - 指定一個TGA文件作為觀察者界面的LOGO。
ping (host:port) - ping一個HL服務器
nomaster <0|1> - 是否在主WON服務器注冊
forcemaster <0|1> - 是否強迫在主WON服務器注冊
heartbeat - 手動送出狀態資訊給WON服務器
rcon (string) - 送出遠程命令給其他服務器
rconaddress (IPORT) - 設定遠程控制目標服務器
rconpassword (string) - 驗證遠程控制目標服務器的密碼
cheeringthreshold (f) - number of cheering players must be above this threshold to play the cheering sound (by default 0.25).
blockvoice <0|1> - 是否過濾所有的語音資料。
cmdlist - 列出所有命令
logfile <0|1> - 開啟或關閉控制台log文件"logfile(date).log"
status - 顯示服務器資訊
modules - 顯示所有加載的HLTV模塊和版本
exec (filename) - 執行一個.cfg文件
echo (string) - 向HLTV控制台先是一條文本
developer <0|1> - 開發者模式將顯示更多的除錯資訊
record (filename) - 錄制demo
stoprecord - 停止錄制demo
playdemo (filename) - 廣播一個demo文件


控制台命令通過按"TAB"可以自動完成,所有的命令都可以放在hltv.cfg文件中,每次啟動時自動執行。

一些參數只能在命令行啟動
-port (n) - 指定HLTV連接埠,預設為27020
-ip (IP) - 在有多IP的主電腦上強制使用某個IP
-comm (filename) - 設置一個master server資訊文件取代woncomm.lst
-nodns - 禁用DNS解析
-maxfps (n) - 設置最大系統刷新率,預設為100
-cachesize (n) - 設置幀緩存大小,預設為32
-highpriority - 以高優先權啟動HLTV程序(僅在win32系統可用)
-steam - 服務器支持特殊流模式
-dev - 開發者模式
hihi

TOP

發新話題