Windows 下编译 Azerothcore 源码

 

 

前言

目前魔兽世界 WLK 版本的源码主要是 TrinityCore 和 Azerothcore。Azerothcore 脱胎于 TrinityCore,更专注于源码修复,游戏体验更好。

 

Azerothcore 的 Wiki 很强大,基本上跟着 Wiki 走就能顺利编译,不过国内看不了,而且是英文。在这里,我根据 Azerothcore 的 Wiki 来给大家做个教程。

 

Azerothcore 编译的环境可以是 Win,也可以是 liunx,我很喜欢在 liunx 环境下搭建,因为流畅和稳定。但鉴于大家普遍用的是 Win,那我就首先讲解下 Windows 下编译 Azerothcore 源码,之后再讲其他环境的。

 

 

环境准备

编译的系统环境很重要,否则后期会出现各种各样的 BUG,建议大家选择纯净版的 Win7 或 Win10 进行搭建。在这里我选用的是 Win10 专业版(64 位),在 D 盘新建文件夹”eryuwow“。Azerothcore 需要的软件环境如下:

 

Git Extensions

Boost ≥ 1.70 – 1.74

MySQL ≥ 5.7.0

OpenSLL ≥ 1.0.x

CMake ≥ 3.16

MS Visual Studio (Community) ≥ 16.4 (2019) (Desktop) (No preview)

以上软件和系统环境补丁我都打包在了百度盘内,如果你访问不了下载链接的话,请点击下载 ,提取码:f9nq。

 

Git Extensions

首先你需要下载 Git 扩展,点这里下载https://git-scm.com/download/win,下载后默认安装即可。

 

MS Visual Studio

接着下载 Visual Studio,点这里下载:https://visualstudio.microsoft.com/zh-hans/downloads/,注意下载” 社区版 “,安装时候选择开发环境为 C++:

 

MySQL

继续下载 MySQL 社区版,点这里下载:https://dev.mysql.com/downloads/mysql/8.0.html,注意是 200 来 MB 的那个,选择”No thanks, just start my download“,下载完成后是 zip 压缩文件,解压至 D 盘 “eryuwow“文件夹。

 

设置系统变量

右键” 此电脑 “-” 属性 “,选择右边的” 高级系统设置 “,点击” 环境变量 “,设置系统变量为 mysql 中的 bin 目录,如上图所示。请无视截图内的 mysql-5.7.31 版本号,修改为你自己下载的版本号就行。

 

数据库安装

以管理员模式运行 cmd,首先依次输入:

d:

cd eryuwow

cd mysql-8.0.25-winx64  #通过cd命令到达MySQL的解压路径

mysqld –initialize-insecure –user=mysql

mysqld -install  #安装MySQL数据库

net start mysql  #启动MySQL数据库

mysql -uroot -p  #回车,弹出Enter password让你输入密码时,继续回车(第一次登陆时处于无密码状态,故跳过直接选择回车即可进入),登录MySQL

use mysql;

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;  #此处为修改MySQL的root密码,新密码即你自己设置的密码,不要忘记!

FLUSH PRIVILEGES;

exit;

至此,MySQL 安装完成,如果你想连接 MySQl,我常用的工具是 Navicat,请自行下载安装,连接你的 MySQL 数据库,另外可以在 “服务” 里面找到 MySQL,可以停止或重启 MySQL。

 

Cmake

 

继续安装 Cmake,点这里https://cmake.org/download/下载,注意选择”cmake-3.21.0-windows-x86_64.msi“文件下载,安装时注意选择:

 

 

 

 

OpenSSL

继续安装 OpenSSL,点这里https://slproweb.com/products/Win32OpenSSL.html下载,注意选择”Win64 OpenSSL v1.1.1k“文件下载,安装时注意选择:

如果在安装 OpenSSL 时收到 “Missing Microsoft Visual C++ 2008 Redistributable” 错误消息,请下载 Microsoft Visual C++ 2008 Redistributable Package (x64) (1.7MB Installer) https://www-microsoft-com.translate.goog/en-us/download/404Error.aspx?_x_tr_sl=en&_x_tr_tl=zh-CN&_x_tr_hl=zh-CN并安装它。

 

