群暉下虛擬機器編譯部署WOW服務端TrinityCore

眾尋發表於2022-04-13

前言

前幾天突然想玩WOW了,但是我是一個特別輕度的玩家,以前點卡的時候,我就是上去一個人做做任務,跑跑地圖,不怎麼玩副本和PVP,現在讓我花錢充月卡,不太現實,沒那個時間玩,所以,就考慮玩個私服,但是網上大部分的私服都是基於3.3.5編譯的,畢竟搞這個的都是魔獸的老玩家,和我的需求不一樣,我就想玩新,所以,只能自己編譯,但是參考大神們寫的教程和官網上的教程還是遇到了一些坑,所以,在此記錄一下,方便大家編譯master的時候,更容易通過。

參考

參考的內容一個是:TrinityCore魔獸世界伺服器搭建(Debian10),另一個就是官網了,但是後期填坑的時候,更多的是在wiki上查詢,因為有些朋友,也遇到了相關的問題。

步驟

  1. 安裝Debian虛擬機器(記憶體6G及以上,儲存140G及以上),這個需要注意的是,由於我們需要編譯的是Master,而且最新版的WOW客戶端有70多個G,所以,需要準備一個大空間,由於最開始不知道,所以,此處踩坑了。
  2. 在Debian下執行以下命令(我全部都是使用root使用者操作),參考地址
apt-get update
apt-get install git clang cmake make gcc g++ libmariadb-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mariadb-server p7zip default-libmysqlclient-dev
update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100 
  1. 在home/user/下新建一個目錄wow,用於整體管理
cd /home/user/
mkdir wow
  1. 進入到wow目錄,然後下載TrinityCore的master,下載的快慢,取決於網速,這個時候等等就可以了
cd /home/user/wow
git clone https://github.com/TrinityCore/TrinityCore.git
  1. 安裝資料庫,參見MariaDB Linux安裝指南,並且建立對應的表
mysql -u root
source /home/user/wow/TrinityCore/sql/create/create_mysql.sql
use auth;
source /home/user/wow/TrinityCore/sql/base/auth_database.sql 
use characters;
source /home/user/wow/TrinityCore/sql/base/characters_database.sql 
  1. 編譯服務端程式碼
cd /home/user/wow
mkdir server
cd TrinityCore/
mkdir build
cd build/
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/user/wow/server
nohup make -j $(nproc) install & #這個需要後臺執行,時間較長
  1. 下載WOW客戶端,並且上傳到伺服器,下載地址就是WOW的官網,下載最新的版本就可以。然後從Windows上傳到Debian,不要用MobaXterm,雖然這個工具也可以傳輸,但是因為檔案特別大,會斷掉,所以,不要用這個工具,我就被坑了。最後我用了xftp這個軟體,大概是傳輸了半個多小時的樣子。注:World_of_Warcraft資料夾直接上傳到wow下面就可以。至此,wow下面一共有三個檔案了

  2. 提取地圖,這裡的步驟是用的CSDN裡面的,而沒用官網提供的步驟,是因為官網提供的屬於組合性操作,不能後臺,或者我不會,畢竟我是Linux小白,因此,沒用官網的。

cd /home/user/wow/server
mkdir data

至此,server下有三個資料夾,bin和etc都是生成的

cd /home/user/wow/World_of_Warcraft
nohup /home/user/wow/server/bin/mapextractor & #比較慢,後臺執行
cp -r dbc maps /home/user/wow/server/data

/home/user/wow/server/bin/vmap4extractor
mkdir vmaps
nohup /home/user/wow/server/bin/vmap4assembler Buildings vmaps & #比較慢,後臺執行
cp -r vmaps /home/user/wow/server/data

mkdir mmaps
nohup /home/user/wow/server/bin/mmaps_generator & #比較慢,後臺執行,我的群暉大概跑了一天半的時間
cp -r mmaps /home/user/wow/server3.5.5/data

至此,地圖都提取完了。
9. 修改配置檔案,把server下etc裡面的檔案拷貝到本地,然後去掉dist,並且修改worldserver.conf中 DataDir = "." 為 DataDir = "../data",然後把這兩個檔案再回傳到目錄下,這樣etc資料夾下有4個檔案

10. 從官網下載TDB資料庫的壓縮包,解壓後,將得到的TDB_full_hotfixes開頭和TDB_full_world開頭的兩個sql檔案上傳到/home//wow/server/bin目錄下
11. 修改資料庫,更新一下auth.realmlist表中的address欄位為虛擬機器的IP,更新gamebuild欄位為客戶端的版本,為什麼這麼做呢。是因為如果不統一的話,在登入使用者後,顯示伺服器列表的位置,會顯示不相容,無法繼續。
TrinityCore的master的版本對應的是9.2.0.43114,WOW官網標註的客戶端也是這個版本,但是,其實客戶端版本較低。
TrinityCore版本:

WOW客戶端官網標註版本:

WOW客戶端實際版本:

12. 啟動服務端

cd /home/user/wow/server/bin
nohup ./bnetserver &
./worldserver

等待完事以後,會出現TC>

TC>bnetaccount create test@test test   #建立了一個郵箱是test@test,密碼是test的使用者
TC>account set gmlevel 1#1 3 -1        #設定為GM,其中n#n是從auth.account表的username欄位
  1. 客戶端,從三方登入客戶端平臺下載客戶端的登入檔案,解壓以後,放到本地World_of_Warcraft目錄下

    修改_retail_資料夾下的WTF資料夾下的Config.wft檔案,設定位置
    SET portal "auth.realmlist表中的address欄位"
  2. 最後,雙擊Arctium WoW Launcher.exe啟動,就可以了。

相關文章