寫了第一篇配置指南以後,不少人向我諮詢有關戰網搭建的問題。因而以爲頗有必要把若干常見的問題,和經常使用的進階配置彙總一下,以方便更多人。php
1.遊戲版本和PVPGN與D2GS版本的問題。html
PVPGN建議選擇1.8.2及以上的版本,最新的標準版爲1.8.5能夠在http://pvpgn.berlios.de/index.php?page=files查找下載,若是玩的人較多,建議使用MySql版,小範圍測試和體驗的,任意版本均可以。遊戲版本和D2GS的版本是對應的,也就是說若是你要搭建1.10版的暗黑的戰網,那麼你就要用1.10的D2GS,1.10版本的D2GS請到http://d2dev.dlg.cn/查找下載。支持1.11b遊戲版本的,由Marsgod大人繼onlyer以後經過反彙編的形式改進,最新版本build(43)能夠在http://www.pvpgn.pl/d2gs/查找下載,1.12a的用戶較少,這裏就略過不提。mysql
錯誤的PVPGN版本與D2GS版本的搭配,會形成PVPGN啓動失敗,以及諸多的遊戲問題;錯誤遊戲版本可能會形成PVPGN、D2CS或者D2DBS啓動失敗,也可能形成進入遊戲後登陸戰網,沒法建立人物,或者建立了人物沒法進入遊戲等問題。 這裏要提醒你們注意的是:你的服務器端,尤爲是D2GS,必需放在一個可用的暗黑2遊戲文件夾當中。若是你的暗黑2無法玩單機的話,那麼建立戰網後,必然致使排隊1的問題,也就是D2GS.EXE沒法正常啓動。ios
2.配置文件的相關問題。程序員
簡單的可用配置,須要修改如下文件:d2gs.reg(應該位於遊戲目錄下d2gs.reg修改完成後須要雙擊添加進註冊表)、d2cs.conf、d2dbs.conf、realm.conf(應該位於pvpgn/conf目錄下),這三個文件每次修改後都須要從新啓動服務端才能夠生效。sql
客戶端能夠登陸戰網,能夠註冊新帳號並登陸,可是提示無國度,或沒法法鏈接國度服務器的及相似問題,多數是由配置文件修改不徹底,配置錯誤引發的;還有多是由於IP地址的錯誤引發的。數據庫
內網搭建服務器,而且要求內網和外網均可以訪問的,須要修改address_translation.conf文件(位於pvpgn/conf目錄下),找到全部相似於#192.168.1.100:4000 internetip:4000 192.168.1.0/24 ANY的行,去掉行首的#號,192.168.1.100改爲服務器的內網IP,internetip改爲外網IP,192.168.1.0/24這裏是重點,若是你的內網只有192.168.1.x這個網段,這裏就應該是192.168.1.0/24,若是是192.168.0.x這個網段,就應該改爲192.168.0.0/24,若是有多個網段,經過路由互聯的,網段之間要用小寫逗號隔開。如192.168.0.0/24, 192.168.1.0/24。另外要注意的就是,服務器端用到的端口,請先在路由器或者防火牆中映射好,4000、6112~6114……。服務器
建立遊戲老是排隊1,或者只能建立1個遊戲,再建立就排隊;這可能是由於d2gs.reg修改不當形成的,記事本打開d2gs.reg,找到"MaxGames"=dword:00000001,修改成"MaxGames"=dword:00000064(這裏是16進制,64=100),記得修改完成後雙擊註冊,並重啓服務端。框架
其它緣由引用攻略中的一段文字jsp
遊戲排第一位的問題 這是個最讓人頭痛的問題,但大部分仍是能解決的!出現排位1的問題要從如下幾個方面入手
1;沒有gs或者gs沒有啓動
2;gs配置不對,修改註冊表文件d2gs.ren中的ip爲你的d2cs的ip地址
3;d2dbs.conf和d2cs.conf中沒有添加gameservlist
4;gs版本和d2cs不配套
5;gs console中設定的maxuser和maxgame有誤
6;使用了安裝版的暗黑遊戲(包括正版),我遇到過這樣的問題。
7;導入的GS端的註冊表文件{d2gs.reg}中 "D2CSSecrect"="NENU" 這個選項非空或者和國度名不符
8;在Win64位操做系統中搭建服務器後出現排隊1問題的,請訪問此連接:Win64位操做系統沒法運行暗黑2戰網D2GS的解決辦法
找不到國度,大多數是d2cs或d2dbs服務的故障,而可能致使故障的緣由有不少種,這就須要檢查d2cs.log、d2dbs.log文件(位於pvpgn/conf/var目錄下),打開日誌文件,重點查找「erro」、「fail」字眼的行,大體分析出出錯的緣由。其它PVPGN相關的服務也常常須要用到日誌文件排錯,能夠先刪除現有的日誌文件,而後重歷錯誤,再檢查新的日誌文件。
另外,下載的D2GS壓縮包中,一般都帶一個「暗黑服務器攻略V0.3.chm」幫助文件,這是個新手搭建戰網的好參考,建議多看看。 怎麼使用MySQL做爲用戶數據庫呢,在pvpgn/conf目錄中找到bnetd.conf,刪除原有的生效的storage_path(特色是前面沒有#號),找到# storage_path = sql:mode=mysql;host=127.0.0.1;name=PVPGN;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn_一句,去年前面的#號,修改host爲MySQL服務器的IP,name爲數據庫名(要先在mysql中建立一個同名的空數據庫),user用戶名,pass密碼,其它不用動。
3.戰網遊戲問題
再說排隊1,最近遇到把服務端放在一個1.11b的覆蓋補丁裏面,而不是一個完整可用的1.11b遊戲目錄裏面,結果致使老是排隊1的問題,主要體現就是,進程管理器中的d2gs.exe老是上下亂跳,那是由於d2gs服務老是啓動它。
能夠進入戰網,也能夠建立人物,而且建立遊戲後也不排隊,但老是建立遊戲失敗:這一般是遊戲版本錯誤或者遊戲文件不徹底形成的。檢查你的d2gs.log文件,尋找Failed字樣,來判斷真正產生錯誤的緣由。最近遇到由於d2dbs沒法存取用戶人物存檔文件形成老是建立遊戲失敗的問題。這樣的須要先檢查有沒有啓動d2dbs,或者啓動以後有沒有出錯。(最近在一個server2003服務器上配bn,發現權限問題也會致使遊戲的建立失敗,有兩個權限要設置,一是pvpgn文件夾要有「Everyone「的徹底控制權限,二是d2cs服務登陸帳號的權限)
戰網中,選擇人物雙擊進入後的屏幕左半部的文字,能夠經過修改news.txt來更改,更改後請將編碼改成ascii,進入頻道以後左半部分顯示的motd能夠經過修改bnmotd.txt來更改,bnmotd.exe每行必需以%I開頭,其中的一些語法能夠參考pvpgn\docs\bnmotd.txt;新聞和motd文件都位於pvpgn\conf目錄下。建立遊戲後屏幕左上角顯示的歡迎信息須要修改d2gs.reg中的"MOTD"項。
如何添加一個戰網管理員。非數據庫版本的,要修改usr目錄下的同名acc文件,用記事本打開,在最後一行加入"BNET\\auth\\admin"="true",MySQL數據庫版的,要打開pvpgn_bnet表,找到你的同名acc,修改auth_admin字段,並修改成true。關於管理員命令,這裏就不細說了,能夠去網上查。
如何Telnet管理戰網,pvpgn戰網的telnet有兩種,一種是telnet到gs,一種是telnet到pvpgn;到gs的這一種須要在命令模式輸入"telnet gsip 8888"來登陸(gsip就是你gs的IP地址),默認密碼是"abc123"。第二種要修改bnetd.conf文件,找到#telnetaddrs = ":23"一句,去掉前面的#號,在:23前面加入服務器的外網IP,若是是內網管理,就加入內網IP,用戶名和密碼就是管理員acc和pass(這種跟你在遊戲中進入頻道聊天是同樣的)。
如何防止更多的bot,這個除了用最新的帶d2warden的d2gs1.11b(bulid43)以外,可能目前沒有太好辦法。不過43的warden已經能夠防止d2jsp等早先流行的bot。另外91d2戰網利用PVPGN的versioncheck功能來檢測是d2load是否bot啓動,但這種方法對相關技術的要求較高,而且需很是熟悉versioncheck。
如何初始化ladder的排名,這個很是簡單。假設你定在2010年1月1日00:00:00要對服務器從新開荒,請打開b2cs.conf文件,找到ladder_start_time行,把後面的0改爲2010-01-01 00:00:00(format: yyyy-mm-dd hh:mm:ss)而後,刪除pvpgn/var/ladders中的全部文件。(注意,當修改了天梯開始時間以後,在這個時間以前所建立的全部char,都將變成非天梯人物)
出DC的相關設置,請參考我早先的總結 http://www.cnblogs.com/shalves/p/5147804.html
4.多國度互聯,共享人物數據相關研究。
2009年10月31日:今天正好有時間,初步研究了一下多國度互聯共享人物數據的問題。得出結論以下:
要在主服務器上運行N個獨立的D2CS,而且每一個CS的配置文件d2cs.conf中,關於人物存檔的路徑,要和主服務器上其它CS的路徑一致,也能夠用爲D2CS.EXE快捷方式,併爲這個快捷方式的目標加" -c c:\diablo2\pvpgn\conf\d2cs2.conf 」參數的方法來啓動多個D2CS(就像給d2loader加 -w -ns之類的啓動參數同樣)。你的每一份d2cs.conf中的serveraddr項都要使用一個不一樣的端口。要在國度服務器上運行一個獨立的D2GS。 在配置國度服務器的時候,建議先按照單機的步驟,測試可用了,再配置成獨立gs的國度服務器。
下面我舉一個例子來講明怎麼搭建多國度而且共享人物數據。
假設你有兩臺電腦做爲服務器,pc1和pc2。pc1的ip地址爲192.168.1.101,pc2的爲102。
再假設你的pc1和pc2上都已經各有了一個可用的單國度,分別爲d2server1和d2server2(怎麼配置單國度服務器端請參考個人配置指南)。
再假設你想將pc1設爲主服務器,就是戰網的6112端口服務器。
那麼先修改pc1上的pvpgn/conf/realm.conf文件,在原有的國度下面添加一條"d2server2" "d2 close battle net" 192.168.1.102:6115,修改完成後保存。還要修改pvpgn/conf/d2dbs.conf文件,找到gameservlist項,在原有的IP地址後面加一個逗號,並添加pc2的IP 192.168.1.102(像這樣的gameservlist = 192.168.1.101,192.168.1.102)。
而後copy一份pvpgn/conf/d2cs.conf文件,重命名爲d2cs2.conf。在裏面修改realmname項爲你的第二國度名稱d2server2;修改servaddrs項,IP不要動,把端口號改成6115;再修改gameservlist項,把IP改成pc2的IP 192.168.1.102。
找到pvpgn/d2cs.exe,爲其建立一個快捷方式,併爲快捷方式增長啓動參數 -c c:\diablo2\pvpgn\conf\d2cs2.conf,(注意-c前面有空格,這裏的路徑你應該按照你實際的路徑來,這個d2cs2.conf就是剛纔copy並修改的那一份)。
再轉到pc2上來,找到pc2上服務器端的d2gs.reg;先註冊一下,而後運行regedit打開註冊表編輯器,按照HKEY_LOCAL_MACHINE\SOFTWARE\D2Server\D2GS的位置去找D2GS項。找到後展開,在右側修改裏面的內容。修改D2CSIP和D2DBSIP項,爲pc1的IP 192.168.1.101;修改D2CSPort項爲十進制的6115;
最後要作的就是保證pc2上的服務端與pc1上服務端中間D2Server.ini是一致的。
到這裏配置工做就完成了,先在pc1上依次啓動pvpgn、d2dbs、d2cs、d2gs服務(或者用我建議的start server.bat);而後再啓動那個加了參數的d2cs.exe的快捷方式。最後,啓動pc2上的d2gs服務。 客戶端所用的註冊表文件,裏面應該用pc1的ip,由於pc1是主服務器,啓動了pvpgn。但願你是一次就配置成功了的!
另外我還小研究了一下多國度不共享人物數據的方法,並且我以爲這樣彷佛比共享數據更有意思。下面說說大概原理。
你們都知道d2cs主要負責國度和char,看名字Diablo 2 Character Server就明白了嘛。d2dbs主要負責數據交互和人物的存取;pvpgn主要負責開平臺、6112端口、和負責acc;也就是說若是pc1上已經運行了pvpgn,那麼pc1就是主服務器,這個時候pc1上配置了realm.conf(添加一個國度,好比"d2server2" "d2 close battle net" 192.168.1.102:6113),pc2上若是正確配置了d2cs.conf文件(主要是裏面的bnetdaddr,要是pc1的IP);當pc1上的服務端啓動以後 ,再啓動pc2上的d2cs.exe,就會發現多了一個國度,而且這個國度裏沒有人物數據。建立新的人物以後,文件被保存到pc2的pvpgn/var/charsave中去了。這就實現了不共享人物數據;再在pc2上再啓動d2gs服務和d2dbs.exe(這兩個的配置都不用修改,不啓動d2dbs.exe會沒法建立遊戲),就完成了一個多國度不共享人物數據的戰網。
5.我最近打包的簡單配置版。
請到91D2論壇下載http://bbs.91d2.cn/read-htm-tid-748127-page-e.html#a,這是我10月18日,打包的KT-D2版本,裏面附帶了傻瓜式的配置說明。
2012年1月3日 :斷斷續續仍是有不少網友向我求助,原本我有心作一個一鍵安裝包,但無耐我只是一個.net 程序員,就算作一個exe,還要讓用戶再安裝.net框架,有點得不嘗失了。因此,今天仍是作了一個更傻瓜的安裝包,只須要修改IP地址和複製文件就能夠了。省去了用戶本身去下載和整理服務端的麻煩。
下載地址:http://ishare.iask.sina.com.cn/f/22578217.html
版本:Pvpgn1.8.5 + D2gs1.11b(build46),客戶端支持 暗黑破壞神2毀滅之王v1.11b
說明:仍是一個壓縮包,包內有安裝說明,一切照安裝說明來就能夠了。由於時間關係沒有測試,有發現問題的,及時跟帖指出。
2013年補充:
在賬號文件增長了"BNET\\auth\\admin"="true"可是執行GM命令卻提示「This Command is reserved for admins」
解決辦法,再往文件中增長兩條: "BNET\\auth\\command_groups"="255" "BNET\\auth\\operator"="true"
最終版本(原創文章,轉載請註明出處http://hi.baidu.com/roleya/blog/item/a0dade1738730603c93d6dd7.html)