1、Windows下编译并搭建AzerothCore服务端

news2024/12/25 18:43:48

目录

  • 前言
  • 一、AzerothCore下载
  • 二、mysql安装
  • 三、boost安装
  • 四、OpenSSL安装
  • 五、CMake下载
  • 六、CMake编译
    • 1 - CMake生成vs项目
    • 2 - vs项目设置
    • 3 - 生成解决方案
    • 4 - 安装AzerothCore
    • 5 - 添加账号
    • 6 - 修改服务器名称
    • 7 - 修改客户端的服务器地址

前言

  • 客户端对应版本:魔兽世界3.3.5a(12340)客户端

一、AzerothCore下载

  • AZerothCore官网:https://github.com/azerothcore
  • AZerothCore源码:https://github.com/azerothcore/azerothcore-wotlk
    • 下载后解压出来去掉后面的master
    • 同级目录新建目录build
      在这里插入图片描述

二、mysql安装

  • mysql官网:https://www.mysql.com/
  • mysql-8.0.32-winx64.zip:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.32-winx64.zip
  • 下载后解压:进入解压后的文件夹创建data目录,并添加my.ini文件(自行修改basedir和datadir配置),内容如下
    在这里插入图片描述
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录   ---是你的文件路径---
basedir=C:\develop_env\mysql
# 设置mysql数据库的数据的存放目录  ---是你的文件路径data文件夹自行创建---
datadir=C:\develop_env\mysql\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
  • 以管理员身份启动cmd进入mysql的bin目录下
    • 安装mysql服务:mysqld --install
    • 初始化:mysqld --initialize --console -> 会产生一个随机密码,复制root@localhost:之后的这段随机密码并保存(后面要用到)【Y66Mnja&c?Re】
    • 启动mysql服务器:net start mysql
    • 验证MySQL服务是否安装成功:输入mysql -u root -p,此时输入之前赋值的随机密码
    • 修改密码:
      • ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
      • FLUSH PRIVILEGES;
        在这里插入图片描述
  • 环境变量配置:在系统变量path中添加环境变量C:\develop_env\mysql\bin
    在这里插入图片描述

三、boost安装

  • boost下载:https://sourceforge.net/projects/boost/files/boost-binaries/1.81.0/
  • boost安装:直接默认安装即可
  • boost环境变量设置:系统变量中添加变量名BOOST_ROOT,变量值为boost的安装路径C:\local\boost_1_81_0
    在这里插入图片描述

四、OpenSSL安装

  • OpenSSL下载:https://slproweb.com/products/Win32OpenSSL.html

在这里插入图片描述

  • OpenSSL安装:一路next,最后一步去掉勾选即可,Finish
    在这里插入图片描述

五、CMake下载

  • CMake官网地址:https://cmake.org/
  • CMake官网下载地址:https://cmake.org/download/
  • CMake3.25.3:选择自己系统对应的版本,这里我选择 -> Windows x64 Installer -> cmake-3.25.3-windows-x86_64.msi
    在这里插入图片描述
  • CMake安装
    在这里插入图片描述

六、CMake编译

1 - CMake生成vs项目

在这里插入图片描述

  • 第一次报错
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2 - vs项目设置

  • 使用vs2022打开之前新建build目录下的.sln
    • 生成 -> 配置管理器
    • 活动解决方案配置选择“RelWithDebInfo”,关闭

在这里插入图片描述
在这里插入图片描述

  • 生成前设置项目堆内存:右键ALL_BUILD -> 调试 -> 命令后面添加-Zm1000
    • 不设置可能出现错误
      • error C3859: 未能创建 PCH 的虚拟内存
      • fatal error C1076: 编译器限制: 达到内部堆限制
        在这里插入图片描述

3 - 生成解决方案

  • 解决方案选择ALL_BUILD:先清理,后生成,等待生成完成
    • 生成路径 -> C:\develop_project\cpp_project\build\bin\RelWithDebInfo
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

