ubuntu22使用TrinityCore搭建魔兽世界服务器
目录
- 一、Ubuntu22工具下载
- 二、服务端编译配置
- 1. 从 git 上拉取服务端代码
- 2. 编译客户端
- 3. 修改配置文件
- 4. 加载sql语句
- 5. 下载客户端
- 6. 下载必要sql文件
- 三、客户端连接配置
- 四、游戏启动
一、Ubuntu22工具下载
下载所有需要的工具
sudo apt-get update
sudo apt-get install git clang cmake make gcc g++ libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mysql-server-8.0 p7zip
修改编译器
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100
找一个目录创建2个文件夹
# 用 document 这个文件夹作为根文件夹
cd document
# 创建2个文件夹
mkdir client3.3.5
mkdir server3.3.5
二、服务端编译配置
1. 从 git 上拉取服务端代码
从下面地址进行下载
GitHub下载地址:https://github.com/TrinityCore/TrinityCore.git
可以直接使用 git 命令下载
# 进入 document 文件夹
cd document
git clone -b 3.3.5 https://github.com/TrinityCore/TrinityCore.git
# 此时有三个文件夹
TrinityCore
client3.3.5
server3.3.5
2. 编译客户端
进入客户端目录
cd TrinityCore
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/home/user/document/server3.3.5
# 此时 build 文件夹里面就会生成一系列文件
make
make install
# 上面两步会非常耗时,等着就行,然后 server3.3.5 文件夹下就会生成 bin 和 etc 文件夹
cd /home/user/document/server3.3.5/
mkdir data
#data 文件夹用来存放客户端提取的地图数据,等下再用。此时server3.3.5 文件夹下有 3个文件夹
#分别是 bin 、etc、data
3. 修改配置文件
备份配置文件
cp /home/user/document/server3.3.5/etc/worldserver.conf.dist /home/user/document/server3.3.5/etc/worldserver.conf
cp /home/user/document/server3.3.5/etc/authserver.conf.dist /home/user/document/server3.3.5/etc/authserver.conf
修改 worldserver.conf
将它里面的 DataDir = “.” 修改为 DataDir = “…/data”
4. 加载sql语句
这的mysql需要配置,参考另一篇文章:ubuntu使用apt安装mysql8
安装配置完成后 mysql 是能够正常登录使用的
#登录mysql后输出如下语句,创建数据库
source /home/user/document/TrinityCore/sql/create/create_mysql.sql
#建表
use auth;
source /home/user/document/TrinityCore/sql/base/auth_database.sql
use characters;
source /home/user/document/TrinityCore/sql/base/characters_database.sql
5. 下载客户端
链接:https://pan.baidu.com/s/1jVQ4qoJ4qGNDHOBUzicIjg 提取码:imbo
进入client3.3.5 解压上面下载的压缩包
进入到解压目录
执行以下命令提取客户端地图数据
#1.执行命令,会生成dbc maps 文件夹
/home/user/document/server3.3.5/bin/mapextractor
# 将生成的文件夹拷贝到之前的data文件夹中
cp -r dbc maps /home/user/document/server3.5.5/data
/home/user/document/server3.3.5/bin/vmap4extractor
#2.在解压目录里创建一个vmaps文件夹
mkdir vmaps
# 生成数据
/home/user/document/server3.3.5/bin/vmap4assembler Buildings vmaps
# 移动文件夹到data文件夹中
cp -r vmaps /home/user/document/server3.3.5/data
#3.mkdir mmaps
/home/user/document/server3.3.5/bin/mmaps_generator
cp -r mmaps /home/user/document/server3.3.5/data
修改 auth 库里面的 realmlist 表 中的数据
这里address是服务器运行的地址,需要修改
6. 下载必要sql文件
在下面 启动 world 服务 的时候会报错缺少sql,所以咱们可以提前下载,如果不是下的我这个版本,那就等报错了再下吧
#启动 world 时报错如下,需要根据报错的文件对应下载,不要下成其他版本的sql了
File "TDB_full_world_335.24111_2024_11_22.sql" is missing,
download it from "https://github.com/TrinityCore/TrinityCore/releases"
uncompress it and place the file "TDB_full_world_335.24111_2024_11_22.sql"
把下载好的sql文件放到 server3.3.5/bin 文件夹下
三、客户端连接配置
在windows中下载客户端并解压,找到 Wow.exe所在文件夹,创建脚本
init_connect.bat,内容如下:
#ip对应上面realmlist中的address
echo y | rd /s "Cache"
echo SET realmlist "192.168.1.11" > DatazhTWrealmlist.wtf
echo SET realmlist "192.168.1.11" > DataenTWrealmlist.wtf
echo SET realmlist "192.168.1.11" > DatazhCNrealmlist.wtf
echo SET realmlist "192.168.1.11" > DataenCNrealmlist.wtf
echo SET realmlist "192.168.1.11" > DataenUSrealmlist.wtf
echo SET realmlist "192.168.1.11" > realmlist.wtf
start Wow.exe
四、游戏启动
连接Ubuntu22 ,打开两个窗口分别启动 auth 和world
cd /home/user/document/server3.3.5/bin
# 启动auth 服务
./authserver -c ../etc/authserver.conf
# 启动 world 服务
./worldserver -c ../etc/worldserver.conf
然后回到windows. 双击 init_connect.bat 启动即可