azerothcore本體+npcbots+eluna模組安裝備忘
1、環(huán)境:Debian12(23年7月),mariadb-server
2、azerothcore的安裝方法有很多種,在ac的<a href="https://www.azerothcore.org/wiki/installation" rel="noopener" target="_blank">wiki</a>有非常詳細(xì)的指引,為了將來升級服務(wù)器版本方便,我選擇的是classic
3、跟隨wiki,進(jìn)入<a href="https://www.azerothcore.org/wiki/linux-requirements" rel="noopener" target="_blank">Linux Requirements</a>環(huán)節(jié),安裝需要的包:
<code>sudo apt-get update && sudo apt-get install git cmake make gcc g++ clang default-libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev mariadb-server libboost-all-dev</code>
請注意,此次安裝要占用1.4G左右的磁盤空間
4、進(jìn)入<a href="https://www.azerothcore.org/wiki/linux-core-installation">Core Installation</a>環(huán)節(jié),下載源碼:
mkdir 源碼目錄
cd 源碼目錄
<code>git clone https://github.com/azerothcore/azerothcore-wotlk.git --branch master --single-branch azerothcore --depth 1</code>
github下載150MB左右,注意連接性,也可以手動去github下載上傳到服務(wù)器解壓縮
5、下載應(yīng)用npcbots:
去<a href="https://github.com/trickerer/Trinity-Bots/tree/master/AC">NPCBOTS項目</a>下載NPCBots.patch放入 源碼目錄/azerothcore
坑:直接wget下來的NPCBots.patch文件大小不對
<code>patch -p1 < NPCBots.patch</code>
6、下載應(yīng)用eluna模塊:
cd 源碼目錄/azerothcore/modules
<code>git clone https://github.com/azerothcore/mod-eluna.git mod-eluna</code>
7、去掉客戶端登錄時的付費提示:
<code>\src\server\game\Handlers\AuthHandler.cpp</code>
找到
<code>packet << uint8(0);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // BillingPlanFlags</code>
改為
<code>packet << uint8(6);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // BillingPlanFlags</code>
8、編譯ac:
cd 源碼目錄/azerothcore
<code>cd azerothcore
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=$HOME/azeroth-server/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=all -DSCRIPTS=static -DMODULES=static # 此處可修改ac安裝目錄
make -j 8 # 8是編譯使用的cpu核心數(shù),這一步時間取決于cpu性能,e1265Lv2 8線程大約耗時20分鐘,J4125 4線程要跑50多分鐘,7945hx 16線程的話3分多鐘(感受到了科技的進(jìn)步)。eluna模塊代碼比較老一堆warning,無視即可。
make install
</code>
<strong>>>>>>>>>>>>>>>>>>>>注意,此處為坑<<<<<<<<<<<<<<<<<<<<</strong>
當(dāng)版本更新重新編譯源碼時,有可能會在eluna模塊編譯處卡住,此時需要刪除build目錄重新編譯
9、進(jìn)入<a href="https://www.azerothcore.org/wiki/server-setup">server setup環(huán)節(jié)</a>:
cd 安裝目錄
<code>mkdir data
cd data
wget https://github.com/wowgaming/client-data/releases/download/v16/data.zip</code>
<strong>>>>>>>>>>>>>>>>>>>>注意,此處為坑<<<<<<<<<<<<<<<<<<<<</strong>
對于需要刪除安裝目錄重編譯的場景,建議使用軟連接
ln -s ./data 安裝目錄/azeroth-server/data
10、修改ac配置文件:
cd 安裝目錄/etc
<code>cp authserver.conf.dist authserver.conf
cp worldserver.conf.dist worldserver.conf
nano worldserver.conf</code>
修改:
DataDir = 上面的data文件夾地址
保存退出,其他設(shè)置可以后面改
11、進(jìn)入<a href="https://www.azerothcore.org/wiki/database-installation">Database Installation環(huán)節(jié)</a>
下載<a href="https://github.com/azerothcore/azerothcore-wotlk/blob/master/data/sql/create/create_mysql.sql">用戶和數(shù)據(jù)庫創(chuàng)建sql文件</a>
放到任意目錄
<code>su - root # 以root用戶登錄mariadb
mysql
source create_mysql.sql
</code>
為了方便管理數(shù)據(jù)庫,創(chuàng)建一個可以遠(yuǎn)程登錄mariadb的用戶:
<code>use mysql
SELECT User, Password, Host FROM user; # 確認(rèn)當(dāng)前的用戶情況
CREATE USER 'root'@'%' IDENTIFIED BY 'password'; # 添加遠(yuǎn)程root用戶
grant all privileges on *.* to 'root'@'%' ; # 給遠(yuǎn)程root添加權(quán)限
SELECT User, Password, Host FROM user; # 確認(rèn)添加用戶的情況
flush privileges;</code>
退出mysql
<strong>>>>>>>>>>>>>>>>>>>>注意,此處為坑<<<<<<<<<<<<<<<<<<<<</strong>
<code>nano /etc/mysql/mariadb.conf.d/50-server.cnf
# 把這行注釋掉:
bind-address = 127.0.0.1
systemctl restart mariadb</code>
打開數(shù)據(jù)庫連接工具如heidisql,以root訪問,ok
12、進(jìn)入azeroth-server/bin首次運行authserver、worldserver
13、NPCBots的數(shù)據(jù)庫額外處理:
下載<a href="https://github.com/trickerer/Trinity-Bots/tree/master/AC/SQL">npcbots的sql文件</a>
對首次安裝,可以直接執(zhí)行
merge_sqls_characters_windows.bat
merge_sqls_world_windows.bat
得到
ALL_characters.sql
ALL_world.sql
以及l(fā)ocales/zhCN目錄下的npc_text_locale.sql
<code>su - root
mysql
use acore_world;
source ALL_world.sql;
source npc_text_locale.sql</code>
<strong>>>>>>>>>>>>>>>>>>>>注意,此處為坑<<<<<<<<<<<<<<<<<<<<</strong>
這里直接導(dǎo)入ALL_characters.sql會報錯
要先刪掉acore_characters庫里的所有npcbots開頭5張表,再導(dǎo)入
<code>use acore_characters;
source ALL_characters.sql;</code></code>
14、修改realmlist:
打開acore_auth庫,realmlist表,第一行address改成局域網(wǎng)地址或外網(wǎng)url
15、重新運行authserver、worldserver,這里推薦使用screen后臺運行:
<code>sudo apt-get install screen
screen -S ac_auth
./authserver
ctrl-a+d # deattach終端
screen -S ac_world
./worldserver
ctrl-a+d # deattach終端</code>
16、修改客戶端realmlist為ip地址或url,測試連接
17、進(jìn)入worldserver控制臺,創(chuàng)建賬號、開gm權(quán)限
<code>screen -r ac_world
account create admin 123
account set gmlevel admin 3 -1</code>
以admin賬號登錄游戲,聊天框輸入.npcbot命令測試
18、使用eluna模塊
進(jìn)入安裝目錄azeroth-server/bin/lua_scripts/
將lua文件上傳,重啟worldserver
19、配置worldserver.conf
游戲中可以使用.reload config重載配置