基于azerothcore-wotlk编译魔兽335服务端

1.安装环境

官方文档

1.Debian系
1
apt update && apt full-upgrade -y && apt install git cmake make gcc g++ clang libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mariadb-server mariadb-client libmariadb-dev libmariadb-dev-compat screen
2.Arch系
1
pacman -S base-devel git cmake clang boost mariadb
3.数据库

这一步非必要,可以使用源安装的数据库

1
2
3
4
5
6
7
8
9
10
docker run -d \
--name=mariadb \
-e PUID=1000 \
-e PGID=1000 \
-e MYSQL_ROOT_PASSWORD=PASSWORD \
-e TZ=Asia/Shanghai \
-p 3306:3306 \
-v path_to_data:/config \
--restart unless-stopped \
lscr.io/linuxserver/mariadb:latest

2.源码下载

1.azerothcore-wotlk

内网

1
2
cd
git clone https://git.tnxw.com/Ming/azerothcore-wotlk.git --branch master --single-branch azerothcore --depth 1

外网

1
2
cd
git clone https://github.com/azerothcore/azerothcore-wotlk.git --branch master --single-branch azerothcore --depth 1
2.mod-eluna

内网

1
2
cd azerothcore-wotlk/modules
git clone https://git.tnxw.com/Ming/mod-eluna.git mod-eluna

外网

1
2
cd azerothcore-wotlk/modules
git clone https://github.com/azerothcore/mod-eluna.git mod-eluna

2.编译安装

1.创建目录
1
2
cd azerothcore-wotlk
mkdir build
2.准备编译
1
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
3.编译服务端

有2种方式来编译。

  • 第一种是傻瓜式,直接开始编译,这种速度一般。

    1
    make&&make install
  • 第二种是利用全核心CPU make -j 线程数 install 这里线程数要改成自己CPU的线程数,这样可以全核心进行编译。

    1
    make -j 20
    1
    make install

4.导入数据

1.下载地图

进入azeroth-server导入地图,下载地址data

1
2
3
4
cd
cd azeroth-server/bin
wget https://github.com/wowgaming/client-data/releases/download/v16/data.zip
unzip data.zip

data 文件夹上传到 azeroth-server 目录

2.连接数据库
  • 源安装数据库

    1
    mysql -uroot -p 
  • docker方式安装的数据库

    1
    2
    docker exec -it mariadb bash
    mysql -uroot -p
3.创建数据库
1
2
3
4
5
6
7
8
9
10
#password,密码可以自行修改
CREATE USER 'acore'@'%' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT ALL PRIVILEGES ON * . * TO 'acore'@'%' WITH GRANT OPTION;
CREATE DATABASE `acore_world` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;
CREATE DATABASE `acore_characters` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;
CREATE DATABASE `acore_auth` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON `acore_world` . * TO 'acore'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `acore_characters` . * TO 'acore'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `acore_auth` . * TO 'acore'@'%' WITH GRANT OPTION;
exit;
  • 自动创建
1
2
mysql -uroot -p
source /root/azerothcore-wotlk/data/sql/create/create_mysql.sql

5.修改配置文件

1.修改配置文件
  • 移除etc目录下文件名中的.dist

  • 最后成这样authserver.conf dbimport.conf worldserver.conf

修改authserver.conf dbimport.conf worldserver.conf,中的数据库地址和密码。

1
127.0.0.1;3306;acore;acore;acore_auth
  • 127.0.0.1:数据库地址
  • 3306:端口
  • acore:第一个为用户名,第二个为用户密码
  • acore_auth:数据库名

进入数据库,更改IP为本机地址

1
2
use acore_auth;
UPDATE realmlist SET address = 'IP' WHERE id = 1;
2.修改Data路径

DataDir = "." #此字段仅worldserver.conf有,将.更改为你的data文件夹路径

6.启动服务

1.手动启动
1
cd /root/azeroth-server/bin

启动authserver再新建终端启动worldserver

1
./authserver
1
./worldserver
2.脚本启动
1.认证

输入 cd /root/azeroth-server/bin && vi auth.sh

1
2
3
4
5
#!/bin/sh
while :; do
./authserver
sleep 20
done
2.服务

输入 vi world.sh

1
2
3
4
5
#!/bin/sh
while :; do
./worldserver
sleep 20
done
3.启动

输入 vi restarter.sh

1
2
3
#!/bin/bash
screen -AmdS auth ./auth.sh
screen -AmdS world ./world.sh
4.关闭

输入 vi shutdown.sh

1
2
3
#!/bin/bash
screen -X -S "world" quit
screen -X -S "auth" quit
5.权限
1
chmod 777 /root/azeroth-server/bin/*.sh
6.常用命令
  1. 输入 cd /root/azeroth-server/bin && ./restarter.sh 可启动服务端;
  2. 输入 screen -r auth 或者 screen -r world 可以查看控制台,同时按 Ctrl+A+D 键可退出窗口,但不会结束进程;
  3. 输入 cd /root/azeroth-server/bin && ./shutdown.sh 可关闭服务端。
3.创建账号
1
2
account create admin password
account set gmlevel admin 3 -1

修改客户端Data\zhCN目录下的realmlist.wtf文件,将IP地址改为服务端IP

1
set realmlist 127.0.0.1

其它记录

地图提取

1
2
3
4
5
6
7
8
9
10
/root/wow/bin/mapextractor
mkdir /root/wow/data
cp -r dbc maps /root/wow/data
/root/wow/bin/vmap4extractor
mkdir vmaps
/roo/wow/bin/vmap4assembler Buildings vmaps
cp -r vmaps /root/wow/data
mkdir mmaps
/root/wow/bin/mmaps_generator
cp -r mmaps /root/wow/data

基于azerothcore-wotlk编译魔兽335服务端
https://kuan.pages.dev/article/d4751c53.html
作者
IKun
发布于
2023年2月10日
许可协议