[黑客人生] JEDIablo2

上上個週末突然不想工作,想要玩樂,但是不知道玩什麼好,家人問我「何不玩 Diablo?」

結果就在我還在搜刮攻略、修改套件等檔案(嗯,我是檔案松鼠)時,家人已經把 Diablo 玩完一輪了⸺於是我又把 Diablo II 裝起來。因為 Diablo II 有些任務跟裝備只有在天梯纔會出現,所以我又開始弄起私人 Battle.Net 伺服器……

為了方便日後參考,以下為種種記錄。

Diablo II 的私人 Battle.Net 伺服器會需要用到單機版的資料檔,所以要做的第一件事,就是把遊戲完整地裝起來。安裝遊戲大致上是這樣的:

  1. 拿出 Diablo II Install Disc
  2. 安裝,選 Full Install
  3. 裝完後拿出 Diablo II Expansion Disc
  4. 安裝,選 Upgrade to Lord of Destruction
  5. 裝好後,選 Upgrade Installation
  6. 選 Upgrade from Multi-Player to Full

這樣基本上就是完整的 Diablo II 加資料片:Lord of Destruction 了;不過還沒結束喔。接下來要裝補綴程式;目前最新的版本是 1.12a 版,這一版的重大更新是,如果把所有的 .mpq 檔都複製到 Diablo II 安裝目錄,就不需要光碟來進行遊戲了。因此安裝完補綴程式後,要依序來複製這些 .mpq 檔:

  1. 從 Diablo II Expansion Disc 複製所有的 .mpq 檔到 Diablo II 安裝目錄,覆蓋所有既有的檔案
  2. 從 Diablo II Cinematics Disc 複製所有的 .mpq 檔到 Diablo II 安裝目錄,覆蓋所有既有的檔案
  3. 從 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.exed2cs.exed2dbs.exe,會出現三個視窗,通通最小化讓它們縮到系統列。

接下來要處理 D2GS。這個作法也很簡單,就是把檔案全部解開到某個目錄(不可以跟單機版 Diablo II 放在同樣的地方,也不可以跟 bnetd 放在同樣的地方),然後從 Diablo II 遊戲目錄把所有.dll 檔跟 .mpq 檔複製一份過來,接著編輯 d2gs.reg,把 D2CSIPD2DBSIP 改成跑伺服器的那個 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 來轉換。實際的步驟是這樣的:

  1. 連上伺服器,創造一個同名的角色
  2. 結束遊戲
  3. 備份 Diablo II 遊戲目錄下的 save 目錄下的 .d2s 人物存檔
  4. 把 Diablo II 遊戲目錄中的 Patch_D2.mpq 換成未套用妙麗修改套件前的版本(沒有留備份嗎?D2FontTool 的 MPQFILE 資料夾裏有一份)
  5. 執行 UdieToo
  6. View → Player Info
  7. 核選 Ladder
  8. File → Save
  9. File → Exit
  10. 把改成天梯角色的 .d2s 存檔副檔名去掉(例如本來是 foo.d2s,就把檔名改成 foo 就好)
  11. 把剛剛備份的(非天梯)人物存檔還原回來
  12. 把 Diablo II 遊戲目錄中的 Patch_D2.mpq 換回套用妙麗修改套件後的版本(又忘記備份了嗎?那就拿 D2FontTool 重新做一遍吧)
  13. 把天梯人物存檔複製到 bnetd 的 var/charsave 目錄下,請根據檔名找一下,它會放在比較深的目錄中
  14. 連回伺服器,剛登入時的人物資料會是新創角色的樣子,但是進入遊戲再存檔回來,就會更新了

目前大概就是這樣吧。如果有什麼其他心得,再補充上來。我之前完全沒弄過這個,所以如果有人有什麼寶貴經驗,也請不吝指教囉。

喔,對了,如果你遇到要開遊戲卻看到這樣的訊息:

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 服務即可。

jedi.org: