稷然如此

  • 首页
  • 文章分类
    • AI
    • Android
    • Java
    • Shell
    • Vue
    • C#
    • Python
    • 数据库
    • 组件
    • 其他
    • Game
  • 常用命令
    • Docker
    • Git
    • Linux
  • 操作系统
    • CentOS
    • Ubuntu
    • Windows
    • Kylin
  • 工具
    • IntelliJ IDEA
    • Visual Studio Code
稷然如此
不积跬步,无以至千里
  1. 首页
  2. 文章分类
  3. Game
  4. 正文

魔兽世界开源 Azeroth Core 服务端编译手册

2024年9月27日 1296点热度 0人点赞

一、开源地址

github地址:azeroth

官方安装教程:https://www.azerothcore.org/wiki/windows-core-installation

二、准备工作

  • NotePad++(可选安装,不妨碍使用记事本)。
  • Boost,下载地址:https://www.boost.org/
  • CMake,下载地址:https://cmake.org/
  • OpenSSL,注意以下两张图和其中的注意事项(其实没啥影响,这里下载的是3.3.2版本,安装方式跟1.1.1一样),下载地址:https://slproweb.com/products/Win32OpenSSL.html
  • Visual Studio 2022,版本需>=2017,使用2022版本,是因为可以直接安装NET6.0,省得后面再安装,因为有个DBC编辑工具需要使用NET6.0才能运行。
  • MySql 8.0,版本需>=5.7
  • Navicat 15
  • Git

三、安装MySql

这里使用MySql 8.0。
1.先解压压缩包到指定目录下,例:D:\mysql。
2.以管理员身份运行CMD命令,进入到解压的mysql\bin目录。
3.输入命令:mysqld --install,安装mysql服务。
4.输入命令:net start mysql,启动mysql服务。
5.设置环境变量,因为后面使用CMake编译生成项目工程时,需要使用到这个目录,当然在CMake编译的时候报错了再选择目录也行。

 

四、安装Boost

1、解压 boost_1_86_0.zip 到指定目录。
2、解压后。
 3、使用 Powershell(管理员身份)执行:
4、等待编译完成,编译完成后,多出如下文件:
4、直接运行b2.exe进行编译。
5、设置环境变量,因为后面使用CMake编译生成项目工程时,需要使用到这个目录,当然在CMake编译的时候报错了再选择目录也行(参考安装MySql一节的第5点,设置环境变量)。

 

五、安装OpenSSL

1、运行Win64OpenSSL-1_1_1q.exe。
  2、同意安装许可。
3、设置安装目录,我这里指定了D:\tools\open-ssl目录。

 

六、安装CMake

1、运行cmake-3.24.1-windows-x86_64.msi。
  2、友情提示,下一步。
3、同意安装协议。
4、建议根据需求选择增加系统环境变量到系统所有用户或当前用户,如果选择了不增加系统环境变量,那么后面在编译的时候,还需手动设置目录,烦不烦?一步到位不香吗?
   5、选择安装目录,我这里指定了D:\tools\cmake。
6、安装,等待安装完成。

 

七、安装Visual Studio 2022

因为后期学习过程中有个DBC编辑器需要安装NET6.0,2022直接内置了。安装过程略,自行百度,简单很!主要是勾选下载“使用C++的桌面开发”。
1、安装包下载地址:visual studio
2、选择组件时,勾选上“使用C++的桌面开发”。

 

八、安装Git

安装过程自行百度,灰常简单。
1、下载地址:git

 

九、克隆源码

1、工程源码地址:https://github.com/azerothcore/azerothcore-wotlk
2、根据个人癖好,新建一个源码目录文件夹。我这里指定的D:\games\wow\azeroth-core,然后进入该新建的文件夹空白区域右键选择Git Bash Here菜单。
   3、在弹出来的Git命令行中输入:git clone https://github.com/azerothcore/azerothcore-wotlk.git,等待下载完成。
至此,我们已经完成了大部分工作,接下来开启我们编译工程之路,嘿嘿嘿......

 

十、使用CMake编译生成项目工程

1、根据个人癖好,新建一个工程生成输出目录文件夹。我这里指定的D:\games\wow\build。
2、打开CMake。
3、选择克隆下来的源码目录文件夹。
4、选择编译输出目录文件夹,也就是第1步创建的build目录。
5、配置编译工具及编译架构。
6、选择生成工程对应的VS版本以及编译架构,默认为当前系统最高版本,如果本机装有多个版本,可以根据个人癖好选择对应版本。这里编译架构选择的x64,然后点击Finish进行配置。
7、耐心等待编译结果,编译过程中如发生异常错误,请移步第十四章。
8、编译成功后,选择生成工程。
 9、打开工程,这里不推荐直接使用CMake打开,因为有可能造成xxx.vcxproj 未能完成操作,不支持此接口等异常,推荐直接关掉CMake。然后通过进入编译输出的build目录,打开AzerothCore.sln的这种方式来打开工程。

 

十一、通过Visual Studio编译项目

1、编译工程,如果编译过程中抛出异常,请看第十六章。

 

十二、创建数据库

1、分别创建名为 acore_auth、acore_characters、acore_world三个库。
 例:
