一、开源地址
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
四、安装Boost
五、安装OpenSSL
六、安装CMake
七、安装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菜单。
至此,我们已经完成了大部分工作,接下来开启我们编译工程之路,嘿嘿嘿......
十、使用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库的命令行参数就行了,解决方案如下:
搞定!!!
文章评论