1、Windows下编译并搭建AzerothCore服务端
·
目录
前言
- 客户端对应版本:魔兽世界3.3.5a(12340)客户端
一、AzerothCore下载
- AZerothCore官网:https://github.com/azerothcore
- AZerothCore源码:https://github.com/azerothcore/azerothcore-wotlk
- 下载后解压出来去掉后面的master
- 同级目录新建目录build
二、mysql安装
- mysql官网:https://www.mysql.com/
- mysql-8.0.32-winx64.zip:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.32-winx64.zip
- 下载后解压:进入解压后的文件夹创建data目录,并添加my.ini文件(自行修改basedir和datadir配置),内容如下
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录 ---是你的文件路径---
basedir=C:\develop_env\mysql
# 设置mysql数据库的数据的存放目录 ---是你的文件路径data文件夹自行创建---
datadir=C:\develop_env\mysql\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
- 以管理员身份启动cmd进入mysql的bin目录下:
- 安装mysql服务:
mysqld --install
- 初始化:
mysqld --initialize --console
-> 会产生一个随机密码,复制root@localhost:之后的这段随机密码并保存(后面要用到)【Y66Mnja&c?Re】 - 启动mysql服务器:
net start mysql
- 验证MySQL服务是否安装成功:输入
mysql -u root -p
,此时输入之前赋值的随机密码 - 修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
- 安装mysql服务:
- 环境变量配置:在系统变量path中添加环境变量
C:\develop_env\mysql\bin
三、boost安装
- boost下载:https://sourceforge.net/projects/boost/files/boost-binaries/1.81.0/
- boost安装:直接默认安装即可
- boost环境变量设置:系统变量中添加变量名
BOOST_ROOT
,变量值为boost的安装路径C:\local\boost_1_81_0
四、OpenSSL安装
- OpenSSL安装:一路next,最后一步去掉勾选即可,Finish
五、CMake下载
- CMake官网地址:https://cmake.org/
- CMake官网下载地址:https://cmake.org/download/
- CMake3.25.3:选择自己系统对应的版本,这里我选择 -> Windows x64 Installer -> cmake-3.25.3-windows-x86_64.msi
- CMake安装:
六、CMake编译
1 - CMake生成vs项目
- 第一次报错
2 - vs项目设置
- 使用vs2022打开之前新建build目录下的.sln
- 生成 -> 配置管理器
- 活动解决方案配置选择“RelWithDebInfo”,关闭
- 生成前设置项目堆内存:右键ALL_BUILD -> 调试 -> 命令后面添加
-Zm1000
- 不设置可能出现错误
error C3859: 未能创建 PCH 的虚拟内存
fatal error C1076: 编译器限制: 达到内部堆限制
- 不设置可能出现错误
3 - 生成解决方案
- 解决方案选择ALL_BUILD:先清理,后生成,等待生成完成
- 生成路径 -> C:\develop_project\cpp_project\build\bin\RelWithDebInfo
- 生成路径 -> C:\develop_project\cpp_project\build\bin\RelWithDebInfo
4 - 安装AzerothCore
-
新建目录:AzerothCoreServer
-
拷贝bin\RelWithDebInfo目录下文件到AzerothCoreServer目录
- 需要拷贝的文件:configs、authserver.exe、dbimport.exe、worldserver.exe
- 需要拷贝的文件:configs、authserver.exe、dbimport.exe、worldserver.exe
-
复制mysql的lib目录下libmysql.dll到AzerothCoreServer目录
-
复制OpenSSL的文件到AzerothCoreServer目录:需要复制的文件 -> libcrypto-1_1-x64.dll、libssl-1_1-x64.dll
-
使用数据库查询工具连接mysql
-
打开C:\develop_project\cpp_project\azerothcore-wotlk\data\sql\create\create_mysql.sql:修改密码(自定义即可)
-
刷入create_mysql.sql:可以看到新增3个数据库
-
打开AzerothCoreServer\configs:去掉3个文件的
.dist
结尾
-
authserver.conf修改数据库密码:记事本打开搜索
LoginDatabaseInfo
,将密码修改为之前自定义修改的密码
-
dbimport.conf修改数据库密码:记事本打开搜索
LoginDatabaseInfo
,将密码修改为之前自定义修改的密码
-
worldserver.conf修改数据库密码:记事本打开搜索
LoginDatabaseInfo
,将密码修改为之前自定义修改的密码
-
提取客户端文件:
- 拷贝build\bin\RelWithDebInfo目录下的4个文件到游戏客户端的根目录下 -> map_extractor.exe、mmaps_generator.exe、vmap4_assembler.exe、vmap4_extractor.exe
- 拷贝azerothcore-wotlk\apps\extractor目录下的extractor.bat到游戏客户端的根目录下
- 客户端根目录下新建2个目录mmaps和vmaps
- 运行extractor.bat,选择选项4 Extract all -> 按任意键继续
-
复制提取的文件到AzerothCoreServer的data目录
- 在AzerothCoreServer下新建data目录
- 将游戏客户端下的maps、mmaps、vmaps、Cameras、dbc目录剪切到AzerothCoreServer\data的目录下
- 指定datadir:打开AzerothCoreServer\configs\worldserver.conf,搜索datadir修改为data
-
运行authserver.exe
-
运行worldserver.exe:第一次启动会比较久
5 - 添加账号
- 添加账号:worldserver启动完毕后,回车就可以看到
AC>
- 输入
account create admin 123456
添加账号 - 添加admin为gm权限
account set gmlevel 3 -1
-> 3代表为最高的gm权限,-1代表是所有服务器 - 这时候回到数据库acore_auth查看表account可以看到已经有admin的账号了
- 输入
6 - 修改服务器名称
- 修改服务器列表:realmlist,默认为AzerothCore,自定义修改名称
- address:如果是本机的话地址修改为本机的局域网地址,如果是云服务器上的话就修改为云服务器的地址
- 修改完成后,关闭authserver和worldserver并重启
7 - 修改客户端的服务器地址
- 打开\World of Warcraft 3.3.5a.12340 zhCN\Data\zhCN\realmlist.wtf:修改ip地址为刚才数据库配置的服务器ip地址
set realmlist 192.168.252.50
- 启动客户端的wow.exe:至此搭建完成
更多推荐
已为社区贡献1条内容
所有评论(0)