耳语海岸
艾泽拉斯避难谷地

Windows 下编译 Azerothcore 源码

一、前言

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

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

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

二、环境准备

编译的系统环境很重要,否则后期会出现各种各样的 BUG,建议大家选择纯净版的 Win7 或 Win10 进行搭建,或者Windows Server版本系统。在这里我选用的是 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 扩展,下载后默认安装即可。

(二)MS Visual Studio

接着下载 Visual Studio,点这里下载,注意下载” 社区版 “,安装时候选择开发环境为 C++:

(三)MySQL

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

(1)设置系统变量

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

(2)数据库安装

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

通过cd命令到达MySQL的解压路径:

d:
cd eryuwow
cd mysql-8.0.25-winx64

安装和启动MySQL数据库:

mysqld --initialize-insecure --user=mysql
mysqld -install
net start mysql

设置 root 密码:

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。

(3)Cmake

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

(4)OpenSSL

继续安装 OpenSSL,点这里下载,注意选择”Win64 OpenSSL v1.1.1k“文件下载,安装时注意选择:

如果在安装 OpenSSL 时收到 “Missing Microsoft Visual C++ 2008 Redistributable” 错误消息,请下载 Microsoft Visual C++ 2008 Redistributable Package (x64) (1.7MB Installer) 并安装它。

(5)Boost

继续安装 Boost:点这里下载,一路默认安装即可,安装完毕后,C 盘会有这个路径(版本号可能不同):C:\local\boost_1_60_0。

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

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

三、源码编译

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

(一)下载源码

进入 D 盘”eryuwow“文件夹,右键选择”Git Bash here“,弹出命令窗口,输入:

git clone https://github.com/azerothcore/azerothcore-wotlk.git

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

(二)配置编译方案

  1. 在 D 盘”eryuwow “文件夹内新建文件夹” build“;
  2. 打开 Cmake,点击”Browse Source“,选择到”D:/eryuwow/azerothcore-wotlk“文件夹;
  3. 点击”Browse Build“,选择到”D:/eryuwow/build“文件夹;
  4. 点击”Configure“,选择”Visual studio 16 2019“(根据你下载安装的 Visual studio 版本来选”,其余默认,点 “Finish”,该步骤如果弹出警示框 “Error in configuration process……”,看下你 MySQL 安装了没,服务启动了没;
  5. 选中 Tools 后面的复选框,如图所示:
  1. 再次点击”Configure“,然后点击”Generate“,这时构建文件已全部生成在 build 文件夹内,以后如果你改了源码想重新编译,请先清空 build 文件夹;
  2. 选择”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 提取

你可以点这里下载官方的地图与DBC文件,也可以自行手动提取:

  1. 复制 mapextractor.exe、mmaps_generator.exe、vmap4extractor.exe、vmap4assembler.exe 四个文件到魔兽世界客户端目录内(wow.exe 所在的目录);
  2. 复制 “D:/eryuwow/azerothcore-wotlk/apps/extractor “内的” extractor.bat“文件到魔兽世界客户端目录内;
  3. 在魔兽世界客户端文件夹内创建 mmaps 和 vmaps 文件夹;
  4. 双击”extractor.bat “文件选择” 4 – Extract all“选项运行,提取时长取决于你电脑配置;
  5. 在”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),请在第一步前编辑脚本配置:

  1. 复制 “D:\eryuwow\azerothcore-wotlk\conf\dist\config.sh” 到 “D:\eryuwow\azerothcore-wotlk\conf\config.sh”;
  2. 右键编辑 “cofig.sh” 文件,这里我选择的 Notepad++ 软件进行编辑,推荐大家安装;
  3. 找到以下文件,修改我加粗的部分(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 窗口内输入以下内容即可创建账号:

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。

八、客户端设置

在客户端文件夹内新建 txt 文件,如 “耳语魔兽.txt”,输入以下内容:

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

更改 “耳语魔兽.txt” 为 “耳语魔兽.bat”,双击运行打开魔兽世界,尽情玩耍吧!

赞(1) 打赏
未经允许不得转载:GSWXY » Windows 下编译 Azerothcore 源码

评论 抢沙发

评论前必须登录!

立即登录   注册

耳语海岸

WLK版本,定位于RP服务器,趣味养老,请注意:本服仅为技术交流和学习使用,欢迎广泛传播,不作为商业用途。

①群已满加入②群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