Boost

继续安装 Boost:点这里https://sourceforge.net/projects/boost/files/boost-binaries/1.74.0/boost_1_74_0-msvc-14.2-64.exe/download下载,一路默认安装即可,安装完毕后,C 盘会有这个路径:C:\local\boost_1_60_0(版本号可能不同)。

 

环境变量里面,新建系统变量,变量名为 “BOOST_ROOT”,变量值为 C 盘安装路径,如图所示:

至此,编译所需的软件环境安装完成。

 

源码编译

 

此部分但凡出现错误,请百度错误信息,或者检查之前环境搭建是否有误。

 

下载源码

进入 D 盘”eryuwow“文件夹,右键选择”Git Bash here“,弹出命令窗口,输入:git clone https://gitee.com/gswxy/azerothcore-wotlk.git

等待 Azerothcore 源码下载完成,关闭此命令框。完成后,“eryuwow” 文件夹内会有”azerothcore-wolk“的文件夹,该文件夹内是源码。

 

配置编译方案

 

在 D 盘”eryuwow “文件夹内新建文件夹” build“;

 

打开 Cmake,点击”Browse Source“,选择到”D:/eryuwow/azerothcore-wotlk“文件夹;

 

点击”Browse Build“,选择到”D:/eryuwow/build“文件夹;

 

点击”Configure“,选择”Visual studio 16 2019“(根据你下载安装的 Visual studio 版本来选”,其余默认,点 “Finish”,该步骤如果弹出警示框 “Error in configuration process……”,看下你 MySQL 安装了没,服务启动了没;

 

选中 Tools 后面的复选框,如图所示:

再次点击”Configure“,然后点击”Generate“,这时构建文件已全部生成在 build 文件夹内,以后如果你改了源码想重新编译,请先清空 build 文件夹;

 

选择”Open Project“,即可打开 Visual studio,开始编译源码。

 

编译源码

首选确保资源管理器内,选中”ALL Build“,活动解决方案配置设置为”Release“,如图所示:

然后点击菜单栏 “生成”-“生成解决方案”(或直接按 F7),Visual studio 将开始编译,编译时长取决于你电脑配置,成功后会有类似提示:========== Build: 22 succeeded, 0 failed, 0 up-to-date, 1 skipped ==========

如果有失败的failed),请往上翻看编译日志,排查问题。编译成功的文件在 “D:\eryuwow\build\bin\Release\” 文件夹内。

 

地图和DBC提取

复制 mapextractor.exe、mmaps_generator.exe、vmap4extractor.exe、vmap4assembler.exe 四个文件到魔兽世界客户端目录内(wow.exe 所在的目录);

复制 “D:/eryuwow/azerothcore-wotlk/apps/extractor “内的” extractor.bat“文件到魔兽世界客户端目录内;

在魔兽世界客户端文件夹内创建 mmaps 和 vmaps 文件夹;

双击”extractor.bat “文件选择” 4 – Extract all“选项运行,提取时长取决于你电脑配置;

在”eryuwow “文件夹内新建” data“文件夹,将提取出来的 vmaps、maps、dbc、cameras 移动到 data 文件夹中。

 

数据库设置

用 Navicat 或其他工具连接你的数据库,右键数据库选择” 运行 SQL 文件 “,SQL 文件为 “D:\eryuwow\azerothcore-wotlk\data\sql\create” 的”create_mysql.sql“。

 

进入 “D:\eryuwow\azerothcore-wotlk\apps\db_assembler” 文件夹,右键空白处,选择 “Git Bash here”,输入:bash db_assembler.sh

输入数字 “5” 回车,即可选择 “5) import-all: Assemble & Import all” 执行,完毕后,你会在 SQL 里看到 “acore_auth、acore_characters、acore_world” 三个数据库及里面的各种表。提示:如果你想改数据库账户密码(默认账密都为 acore),请在第一步前编辑脚本配置:

