一、前言
目前魔兽世界 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“的文件夹,该文件夹内是源码。
(二)配置编译方案
- 在 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 提取
你可以点这里下载官方的地图与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 窗口内输入以下内容即可创建账号:
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”,双击运行打开魔兽世界,尽情玩耍吧!
评论前必须登录!
立即登录 注册