JEDIablo2
上上個週末突然不想工作,想要玩樂,但是不知道玩什麼好,家人問我「何不玩 Diablo?」
結果就在我還在搜刮攻略、修改套件等檔案(嗯,我是檔案松鼠)時,家人已經把 Diablo 玩完一輪了⸺於是我又把 Diablo II 裝起來。因為 Diablo II 有些任務跟裝備只有在天梯纔會出現,所以我又開始弄起私人 Battle.Net 伺服器……
為了方便日後參考,以下為種種記錄。
Diablo II 的私人 Battle.Net 伺服器會需要用到單機版的資料檔,所以要做的第一件事,就是把遊戲完整地裝起來。安裝遊戲大致上是這樣的:
- 拿出 Diablo II Install Disc
- 安裝,選 Full Install
- 裝完後拿出 Diablo II Expansion Disc
- 安裝,選 Upgrade to Lord of Destruction
- 裝好後,選 Upgrade Installation
- 選 Upgrade from Multi-Player to Full
這樣基本上就是完整的 Diablo II 加資料片:Lord of Destruction 了;不過還沒結束喔。接下來要裝補綴程式;目前最新的版本是 1.12a 版,這一版的重大更新是,如果把所有的 .mpq
檔都複製到 Diablo II 安裝目錄,就不需要光碟來進行遊戲了。因此安裝完補綴程式後,要依序來複製這些 .mpq
檔:
- 從 Diablo II Expansion Disc 複製所有的
.mpq
檔到 Diablo II 安裝目錄,覆蓋所有既有的檔案 - 從 Diablo II Cinematics Disc 複製所有的
.mpq
檔到 Diablo II 安裝目錄,覆蓋所有既有的檔案 - 從 Diablo II Install Disc 複製所有的
.mpq
檔到 Diablo II 安裝目錄,覆蓋所有既有的檔案
接下來為了讓遊戲玩得更快樂,要來做中文修補以及套用「妙麗修改套件」。這會用到一些工具:
首先要取得 D2FontTool-1.10.rar,解開來之後執行裡面的 D2FontTool.exe
,大致上會選擇:
- 備份原檔
- 加入中文版內容
- 中文版
- 使用中文補丁
- 英文版英文字型+細明體中文字型
選擇這些就可以處理中文了,但是還要順便套用「妙麗修改套件」,所以這個時候別急著開始轉換,先取得 Hermione.MOD.Data.rar,直接解到 D2FontTool 的 MOD
資料夾內,請務必保留 data
這個資料夾跟底下的目錄結構,然後回到 D2FontTool,勾選:
- 加入自訂 MOD
然後就可以讓他開始轉換了。轉換完成後按「關閉」即可。
到目前為止,已經把單機版的檔案準備好了。接下來要正式開始弄伺服器的部份。
在弄伺服器之前,會需要一個固定的 IP。為了要從外面能連得到,所以我去把本來的八浮動 IP 的 HiNet 改為一固七浮動;申請方法很簡單,直接連到 HiNet 的申請固定 IP 配發服務網頁,填填資料,立即生效⸺不過要把準備跑伺服器的那台電腦,改成用 @ip.hinet.net
的帳號格式重新 PPPoE 撥號,這樣才會拿到配發的固定 IP。
拿到 IP 之後,終於可以來弄伺服器了。要架這樣的伺服器會需要兩組檔案,一組是 Battle.Net 的模擬器⸺bnetd,拿原始碼編譯出 Windows 版的可執行檔;另外需要 D2GS,要抓的是搭配 1.12a 版的 D2GS 1.12a - Build 1。
bnetd 含有 Battle.Net 主伺服器(bnetd)、Diablo II 遊戲控制伺服器(d2cs)、Diablo II 資料庫伺服器(d2dbs),而 D2GS 則是實際拿 Diablo II 資料檔來執行遊戲的遊戲伺服器。
安裝 bnetd 很簡單,首先把 bnetd-0.4.25.bin.rar
解開,裡面有個 bnet.reg
,根據解開的路徑,設定裡面的三個 ImagePath
,把它們指到執行檔實際的位置,修改好後就可以把 bnet.reg
匯入登錄(當然也可以先匯入登錄後,再開登錄編輯程式來改);不過先別急著把這三個程式跑起來,我們還要修改一些設定檔。
要修改的檔案基本上祇有三個,都在 bnetd 的 etc
資料夾內:
- d2cs.conf
realmname
realmaddr
gameservlist
bnetdaddr
- d2dbs.conf
gameservlist
- realm.list
改法很簡單,就是把所有的 MyD2
改成自己喜歡的名稱,然後把所有的 127.0.0.1
改成拿來跑伺服器的那個 IP 地址。通通改好、存檔之後,就執行 bnetd.exe
、d2cs.exe
、d2dbs.exe
,會出現三個視窗,通通最小化讓它們縮到系統列。
接下來要處理 D2GS。這個作法也很簡單,就是把檔案全部解開到某個目錄(不可以跟單機版 Diablo II 放在同樣的地方,也不可以跟 bnetd 放在同樣的地方),然後從 Diablo II 遊戲目錄把所有的 .dll
檔跟 .mpq
檔複製一份過來,接著編輯 d2gs.reg
,把 D2CSIP
跟 D2DBSIP
改成跑伺服器的那個 IP 地址。通通改好、存檔之後,執行 install.bat
,就會把 D2GS 的服務裝起來⸺不過這時不會自動跑起來,所以我們要從「開始 → 設定 → 控制台 → 系統管理工具 → 服務」找到 Diablo II Close Game Server
這個服務,啟動,就可以把所需的服務通通跑起來了。
D2GS 第一次跑起來後,請趕快連線到 telnet://127.0.0.1:8888,用預設管理密碼 abcd123 登入,然後用 passwd
指令把管理密碼換掉⸺除非你希望隨便的路人甲都可以幫你亂搞設定。
伺服器端到這邊大概告一段落了,但是我們的遊戲端還不知道要連到那裡。有兩個常用的方法,可以讓你的 Diablo II 連線到自己架設的伺服器,一個是用 piaip 提供的 Diablo II Gateway Generator,另一個方法則是用 BNET-FSGS Gateway Changer。
如果想要把單機版的人物資料「轉移」到連線版,則可以拿 Ultimate Diablo Item Editor II 來轉換。實際的步驟是這樣的:
- 連上伺服器,創造一個同名的角色
- 結束遊戲
- 備份 Diablo II 遊戲目錄下的
save
目錄下的.d2s
人物存檔 - 把 Diablo II 遊戲目錄中的
Patch_D2.mpq
換成未套用妙麗修改套件前的版本(沒有留備份嗎?D2FontTool 的MPQFILE
資料夾裏有一份) - 執行
UdieToo
- View → Player Info
- 核選 Ladder
- File → Save
- File → Exit
- 把改成天梯角色的
.d2s
存檔副檔名去掉(例如本來是foo.d2s
,就把檔名改成foo
就好) - 把剛剛備份的(非天梯)人物存檔還原回來
- 把 Diablo II 遊戲目錄中的
Patch_D2.mpq
換回套用妙麗修改套件後的版本(又忘記備份了嗎?那就拿 D2FontTool 重新做一遍吧) - 把天梯人物存檔複製到 bnetd 的
var/charsave
目錄下,請根據檔名找一下,它會放在比較深的目錄中 - 連回伺服器,剛登入時的人物資料會是新創角色的樣子,但是進入遊戲再存檔回來,就會更新了
目前大概就是這樣吧。如果有什麼其他心得,再補充上來。我之前完全沒弄過這個,所以如果有人有什麼寶貴經驗,也請不吝指教囉。
喔,對了,如果你遇到要開遊戲卻看到這樣的訊息:
Your are in line to create a game
Joining a game to avoid waiting
這是因為 D2GS 預設只准開一個遊戲。要放寬這個限制,請用登錄編輯程式編輯 HKEY_LOCAL_MACHINE\SOFTWARE\D2Server\D2GS\MaxGames
的值,然後重新啟動 Diablo II Close Game Server
服務即可。