复制 “D:\eryuwow\azerothcore-wotlk\conf\dist\config.sh”  “D:\eryuwow\azerothcore-wotlk\conf\config.sh”;

右键编辑 “cofig.sh” 文件,这里我选择的 Notepad++ 软件进行编辑,推荐大家安装;

找到以下文件,修改我加粗的部分acore),分别是 “acore_auth、acore_characters、acore_world” 三个数据库的账号和密码,修改成你想要的即可:

DB_AUTH_CONF=${DB_AUTH_CONF:-“MYSQL_USER=’**acore**’; \

MYSQL_PASS=’**acore**’; \

MYSQL_HOST=’localhost’;\

MYSQL_PORT=’3306′;\

“}

DB_CHARACTERS_CONF=${DB_CHARACTERS_CONF:-“MYSQL_USER=’**acore**’; \

MYSQL_PASS=’**acore**’; \

MYSQL_HOST=’localhost’;\

MYSQL_PORT=’3306′;\

“}

DB_WORLD_CONF=${DB_WORLD_CONF:-“MYSQL_USER=’**acore**’; \

MYSQL_PASS=’**acore**’; \

MYSQL_HOST=’localhost’;\

MYSQL_PORT=’3306′;\

“}

服务器设置

复制 “configs” 文件夹和 authserver.exe 和 worldserver.exe 文件到 “eryuwow” 文件夹内;

 

复制 MySQL 文件夹内(MySQL\MySQL Server 8.x\lib\)的 libmysql.dll 文件到 “eryuwow” 文件夹内;

 

复制 OpenSSL 安装文件夹内(C:\OpenSSL-Win64\bin)的 libssl-1_1-x64.dll 和 libcrypto-1_1-x64.dll 文件到 “eryuwow” 文件夹内;

 

进入 “configs” 文件夹,同目录内复制 worldserver.conf.dist authserver.conf.dist,然后将副本重命名为不带 .dist 扩展名的同名副本;

 

编辑 worldserver.conf,按以下修改:DataDir = “data”

 

提示:如果前面你修改了三个数据库的密码,请修改以下两处

worldserver.conf

LoginDatabaseInfo     = “127.0.0.1;3306;acore;acore;acore_auth”

WorldDatabaseInfo     = “127.0.0.1;3306;acore;acore;acore_world”

CharacterDatabaseInfo = “127.0.0.1;3306;acore;acore;acore_characters”

 

authserver.conf

LoginDatabaseInfo = “127.0.0.1;3306;acore;acore;acore_auth”

 

启动服务器

 

在确保 MySQL 正常运行的前提下,双击打开 “authserver.exe”,接着双击打开 “worldserver.exe”,两个窗口在服务器运行时候都不要关闭;

 

在 worldserver.exe 窗口内输入以下内容即可创建账号:

1.account create $account $password #例如我想创建用户名为1,密码为2的账户,则输入account create 1 2

 

将账号提升为 GM 权限

account set gmlevel $account #level #realmid #例如我想将用户名为1的账户设置为最高权限的GM,则输入account set gmlevel 1 3 -1

 

客户端设置

del /f /s /q D:\eryuwow\World of Warcraft\Cache  #更改为你的魔兽世界客户端路径

echo y | rd /s “Cache”

echo SET realmlist “127.0.0.1” > Data\zhTW\realmlist.wtf

echo SET realmlist “127.0.0.1” > Data\enTW\realmlist.wtf

echo SET realmlist “127.0.0.1” > Data\zhCN\realmlist.wtf

echo SET realmlist “127.0.0.1” > Data\enCN\realmlist.wtf

echo SET realmlist “127.0.0.1” > Data\enUS\realmlist.wtf

echo SET realmlist “127.0.0.1” > realmlist.wtf

start wow.exe

goto end

 

 

 

 

 

 

 

 

 

 

 

 

 

© 版权声明
分享是一种美德,转载请保留原链接