4 - 安装AzerothCore

  • 新建目录:AzerothCoreServer

  • 拷贝bin\RelWithDebInfo目录下文件到AzerothCoreServer目录

    • 需要拷贝的文件:configs、authserver.exe、dbimport.exe、worldserver.exe
      在这里插入图片描述
  • 复制mysql的lib目录下libmysql.dll到AzerothCoreServer目录
    在这里插入图片描述

  • 复制OpenSSL的文件到AzerothCoreServer目录:需要复制的文件 -> libcrypto-1_1-x64.dll、libssl-1_1-x64.dll
    在这里插入图片描述

  • 使用数据库查询工具连接mysql
    在这里插入图片描述

  • 打开C:\develop_project\cpp_project\azerothcore-wotlk\data\sql\create\create_mysql.sql:修改密码(自定义即可)
    在这里插入图片描述

  • 刷入create_mysql.sql:可以看到新增3个数据库
    在这里插入图片描述

  • 打开AzerothCoreServer\configs:去掉3个文件的.dist结尾
    在这里插入图片描述

  • authserver.conf修改数据库密码:记事本打开搜索LoginDatabaseInfo,将密码修改为之前自定义修改的密码
    在这里插入图片描述

  • dbimport.conf修改数据库密码:记事本打开搜索LoginDatabaseInfo,将密码修改为之前自定义修改的密码
    在这里插入图片描述

  • worldserver.conf修改数据库密码:记事本打开搜索LoginDatabaseInfo,将密码修改为之前自定义修改的密码
    在这里插入图片描述

  • 提取客户端文件

    • 拷贝build\bin\RelWithDebInfo目录下的4个文件到游戏客户端的根目录下 -> map_extractor.exe、mmaps_generator.exe、vmap4_assembler.exe、vmap4_extractor.exe
    • 拷贝azerothcore-wotlk\apps\extractor目录下的extractor.bat到游戏客户端的根目录下
    • 客户端根目录下新建2个目录mmaps和vmaps
    • 运行extractor.bat,选择选项4 Extract all -> 按任意键继续
      在这里插入图片描述
      在这里插入图片描述
  • 复制提取的文件到AzerothCoreServer的data目录

    • 在AzerothCoreServer下新建data目录
    • 将游戏客户端下的maps、mmaps、vmaps、Cameras、dbc目录剪切到AzerothCoreServer\data的目录下
    • 指定datadir:打开AzerothCoreServer\configs\worldserver.conf,搜索datadir修改为data
      在这里插入图片描述
      在这里插入图片描述
  • 运行authserver.exe
    在这里插入图片描述

  • 运行worldserver.exe:第一次启动会比较久
    在这里插入图片描述

5 - 添加账号

  • 添加账号:worldserver启动完毕后,回车就可以看到AC>
    • 输入account create admin 123456 添加账号
    • 添加admin为gm权限account set gmlevel 3 -1 -> 3代表为最高的gm权限,-1代表是所有服务器
    • 这时候回到数据库acore_auth查看表account可以看到已经有admin的账号了
      在这里插入图片描述
      在这里插入图片描述

6 - 修改服务器名称

  • 修改服务器列表:realmlist,默认为AzerothCore,自定义修改名称
  • address:如果是本机的话地址修改为本机的局域网地址,如果是云服务器上的话就修改为云服务器的地址
    在这里插入图片描述
  • 修改完成后,关闭authserver和worldserver并重启
    在这里插入图片描述

7 - 修改客户端的服务器地址

  • 打开\World of Warcraft 3.3.5a.12340 zhCN\Data\zhCN\realmlist.wtf:修改ip地址为刚才数据库配置的服务器ip地址
set realmlist 192.168.252.50
  • 启动客户端的wow.exe:至此搭建完成
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/420988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CANopen | 对象字典OD 07 - 创建对象字典变量,变量变化时发送TPDO1,滤波时间200ms

文章目录一、前言二、实验目的三、对象字典OD四、TPDO1数据变化发送,滤波时间200ms4.1、main.c4.2、让CANopen从站进入操作状态4.3、TPDO1的CAN数据包一、前言 该笔记的程序:github 二、实验目的 CANopen从站有一个变量tx_Value,映射到T…

我调用第三方接口遇到的13大坑

前言 在实际工作中,我们经常需要在项目中调用第三方API接口,获取数据,或者上报数据,进行数据交换和通信。 那么,调用第三方API接口会遇到哪些问题?如何解决这些问题呢? 这篇文章就跟大家一起…

ubuntu防火墙命令介绍

ubuntu在开启ufw防火墙前,为了避免与iptables现有规则冲突,建议先清空iptables的所有规则。相关命令如下: iptables -F 更改iptables规则链默认操作命令如下: iptables -P INPUT ACCEPTiptables -P FORWARD ACCEPTiptables -P …

【PyTorch】第一节:张量(Tensor)的定义

作者🕵️‍♂️:让机器理解语言か 专栏🎇:PyTorch 描述🎨:PyTorch 是一个基于 Torch 的 Python 开源机器学习库。 寄语💓:🐾没有白走的路,每一步都算数&#…

云原生网络之微隔离

本博客地址:https://security.blog.csdn.net/article/details/130044619 一、微隔离介绍 1.1、微隔离概念 在主体执行动作时,对主体权限和行为进行判断,最常见的是网络访问控制,也就是零信任网络访问(ZTNA&#xff…

TP5 解决如何实现生成并导出Word文档功能

今天连续更新两篇文章,上一篇讲了一下如何生成PDF并导出文件的功能 接下来我们就来拼一拼怎么实现生成并导出word文档的功能 话不多说 我们直接上流程: 1.下载安装phpword插件:composer require phpoffice/phpword 2.安装成功后该插件在我们项…

