最近研究了一下魔獸世界模擬器MangosZero,花了兩天時間終於編譯成功!現在把編譯的過程做個完整的記錄,以便讓想要學習編譯的同學們少走彎路!
服務器端運行界面:
客戶端運行界面:
一:下載源程序
所需軟件Git-1.7.9-preview20120201和TortoiseGit-1.7.7.0-64bit,這里把下載地址提供給大家,百度網盤鏈接:http://pan.baidu.com/s/1pLbhfyb 密碼:dwb5
新建一個目錄Mangos,右鍵Git Clone 輸入 http://github.com/mangoszero/database.git,要勾選Recursive
這里是下載數據庫,下載完成以后,再右鍵選擇Git Clone,輸入https://github.com/mangoszero/server.git,同樣也要勾選Recursive
這是服務器源碼。
下載完成后,在win目錄有些程序要先進行安裝
可選擇32位或64的進行安裝,安裝完成之后,運行MaNGOS_EasyBuild.exe
箭頭所示表示可編譯32位或者64位程序,有一個打勾即可,現在可以運行CMake生成解決方案
建立一個空目錄,用來放置生成的解決方案,比如 Server_VS
點擊configure
點擊Finish,完成后點擊Generate開始生成解決方案,然后就可以編譯了
二:導入數據庫
將數據加載到MySQL
> cd Mangos
> cd database
> InstallDatabases.bat
起始就是運行database文件夾下的InstallDatabases.bat腳本。跟着提示一路配置下去。幾點要注意:
1. 第一步輸入N進行下一步
2. MySQL的密碼就是上面安裝MySQL設置的密碼
3. 沒有其他什么要求,剩下的配置都使用默認就好,下面的教程將根據默認配置來
如果一切順利,你會在MySQL里面看到三個新的數據庫,如下
它們分別是character0 mangos0 realmd
三:生成地圖文件
1. 將server_build/bin/Debug/下的文件都拷貝到你的WoW客戶端的根目錄(也就是WoW.exe所在的目錄)
2. 再將server_build/bin/Debug/tools/下的文件都拷貝到你的WoW客戶端的根目錄
3. 在WoW客戶端目錄下,運行ExtractResources.sh,跟着指引一步一步配置,當運行完后,會生成三個目錄 dbc maps vmaps。
4. 在Mangos目錄下新建名為Data的文件夾,將上面的三個目錄拷貝到Data文件夾下
四:配置Mangos Server
-
進入Mangos/server_build/bin/Debug/文件夾下,將mangosd.conf.dist文件重命名為mangosd.conf,並修改里面的內容
DataDir = "."
修改為
DataDir = "C:\Mangos\Data"
假設你的Mangos新建在C盤根目錄下。
LoginDatabaseInfo "127.0.0.1;3306;mangos;mangos;realmd" WorldDatabaseInfo = "127.0.0.1;3306;mangos;mangos;mangos" ScriptDev2DatabaseInfo = "127.0.0.1;3306;mangos;mangos;mangos" CharacterDatabaseInfo = "127.0.0.1;3306;mangos;mangos;character0"
修改為:
LoginDatabaseInfo = "127.0.0.1;3306;root;123456;realmd"
WorldDatabaseInfo = "127.0.0.1;3306;root;123456;mangos0"
ScriptDev2DatabaseInfo = "127.0.0.1;3306;root;123456;mangos0"
CharacterDatabaseInfo = "127.0.0.1;3306;root;123456;characters"
假設你的MySQL密碼為123456.
2. 將realmd.conf.dist文件重命名為realmd.conf
LoginDatabaseInfo = "127.0.0.1;3306;mangos;mangos;realmd"
改為:
LoginDatabaseInfo = "127.0.0.1;3306;root;123456;realmd"
五:創建帳號
客戶端后登錄會發現沒有賬號可用,注冊賬號的辦法有兩種:
-
第一種方法是通過SQL語句直接在數據庫里面加
INSERT INTO account (username, sha_pass_hash, email) VALUES ('用戶名',SHA1(CONCAT(UPPER('用戶名'),':',UPPER('密碼'))), '郵件地址')
替換命令中的 用戶名、密碼、郵件地址 即可。
-
第二種方法最簡單,后面啟動游戲服務器worldserver之后,在這個命令窗口可以輸入GM命令:
create account 用戶名 密碼
六:下載客戶端及登陸器
鏈接:http://pan.baidu.com/s/1kVDiZt1 密碼:lp1d
鏈接:http://pan.baidu.com/s/1pKTF7ej 密碼:0uaj