azerothcore本体+npcbots+eluna模组安装备忘

1、环境:Debian12(23年7月),mariadb-server

2、azerothcore的安装方法有很多种,在ac的wiki有非常详细的指引,为了将来升级服务器版本方便,我选择的是classic

3、跟随wiki,进入Linux Requirements环节,安装需要的包:
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
请注意,此次安装要占用1.4G左右的磁盘空间

4、进入Core Installation环节,下载源码:
mkdir 源码目录
cd 源码目录
git clone https://github.com/azerothcore/azerothcore-wotlk.git --branch master --single-branch azerothcore --depth 1
github下载150MB左右,注意连接性,也可以手动去github下载上传到服务器解压缩

5、下载应用npcbots:
NPCBOTS项目下载NPCBots.patch放入 源码目录/azerothcore
坑:直接wget下来的NPCBots.patch文件大小不对
patch -p1 < NPCBots.patch

6、下载应用eluna模块:
cd 源码目录/azerothcore/modules
git clone https://github.com/azerothcore/mod-eluna.git mod-eluna

7、去掉客户端登录时的付费提示:
\src\server\game\Handlers\AuthHandler.cpp
找到
packet << uint8(0); // BillingPlanFlags
改为
packet << uint8(6); // BillingPlanFlags

8、编译ac:
cd 源码目录/azerothcore
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核心数,这一步时间取决于cpu性能,e1265Lv2 8线程大约耗时20分钟,J4125 4线程要跑50多分钟,7945hx 16线程的话3分多钟(感受到了科技的进步)。eluna模块代码比较老一堆warning,无视即可。
make install

>>>>>>>>>>>>>>>>>>>注意,此处为坑<<<<<<<<<<<<<<<<<<<<
当版本更新重新编译源码时,有可能会在eluna模块编译处卡住,此时需要删除build目录重新编译

9、进入server setup环节
cd 安装目录
mkdir data
cd data
wget https://github.com/wowgaming/client-data/releases/download/v16/data.zip

>>>>>>>>>>>>>>>>>>>注意,此处为坑<<<<<<<<<<<<<<<<<<<<
对于需要删除安装目录重编译的场景,建议使用软连接
ln -s ./data 安装目录/azeroth-server/data

10、修改ac配置文件:
cd 安装目录/etc
cp authserver.conf.dist authserver.conf
cp worldserver.conf.dist worldserver.conf
nano worldserver.conf

修改:
DataDir = 上面的data文件夹地址
保存退出,其他设置可以后面改

11、进入Database Installation环节
下载用户和数据库创建sql文件
放到任意目录
su - root # 以root用户登录mariadb
mysql
source create_mysql.sql

为了方便管理数据库,创建一个可以远程登录mariadb的用户:
use mysql
SELECT User, Password, Host FROM user; # 确认当前的用户情况
CREATE USER 'root'@'%' IDENTIFIED BY 'password'; # 添加远程root用户
grant all privileges on *.* to 'root'@'%' ; # 给远程root添加权限
SELECT User, Password, Host FROM user; # 确认添加用户的情况
flush privileges;

退出mysql
>>>>>>>>>>>>>>>>>>>注意,此处为坑<<<<<<<<<<<<<<<<<<<<
nano /etc/mysql/mariadb.conf.d/50-server.cnf
# 把这行注释掉:
bind-address = 127.0.0.1
systemctl restart mariadb

打开数据库连接工具如heidisql,以root访问,ok

12、进入azeroth-server/bin首次运行authserver、worldserver

13、NPCBots的数据库额外处理:
下载npcbots的sql文件
对首次安装,可以直接执行
merge_sqls_characters_windows.bat
merge_sqls_world_windows.bat
得到
ALL_characters.sql
ALL_world.sql
以及locales/zhCN目录下的npc_text_locale.sql
su - root
mysql
use acore_world;
source ALL_world.sql;
source npc_text_locale.sql

>>>>>>>>>>>>>>>>>>>注意,此处为坑<<<<<<<<<<<<<<<<<<<<
这里直接导入ALL_characters.sql会报错
要先删掉acore_characters库里的所有npcbots开头5张表,再导入
use acore_characters;
source ALL_characters.sql;

14、修改realmlist:
打开acore_auth库,realmlist表,第一行address改成局域网地址或外网url

15、重新运行authserver、worldserver,这里推荐使用screen后台运行:
sudo apt-get install screen
screen -S ac_auth
./authserver
ctrl-a+d # deattach终端
screen -S ac_world
./worldserver
ctrl-a+d # deattach终端

16、修改客户端realmlist为ip地址或url,测试连接

17、进入worldserver控制台,创建账号、开gm权限
screen -r ac_world
account create admin 123
account set gmlevel admin 3 -1

以admin账号登录游戏,聊天框输入.npcbot命令测试

18、使用eluna模块
进入安装目录azeroth-server/bin/lua_scripts/
将lua文件上传,重启worldserver

19、配置worldserver.conf
游戏中可以使用.reload config重载配置

2 thoughts on “azerothcore本体+npcbots+eluna模组安装备忘”

  1. 请问大神,为什么我按照文档搭建完成后,auth和world运行工均正常无报错,在验证过账号和密码成功后进入服务器时候一直返回服务器列表,端口测试都正常。

    1. 如果是外部访问,检查一下内网路由和内外网端口映射,需要把外网3724和8085端口映射到内网ac服务器

      局域网内就不知道了

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注