Linux——高级I/O操作(三)

目录 I/O多路复用 异步I/O I/O多路复用 阻塞型I/O 相对于非阻塞型 I/O 来说,最大的优点就是在设备的资源不可用时,进程主动放弃 CPU,让其他的进程运行,而不用不停地轮询,有助于提高整个系统的效率。但是其缺点也是比…

Sharding-JDBC之水平分表

目录一、简介1.1、垂直分表1.2、水平分表二、maven依赖三、数据库3.1、创建数据库3.2、创建表四、配置(二选一)4.1、properties配置4.2、yml配置五、实现5.1、实体5.2、持久层5.3、服务层5.4、测试类5.4.1、保存数据5.4.2、查询数据一、简介 1.1、垂直分…

Java入坑之注解和反射

一、注解概念0 1.1基本定义 Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能 1。它们可以用来标记类、方法、变量、参数和包等 简而言之,注解就是对于代码中某些鲜活个体的贴上去的一张…

企业如何开发自己的小程序

小程序是一种轻量级的应用程序,被广泛用于社交娱乐、电商购物等领域。对于企业而言,开发自己的小程序可以为客户提供更加个性化的服务,提高品牌认知度和用户忠诚度。本文将介绍企业如何开发自己的小程序,并通过一个具体的案例来说…

【CSS】图片底部空白缝隙处理 ( 使用居中对齐 / 顶部对齐 / 底部对齐 | 将行内元素 / 行内块元素转为块级元素 )

文章目录一、图片底部空白缝隙问题二、图片底部空白缝隙问题解决方案一 ( 使用居中对齐 / 顶部对齐 / 底部对齐 )三、图片底部空白缝隙问题解决方案二 ( 将行内元素 / 行内块元素转为块级元素 )一、图片底部空白缝隙问题 在上一篇博客中 , 使用默认的基线对齐 , 会发现 行内块级…

java 利用正则来分析日志(IT枫斗者)

利用正则来分析日志(IT枫斗者) 环境接口的历史并发数,然而运维并没有做相关的统计,没办法,只能拿到服务器近一个月的 Nginx access 日志,根据正则匹配所有我的接口服务的日志,然后统计每一秒内…

《低代码PaaS驱动集团企业数字化创新白皮书》-平台化加低代码提供破解之道(2)

平台化加低代码提供破解之道 低代码向业务的赋能:以效率和创新为核心,提升组织效率,促进创新,优化体验 通过IDC对大型企业的调研发现,当前拥有100个及以上应用数量的企业已经高达70%;IDC预测 ,2025年&…

〖Python网络爬虫实战⑮〗- pyquery的使用

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费…

数据结构——队列(C语言实现)

队列的概念与结构 队列是一种特殊的线性结构,数据只能在一端插入,数据也只能在另一端进行删除。插入数据的那一端称之为队尾,插入数据的动作称之为入队。删除数据的那一端称之为队头,删除数据的动作称之为出列。队列遵守的是FIFO…

LeetCode 189.轮转数组

文章目录💡题目分析💡解题思路🚩思路1:暴力求解 --- 旋转k次🔔接口源码:🚩思路2:额外开数组🔔接口源码:🚩思路3:三段逆置📍算法设计🔔接口源码&am…

JavaWeb开发 —— Web入门

目录 一、Spring 二、SpringBootWeb快速入门 三、HTTP协议 1. 概述 2. 请求协议 3. 响应协议 四、Web服务器 - Tomcat 1. 介绍 2. 基本使用 3. 入门程序解析 一、Spring ① 官网:http://spring.io ② Spring 发展到今天已经形成了一种开发生态圈&…

2022 idea 从原型创建maven项目框架--以创建niif-processors为列

目录一、idea配置二、下载archetype-catalog.xml文件三、创建设置四、创建成功截图一、idea配置 在如下两张图片花圈的位置添加如下参数 -Dmaven.wagon.http.ssl.insecuretrue -Dmaven.wagon.http.ssl.allowalltrue -Dmaven.wagon.http.ssl.ignore.validity.datestrue 二、下载…

Qt Quick - 导航控件综述

Qt Quick - 导航控件综述一、概述二、StackView控件三、SwipeView控件四、TabBar控件五、TabButton控件一、概述 Qt Quick Controls提供了一系列导航模型。 控件功能Drawer可以用滑动手势打开和关闭的侧滑动面板StackView提供基于堆栈的导航模型SwipeView允许用户通过横向滑动…

面试官:谈谈你对TypeScript有什么了解

TypeScript 相关面试题1.说说你对 TypeScript 的理解?与 JavaScript 的区别是什么特性区别2.说说你对 TypeScript 中类的理解?应用场景?是什么使用方式继承修饰符私有修饰符受保护修饰符只读修饰符静态属性抽象类应用场景3.说说 typescript 的…