windows部署魔獸世界WLK單機+機器人(NPCBots)

AzerothCore 是魔獸世界服務端模擬器,下面簡稱AzerothCore為AC,在自己電腦的windows系統(tǒng)上部署好后,在把客戶端的服務器連接重定向到本機服務地址(127.0.0.1)即可實現(xiàn)在windows系統(tǒng)上玩單機魔獸世界。AC官方部署教程很詳細,windows系統(tǒng)部署鏈接:https://www.azerothcore.org/wiki/windows-requirements
但是AC目前不支持生成機器人,有時下多人副本不方便,而且一個人打怪也難(不使用GM命令時)。這里介紹包含機器人版本呢的AzerothCore+NPCBot 版本部署。這樣能生成機器人玩家,一起組隊打怪。
這里使用github用戶trickerer制作的NPCBots機器人mod腳本(https://github.com/trickerer/Trinity-Bots)。但是集成這個mod需要用trickerer修改過的AC代碼(https://github.com/trickerer/AzerothCore-wotlk-with-NPCBots)
一、在windows先需要安裝
(流程詳細介紹:https://www.azerothcore.org/wiki/windows-requirements)
1、Git
2、Visual Studio (17) Community 2022
????????安裝時注意勾選上桌面C++開發(fā)(Desktop development for C++)
3、MySQL Server Community (版本 >= 5.7)
????????需要配置環(huán)境變量,詳細見上面windows-requirements介紹
5、可視化數(shù)據(jù)庫管理工具(我選的是HeidiSQL)
6、CMake
7、OpenSSL
????????需要配置系統(tǒng)環(huán)境變量OPENSSL_INCLUDE_DIR,詳細見上面windows-requirements介紹
8、Boost
????????需要配置系統(tǒng)環(huán)境變量BOOST_ROOT,詳細見上面windows-requirements介紹
????
二、AzerothCore代碼拉取編譯
1、在windows的某個目錄拉取AC + NPCBots的代碼,項目地址是trickerer forked的項目AzerothCore-wotlk-with-NPCBots?(https://github.com/trickerer/AzerothCore-wotlk-with-NPCBots)
默認使用的代碼分支是npcbots_3.3.5。
git clone NPCBots Mod (https://github.com/trickerer/Trinity-Bots)代碼。
把Trinity-Bots里面的AC文件夾的NPCBots.patch拷貝到AC的代碼目錄文件夾里面,
在AC代碼目錄中執(zhí)行patch -p1 < NPCBots.patch命令?覆蓋補丁文件。
2、使用Cmake生成VS項目代碼。
????????編譯流程跟官方一致,詳細文檔見:https://www.azerothcore.org/wiki/windows-core-installation
????有failed的記錄的話就需要認真閱讀AC的官方部署文檔,很多細節(jié)要注意跟有問題的解決方案。
3、編譯VS項目代碼
????????點擊AzerothCore.sln用VS打開項目,?選擇編譯模式為RelWithDebInfo,打開解決方案面板,右鍵點擊ALL_BUILD選擇重新生成,結果應該是0 failed。
????????==========?Build: [xx]?succeeded, 0 failed, 0 up-to-date, 1 skipped ==========
4、拷貝需要的庫dll到
????????如windows64位系統(tǒng)需要libmysql.dll、legacy.dll、?libcrypto-3-x64.dll?and?libssl-3-x64.dll
三、修改編譯結果配置
????????編譯結果在VS項目目錄里面的bin/RelWithDebInfo,bin/RelWithDebInfo/configs存在配置文件,authserver.conf.dist 為賬號服務的配置文件,worldserver.conf.dist為游戲里的各種配置。刪除配置文件的.dist尾綴,配置文件才能正常讀取,需要配置worldserver.conf里面的DataDir路徑,值為客戶端的一些地圖等數(shù)據(jù),可以從客戶端導出,也可以在AC文檔(https://www.azerothcore.org/wiki/server-setup)里面有下載鏈接-Full data (v16) - from 02/01/2023 to now。
四、AC數(shù)據(jù)庫表生成
????????詳細文檔:https://www.azerothcore.org/wiki/database-installation
這里是生成AC需要的數(shù)據(jù)庫表。
五、NPCBots數(shù)據(jù)庫表生成
????????進入Trinity-Bots的AC/SQL文件夾,依次點擊merge_sqls_characters_windows.bat和merge_sqls_world_windows.bat。這兩個腳本主要是合并各個sql腳本,然后生成ALL_characters.sql和ALL_world.sql總腳本,方便后面數(shù)據(jù)庫表生成。
????????使用HeidiSQL,打開acore_characters數(shù)據(jù)庫,選擇文件->加載SQL腳本,選擇ALL_characters.sql,執(zhí)行后,再打開acore_world數(shù)據(jù)庫,然后選擇ALL_world.sql腳本執(zhí)行。再執(zhí)行AC/SQL/locales/zhCN目錄下的npc-text_locale.sql腳本,完成機器人語言漢化。
????????這時數(shù)據(jù)庫中會生成NPCBots需要的機器人表。
點擊VS工程目錄的/bin/RelWithDebInfo/authserver.exe,開啟賬號服務器。
點擊VS工程目錄的/bin/RelWithDebInfo/worldserver.exe,開啟游戲服務器。
保持兩個開著,即本地服務器開啟著。在worldserver的控制臺輸入create acctount 賬號 密碼。再給該賬號開啟GM權限,這樣該賬號可以在游戲中使用GM 命令。
六、游戲客戶端重定向網(wǎng)絡服務
????????下載WOW WLK 3.3.5a版本,選擇Data目錄里面的zhCN文件夾(具體看語言版本,這里是簡體中文版本,所以是zhCN),zhCN目錄里尋找realmlist.wtf(開服服務器地址配置文件),內(nèi)容修改成"set realmlist 127.0.0.1",重定向到本地服務。
????????點擊Wow.exe開啟游戲,登錄GM賬號,在聊天面板中輸入.npcbot會出命令提示。
常用npcbot命令:
.npcbot lookup ID // ID: 1 戰(zhàn)士, 2 騎士,3 獵人, 4 盜賊, 5 牧師,......
.npcbot spawn 機器人序號。 // 召喚某個序號的機器人
.npcbot add // 選中機器人,輸入指令后進行雇傭
.npcbot remove ? // 選中機器人,輸入指令后進行移除隊伍
.npcbot delete ?// 刪除該機器人
.npcbot command follow ?// 讓機器人跟隨
測試發(fā)現(xiàn)用命令spawn雇傭后的機器人不會消失,可以點擊機器人給他換裝備,跟機器人組隊后會跟隨,點擊機器人可以讓他原地等候,如果需要機器人出現(xiàn)幫忙時,直接用command follow命令,機器人會出現(xiàn)在你附近幫你打怪,體驗不錯
如果需要放到服務器上多人玩的話,用花生殼服務做個域名指向服務器,然后上面部署教程服務器配置的127.0.01改成域名,游戲客戶端的realmlist.wtf的內(nèi)容修改成:set realmlist 域名,這樣就可以多人聯(lián)機玩