(可忽略,直接跳到第十三章)到这里已经就完成整个编译过程了,要搁2022年10月5日前,还需要手动使用工具导入数据库表及数据,在这天开源作者提交git代码后,已经“不再支持”通过工具导入数据库表及数据了。当然,如果你很闲,也可以通过工具来导入数据库,但必须在启动worldserver.exe前,手动改下configs目录下worldserver.conf的Updates.EnableDatabases属性值为0,也就是不进行数据库更新。且看分析:
1、2022年10月5日作者提交的git代码里说明如下。
2、通过工具导入数据库,然后再启动服务端,会造成更新sql文件执行sql语句异常,举个栗子:某次更新变更了字段名,通过工具来导入的话,第一次没问题,顺利执行sql文件。但启动服务器的时候,服务端又再次检查更新sql文件,又再次执行sql文件,再找变更的字段就找不到了,执行不了sql文件,造成服务端启动不了。很麻烦,所以可以忽略工具导入了,除非有特殊需求。
3、我非要使用工具来导入数据库呢,怎么样?那好,通过以下工具脚本分析,满足你的好奇心,发现最后只需要修改conf.dis.sh文件名为conf.sh就行了:
4、通过工具导入数据库。
5、输入命令:bash apps/db_assembler/db_assembler.sh或者直接找到这个脚本运行。
6.初次使用工具导入,需要下载安装Deno。
7.完成Deno安装后,会提示选择操作模式,输入5,全部导入。过程中可能需要输入一次数据库用户名和密码,当然,你也可以通过修改脚本functions.sh来指定用户名和密码。

 

十三、修改配置文件

1、进入Visual Studio编译目录,这里在D:\games\wow\build\bin\Debug,根据个人配置来。
2、进入configs目录文件夹,复制authserver.conf.dist 一份重命名为 authserver.conf,复制 worldserver.conf.dist 一份重命名为 worldserver.conf(注:不要删除 .dist 文件,服务端是优先加载*.dist配置文件,然后使用.conf配置文件来覆盖变更的配置)。
3、复制相关动态链接库到编译输出目录下。
a.到MySql安装目录下的lib文件夹里复制libmysql.dll到编译目录下。
b.到OpenSSL安装目录下bin目录的libssl-3-x64.dll、legacy.dll、libcrypto-3-x64.dll到编译完成的文件夹中。

 

4、修改服务端配置文件,进入configs目录文件夹下,修改第2步复制改名的那两个文件。
a.使用记事本或note pad++打开authserver.conf 修改内容:
LogsDir = "" 改为: LogsDir = "logs"
LoginDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_auth"改为实际配置:
LoginDatabaseInfo = "ip;端口;用户名;密码;数据库"
例:LoginDatabaseInfo = "127.0.0.1;3306;root; 123456;acore_auth"
b.使用记事本或note pad++打开worldserver.conf,修改内容:
DataDir = "." 改为:DataDir = "data"
LogsDir = "" 改为:LogsDir = "logs"
LoginDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_auth"改为:
LoginDatabaseInfo = "ip;端口;用户名;用户密码;acore_auth"
 例:
LoginDatabaseInfo = "127.0.0.1;3306;root;root;acore_auth"
WorldDatabaseInfo = "同上"
CharacterDatabaseInfo = "同上":
5、在编译输出目录下分别创建名为data、logs的文件夹。
 6、提取或下载data数据包,可以使用【AzerothCore 提取器】从自己的 wow 客户端提取客户端数据(费时间)。也可以直接下载现成的,下载地址是:https://github.com/wowgaming/client-data/releases,下载 data.zip 完毕后解压缩到 data 文件夹里,一共是四个文件夹,分别是 \dbc \maps \mmaps \vmaps。

 

十四、启动服务端

注意:通过手动导入数据库表结构的, 以下启动顺序随意,如果是通过启动服务端自动创建数据库表结构的,必须先启动worldserver.exe。
1、运行worldserver.exe游戏服务器,这里会自动创建数据库表。
2、来到build\bin\Debug目录文件夹下,运行authserver.exe认证服务器。
3、等待worldserver.exe运行完毕,嘟的一声(不想听?没问题,修改configs目录下的worldserver.conf配置文件,里面有一项属性是关闭启动完成后嘟的一声响),然后就可以在命令窗口界面通过输入:【.account create 账号 密码】命令来完成账号创建,后续也可以抽时间来写份通过网页方式来注册账号的教程。
例,创建账号为:akim,密码为:1的账号:

 

十五、畅游艾泽拉斯大陆

1、首次进游戏,运行《魔兽单机登录.bat》来登录。

 

十六、常见编译异常处理

1、CMake编译异常之MySql找不到?
答:参考第一章安装MySql第5点。
2、CMake编译异常之Boost找不到,如果加了Lua脚本模块就需要Boost,所以需要指定目录?
答:参考第二章安装Boost第3点。
3、第1、2问题也可以这么操作,设置好后再次配置编译工具,也就是Configure按钮进去配:
4、Visual Studio编译异常之虚拟内存不足?
使用VS编译源码报虚拟内存不足,C1076伴生异常C3859,找到了一个处理方式。按微软说的,这好像是Win10的毛病,反正我是搞不清楚。
只需要调整scripts库的命令行参数就行了,解决方案如下:
搞定!!!
标签: Azeroth 巫妖王之怒 魔兽世界
最后更新:2024年9月28日

Akim

犇 骉 Java、C#、Python、Go、Android、MiniProgram、Bootstrap、Vue2

点赞
下一篇 >
文章目录
  • 一、开源地址
  • 二、准备工作
  • 三、安装MySql
  • 四、安装Boost
  • 五、安装OpenSSL
  • 六、安装CMake
  • 七、安装Visual Studio 2022
  • 八、安装Git
  • 九、克隆源码
  • 十、使用CMake编译生成项目工程
  • 十一、通过Visual Studio编译项目
  • 十二、创建数据库
  • 十三、修改配置文件
  • 十四、启动服务端
  • 十五、畅游艾泽拉斯大陆
  • 十六、常见编译异常处理

Copyright © 2025 aianran.com All Rights Reserved.

免责申明 | 隐私政策 | 服务条款 | 关于我们

黔ICP备2023008200号-1

贵公网安备 52010202003594号