如何搭建魔獸私服?
〇、前言
TrinityCore是一個魔獸世界服務端模擬器,我們可以通過TrinityCore來學習大型網路遊戲服務端的編寫,從中汲取營養來編寫我們自己的遊戲。
一、前期準備工作
CPU需要支持SSE2指令集
Boost版本大於等於1.59.0
MySQL資料庫版本大於等於5.1.0OpenSSL版本為1.0.xCMake版本大於等於3.3.2MicroSoft Visual Studio (Community)版本大於等於14 (2015 update 3)
1.安裝 Git Extensions
注意其中Git、MySYSGit和KDiff這三個軟體必須全部安裝,安裝Git的時候,在路徑選擇那裡選擇「RunGit from the Windows Command Prompt」。MySYSGit和KDiff使用默認選項安裝即可。
2.安裝IDE
安裝Visual Studio 2015,注意當安裝VS2015時,默認是不支持C++的,我們需要手動選擇Visual C++,選擇自定義安裝,然後將Visual C++選項選中,如下圖所示:
3.安裝MySQL
TrinityCore支持的MySQL版本為5.5和5.6,請勿使用5.7及以上版本。
- 下載安裝包
- 在MySQL Configuration配置中,設置用戶名為trinity,密碼同樣為trinity,並且確保該用戶擁有localhost域訪問許可權。
- 建議將MySQL註冊為服務,這樣資料庫就可以隨Windows開機啟動了。
4.選擇一款資料庫管理軟體
1)SQLYog Community Edition(強烈推薦)
2)HeidiSQL (對新手友好)3)MySQL Workbench(MySQL官方出品,個人感覺使用起來不太友好,但是是唯一可以建立模型的軟體)使用你安裝好的資料庫管理軟體連接資料庫,測試資料庫是否安裝成功。
5.安裝Boost
下載對應 Visual Studio 2015 的版本:
1)64bit:http://sourceforge.net/projects/boost/files/boost-binaries/1.59.0/boost_1_59_0-msvc-14.0-64.exe/download
2)32bit:Download Boost C++ Libraries from SourceForge.net
Boost 1.59.0是可以使用的最低版本,推薦使用1.60.0版本。
64bit: Download Boost C++ Libraries from SourceForge.net
32bit: Download Boost C++ Libraries from SourceForge.net
安裝到默認路徑(C:localoost_1_XX_0),然後添加一個名為「BOOST_ROOT」的環境變數到你的安裝路徑,比如「C:/local/boost_1_60_0」。確保沒有末尾斜杠,如下圖所示:
注意:這張圖片中的版本號為1_55_0,將它改為你的實際版本號。
6.安裝CMake
下載cmake-3.6.2-win64-x64.msi 這個版本,不要下載RC (Release Candidate)版本。注意要下載64bit版本。如圖所示:
7.安裝OpenSSL
不要下載light版本,分為32和64位兩個版本,下載對應版本即可。我們這裡選擇64bit版本,如圖所示:
注意:不能選擇最新版本1.1.0,必須選擇1.0.x版本。
如果安裝過程中提示沒有VisualC++庫的話請到網上自行下載安裝。
二、代碼編譯1.從GIT拉取代碼
創建一個文件夾,在該文件夾上點擊滑鼠右鍵,選擇「Git Extensions -&> Clone」,如下圖所示:
3.3.5a版本倉庫地址:
Repository to clone: GitHub - TrinityCore/TrinityCore: TrinityCore Open Source MMO Framework
Destination: D:TrinitySourceSubdirectory to create: &6.x版本倉庫地址:
Repository to clone: GitHub - TrinityCore/TrinityCore: TrinityCore Open Source MMO Framework
Destination: D:TrinitySourceSubdirectory to create: &我們這裡選擇3.3.5的倉庫拉取代碼。
2.使用CMake生成VS2015使用的Visual C++ 工程
編譯之前在硬碟上建立編譯文件目錄,比如「D:TrinityBuild」。
1)運行CMake,如下圖所示:
2)點擊 Browse Source… -&> 選擇源碼目錄(D:/Trinity/Source)
3)點擊 Browse Build… -&> 選擇編譯目錄(D:/Trinity/Build)
4)點擊 Configure
5)確保 Use default native compilers 選項是選中狀態
6)選擇Visual Studio 14 Win64
7)點擊Finish
8)確保Tools是被選中狀態。
9)再次點擊Configure。
10)點擊Generate,VS所需的資源文件已經生成到D:/Trinity/Build目錄了。
3.使用VS2015編譯代碼
使用VS2015打開D:/Trinity/Build目錄下的TrinityCore.sln文件,經過一段時間的讀取,VS載入了TrinityCore整個工程。我們選擇菜單中的Build-&>Configuration Manager選項打開編譯配置界面。
設置 Active SolutionConfiguration 為 Release。
設置 Active Solution Platform 為 Win64 (確保上面安裝的軟體全部實64位的)。點擊 Close 關閉對話框。在 Solution Explorer 中右鍵單擊 ALL_BUILD 選擇 Clean。
清理完畢後再次右鍵單擊ALL_BUILD 選擇 Build。現在就已經開始編譯源碼了,這個過程要花5-30分鐘,視你的電腦配置而定。完成後會提示:
========== Build: 22 succeeded, 0 failed, 0up-to-date, 0 skipped ==========你可以在D:TrinityBuildinRelease找到編譯好的文件。
想要正常運行程序,你需要如下文件:- libeay32.dll
- libmySQL.dll
- ssleay32.dll
- worldserver.conf.dist
- worldserver.exe
- authserver.conf.dist
- authserver.exe
其中worldserver.conf.dist 、worldserver.exe 、authserver.conf.dist和authserver.exe是編譯成果,libeay32.dll、libmySQL.dll和ssleay32.dll需要從以下路徑(如果你安裝軟體的時候手動改過路徑,請從你改過的路徑中拷貝)手動拷貝過來:
libmySQL.dll – C:Program FilesMySQLMySQL Server 5.xlib
libeay32.dll, ssleay32.dll – C:OpenSSL-Win64in至此,編譯完成!
4.保持更新
在源碼目錄(D:TrinitySource)上點擊右鍵,選擇Git菜單中的Pull(拉取代碼的意思)選項。
打開CMake軟體,點擊Configure,然後點擊Generate。
使用VS2015重新編譯。
完成!
三、導入資料庫並準備資源文件
TrinityCore使用MySQL資料庫,其中我們需要建立三個資料庫,它們分別是auth、characters和world。
- Auth:許可權資料庫,存儲伺服器列表,玩家賬戶等信息。
- Characters:角色資料庫,存儲所有角色人物相關的信息。
- World:世界資料庫,存儲整個魔獸世界的一切信息,包括NPC,怪物,裝備,道具,任務,副本等等所有一切。
1.下載數據腳本
下載world資料庫sql腳本,地址如下:
Release TDB 335.61 · TrinityCore/TrinityCore · GitHub
打開以上網址,選擇TDB_full_335.61_2016_04_11.7z下載並解壓縮。
2.導入資料庫腳本
1)執行D:TrinitySourceTrinityCoresqlcreatecreate_mysql.sql。
2)選擇auth資料庫,執行D:TrinitySourceTrinityCoresqlaseauth_database.sql腳本。
3)選擇characters資料庫,執行D:TrinitySourceTrinityCoresqlasecharacters_database.sql腳本
4)選擇world資料庫,執行剛剛下載解壓縮的TDB_full_world_335.61_2016_04_11.sql腳本。
3.保持資料庫更新
每次啟動worldserver.exe時,會自動執行最新的SQL升級腳本,無需人工干預。
4.準備資源文件
除了資料庫之外,伺服器的運行還依賴以下資源文件:
1)取得資源文件提取工具:
- extractor.bat 批處理文件,我們主要通過這個文件執行命令提取資源文件。
- mapextractor.exe 這個工具負責提取dbc和cameras文件。
- vmap4extractor.exe 這個工具負責提取maps文件。
- mmaps_generator.exe 這個工具負責提取mmaps文件。
- vmap4assembler.exe 這個工具負責提取vmaps文件。
在D:TrinityBuildinRelease目錄中可以找到4個可執行文件,如圖所示:
在D:TrinitySourceTrinityCorecontrib目錄中可以找到extractor.bat,如圖所示:
將以上文件拷貝到魔獸世界3.3.5客戶端的根目錄中。
2)提取資源文件
雙擊運行extractor.bat,如下圖所示:
輸入1然後回車,這時候會提取dbc和maps文件。
等待提取結束,然後輸入2回車,這時候會提取vmaps文件。
等待提取結束,然後輸入3回車,這時候會提取mmaps文件,注意該步驟將花費大量時間,如果PC性能一般,可能會用2-3個小時左右。
3)拷貝提取好的資源文件
提取結束後,在魔獸世界客戶端根目錄會多出5個文件夾,分別是Cameras、dbc、maps、mmaps和vmaps,將他們拷貝到我們編譯後的服務端程序根目錄中,如下圖所示:
四、配置網路並啟動
1.修改 authserver.conf 配置文件
修改authserver.conf.dist為authserver.conf,然後使用文本編輯器打開。
找到數據源配置(MYSQL SETTINGS)
修改LoginDatabaseInfo = 「localhost;3306;trinity;trinity;auth」
2.修改 worldserve.conf 配置文件
修改worldserve.conf.dist為worldserve.conf,然後使用文本編輯器打開。
同樣修改
LoginDatabaseInfo = 「localhost;3306;trinity;trinity;auth」
WorldDatabaseInfo = 「localhost;3306;trinity;trinity;world」CharacterDatabaseInfo = 「localhost;3306;trinity;trinity;characters」注意:如果你的資料庫是使用的是你自己設定的用戶名和密碼,請將斜體對應修改為你自己設定的用戶名的密碼(斜體部分前面是用戶名,後面是密碼)。
3.修改伺服器IP地址
修改auth庫中realmlist表中的address欄位為你的公網IP地址,如下圖所示:
注意:如果你只是在本機測試,不在外網發布可以忽略這一步驟。
4.確認遊戲客戶端版本號
修改gamebuild欄位為你的遊戲客戶端(國服為13930,台服為12340)。
5.啟動伺服器
運行authserver.exe,這個是登錄與網關程序,啟動成功如下圖所示:
運行worldserver.exe,這個是遊戲主程序,啟動成功如下圖所示:
6.創建賬號並授予GM許可權
在worldserver.exe的DOS窗口中輸入如下命令:
- 創建賬號命令: account create &
& - 創建賬號例子: account create test test
- 授予GM許可權命令: account set gmlevel &
3 -1 - 授予GM許可權例子: account set gmlevel test 3 -1
7.修改客戶端的連接地址
在客戶端根目錄建立一個txt文本文件
在裡面輸入:
echo y | rd /s 「Cache」
echo SET realmlist 「127.0.0.1」 &> DatazhTWealmlist.wtfecho SET realmlist 「127.0.0.1」 &> DataenTW
ealmlist.wtfecho SET realmlist 「127.0.0.1」 &> DatazhCN
ealmlist.wtfecho SET realmlist 「127.0.0.1」 &> DataenCN
ealmlist.wtfecho SET realmlist 「127.0.0.1」 &> DataenUS
ealmlist.wtfecho SET realmlist 「127.0.0.1」 &> realmlist.wtfstart wow.exegoto end
注意:如果你配置了公網IP地址,這裡的127.0.0.1需要修改為你的公網IP地址才可以。
保存該文件,將擴展名改為bat並運行。
恭喜你,經過漫長的工作,你終於可以進入遊戲了!這時你可以用剛才創建的GM賬號進行遊戲!你將在獨屬於你自己的世界中盡情遨遊!
其他注意事項
- 如果你想在其他PC上運行TrinityCore,你可能會需要安裝Microsoft Visual C++ 2015 Redistributable Package。
- Windows XP 和 Windows 2003 不被支持,請不要做無謂的嘗試了。
附錄
- GM命令大全 GM Commands - TrinityCore
- 日誌配置 Logging Configuration
小眾的服務端不說 先談談主流的吧。
60年代端很多,mangoszero cmangos-class70年代端也多,mangosone cmangos-tbc80年代端的話,雖然有mangostwo和cmangos-wlk,但是個人更推崇trinity core,原因無它,簡單好用修複比較完善,還有個sunwell,但是畢竟太小眾了。85、90端的話 trinity也有的,還屬於測試版本。=====================================================================先寫個60年代端的搭建方案:1、環境:Debian8.4 64位 硬體配置:2.4GHz雙核CPU+1G內存(編譯所需,正常運行512M就足夠)2、明眼人看出來了,這個其實就是虛擬機下的環境。3、Debian安裝跳過,都是比較直觀的,需注意的是,選擇組件的時候,只選SSH服務即可,其它不用勾選。4、後期的調試安裝,都是通過SecureCRT來完成的,所以Debian的SSH必須開啟遠程支持。開啟方法:用root登陸,修改配置文件 vi /etc/ssh/sshd_config 找到 PermitRootLogin 後面改為yesPS:按i進入編輯 esc返回 :wq 保存退出5、Debian下的環境安裝:安裝桌面環境:LDXE輕量桌面
apt-get updateapt-get install xorg lxde-core ttf-wqy-microhei WDM leafpad lxterminal安裝編譯環境:
apt-get updateapt-get install grep build-essential gcc g++ automake git-core cmakeapt-get install autoconf make patch libmysql++-dev libtool libssl-dev binutils zlibc libc6 libbz2-dev subversionapt-get install libboost-dev libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-iostreams-dev建立用戶組mangos:
groupadd -g 601 mangosuseradd -m -d /home/mangos -c "MANGoS" -g mangos mangos克隆數據
cd /home/mangosgit clone https://github.com/cmangos/mangos-classic.git mangosgit clone https://github.com/ElunaLuaEngine/ElunaMangosClassic.git elunamangosgit clone https://github.com/ACID-Scripts/Classic.git acidgit clone https://github.com/classicdb/database.git classicdb開始編譯
cd cd /home/mangos mkdir build cd buildcmake ../mangos -DCMAKE_INSTALL_PREFIX=../server -DDEBUG=0make -j 2 make install6、WOW地圖數據提取
解析WOW客戶端下的文件:(從linux下進行文件操作,建議用WINSCP軟體) 複製/home/mangos/mangos/contrib/extractor_binary下的所有文件至WOW根目錄 複製/home/mangos/mangos/contrib/vmap_extractor下的make_vmaps.bat至WOW根目錄依次運行WOW目錄下的以下文件:
ad.exe //生成dbc,maps vmapExtractor.exe //生成Buildings make_vmaps.bat //生成vmaps MoveMapGen.exe //生成mmaps 耗時較長把dbc,maps,vmaps,mmaps文件夾複製到伺服器上的/home/mangos/mapdata下
7、資料庫建立
由於虛擬機搭建,所以我把資料庫另外放置在其它虛擬主機上,(可查看我的另一篇文章:如何搭建WEB主機)在資料庫伺服器中建立以下資料庫:60CMangos_realmd60CMangos_characters60CMangos_world並導入以下SQL文件
/home/mangos/mangos/sql/base/realmd.sql &>&> 60CMangos_realmd/home/mangos/mangos/sql/base/characters.sql &>&> 60CMangos_characters/home/mangos/mangos/sql/base/mangos.sql &>&> 60CMangos_world然後:cd /home/mangos/classicdb./InstallFullDB.sh./InstallFullDB.sh 是的,兩遍!/home/mangos/mangos/sql/scriptdev2/scriptdev2.sql &>&> 60CMangos_world
/home/mangos/acid/acid_classic.sql &>&> 60CMangos_world8、配置
WOW客戶端配置修改WOW目錄下的realmlist.wtfSET realmlist "你的debian主機IP"
伺服器端:複製並改名
/home/mangos/mangos/src/game/AuctionHouseBot/http://ahbot.conf.dist.in &>&> /home/mangos/server/etc/ahbot.conf/home/mangos/server/etc/mangosd.conf.dist &>&> mangosd.conf/home/mangos/server/etc/realmd.conf.dist &>&> realmd.conf修改/home/mangos/server/etc/mangosd.conf
DataDir = "/home/mangos/mapdata"
9、啟動伺服器
在Debian終端打開:/home/mangos/server/bin/realmd -c /home/mangos/server/etc/realmd.conf/home/mangos/server/bin/mangosd -c /home/mangos/server/etc/mangosd.conf -a /home/mangos/server/etc/ahbot.conf參考cmangos/issues
寫的真詳細,找個時間好好學習一下,謝謝了,收藏先
這有一個 ubuntu 下 cmangos 的搭建文檔https://decadewow.gitbooks.io/decadewow/content/fu_wu_qi_da_jian_zhi_nan.html
推薦閱讀:
※為什麼熱血傳奇因為私服損失了大量用戶,而魔獸世界沒有因為私服而減少用戶?
※不了解魔獸,如何在跟女朋友看首映時給她講解,裝出很懂的樣子?
※如果拿破崙這類的偉人放到魔獸世界會怎樣?
※魔獸世界8.0泰蘭德在聯盟大使館中為什麼顯示黃名?
※暗影牧師的力量來自哪裡?
TAG:魔獸世界 |