TrinityCore 编译安装指南_jinnblue的博客-程序员秘密

技术标签: TrinityCore  游戏服务端  WOW Server  魔兽世界服务端  

简介

《魔兽世界:巫妖王之怒》模拟服务器TrinityCore在Windows下的安装指南,参考官方Wiki的Install Guide

一、Windows 环境需求

  • CPU 支持 SSE2 指令集
  • Boost ≥ 1.66(最新稳定推荐)
  • MySQL ≥ 5.6.0 以及 MySQL 5.7.x
  • OpenSSL ≥ 1.0.x
  • CMake ≥ 3.8.2(最新稳定推荐)
  • MicroSoft Visual Studio (Community) ≥ (2017)(Desktop)

1.安装 Git

  • 安装Git及图形界面TortoiseGit
  • 注意,安装Git时,在路径选择那里选择"RunGit from the Windows Command Prompt"

2.安装 IDE

  • 下载并安装Visual Studio 2019
  • 工作负载选择"使用C++的桌面开发"
  • 若需离线安装,参考VS官方指南:
    vs_community.exe --layout c:\vslayout --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended --lang zh-CN

3.安装 MySQL Community

  • 下载5.7安装包 -> 进入官网 -> 点Download
  • 进入下载页面点最下方的蓝色小字"No thanks, just start my download."
  • 安装快完成时,确认"Launch the MySQL Instance Configuration Wizard"已选择,之后点"Finish"
  • 在Configuration配置时,保持默认设置即可,注意记住用户名和密码,建议注册为服务可随Windows开机启动

4.安装数据库管理软件

  • Navicat Premium
  • MySQL Workbench(MySQL官方出品,安装可选,使用不太友好,是唯一可以建立模型的软件)
  • 通过管理软件连接数据库(HOST/IP为"127.0.0.1"/“localhost”),输入设置的用户名和密码测试是否成功连接

5.安装 Boost

  • 下载Boost,点击下方连接"Prebuilt windows binaries"(当然也可自行编译,耗时稍长)
  • VS 2019 适配Boost的最小版本为1.70,选择msvc-14.2
  • 安装到默认路径(C:\local\boost_1_xx_0),然后将路径添加到名为"BOOST_ROOT"的环境变量中,比如"C:/local/boost_1_70_0".确保没有末尾斜杠,如下图所示:
    boost环境变量设置

6.安装 CMake

  • 下载并安装CMake ,只选择Latest Release版本,推荐使用64bit版本
  • 如有多个版本的MySQL server,使用特定版本需将cmake指向该目录.将MySQL安装目录添加到环境变量"MYSQL_ROOT",如"c:/wamp/bin/mysql/mysql5.7.19".注意使用"/“而非”\"

7.安装OpenSSL

  • 下载OpenSSL,推荐64bit,选择"Win64 OpenSSL v1.1.x",不要选择"Light"版本
  • 安装过程中若提示没有Visual C++库,请到网上自行下载安装.

8.可选

  • 若在不同PC上编译/运行Trinity,需安装Visual C++ 2017
  • 注意:TrinityCore不能在Windows XP / Windows 2003 上运行

二、源码拉取和编译

1.从GIT拉取源码

  • 配置TortoiseGit,如有其他问题请参考Git教程
    • 开始菜单 -> 找到并打开"TortoiseGit\PuTTYgen" -> 选择"RSA" -> 点击"Generate" -> 随意晃动鼠标直到跑完进度条 -> 点"Save private key"保存私钥(p) -> 复制Key下方文本框中的Public Key
    • 登录GitHub -> 点开用户头像下拉框选择"Settings" -> 点"SSH and GPG keys" -> 点"New SSH Key"
    • "Title"输入标题(p) -> "Key"将之前PuTTYgen中生成的Public Key复制进去 -> 点"Add SSH Key"完成
    • 开始菜单 -> 找到并打开"TortoiseGit\Settings" -> 点"NetWork" -> 点"SSH Client"的"Browse…" -> 进入"C:\Program Files\TortoiseGit\bin"目录,选"TortoiseGitPlink.exe"
  • 打开Trinity源码库 -> 点"Clone and download" -> 复制连接
  • 创建目录如"D:\Trinity" -> 进入后点击鼠标右键,选择"Git Clone…"
    • “Directory:“填入"D:\Trinity\Source” -> 选中"Load Putty Key"并点”…“选中步骤1中保存的私钥(p) -> 点"OK”
  • 等待下载完成后进入"Source"目录 -> 点右键选"TortoiseGit" -> “Switch/Checkout…” -> “Branch"选分支3.3.5 -> 点"OK” -> 切换到3.3.5a版本对应服务端源码

2.使用CMake配置和生成Visual C++解决方案

  • 编译前先建立编译文件目录,比如"D:/Trinity/Build".
  • 运行CMake -> 点击 Browse Source… -> 选择源码目录"D:/Trinity/Source"
  • 点击 Browse Build… -> 选择编译目录"D:/Trinity/Build"
  • 点击 Configure -> 确保"Use default native compilers"被选中 -> 选"Visual Studio 16 2019" -> 选"x64" -> 点Finish
  • 确保"Tools"被选中(用于解包生成服务器所需资源),之后更新源码重新编译源码时可不选
  • 再次点击Configure -> 点击Generate,生成VS解决方案所需的相关文件到"D:/Trinity/Build"中
  • 点击 Open Project, 打开VS2019并打开项目源码

3.编译源码

  • 等待VS2019加载完成"D:/Trinity/Build/TrinityCore.sln"
  • 选择菜单中的"生成->配置管理器"打开编译配置界面 -> "活动解决方案配置"设为Release -> "活动解决方案平台"设为x64 (需确保之前安装的软件全部是64位的) -> “关闭”
  • 在 “解决方案资源管理器” 中右键单击 ALL_BUILD 选择 “清理” -> 完毕后再次右键单击 ALL_BUILD 选择 “生成”, 即开始编译源码了,约需3~30分钟,视电脑配置而定.
  • 编译成功后,可在"D:\Trinity\Build\bin\Release"中找到编译好的文件
  • 想要正常运行程序,需要如下文件:
    • libmySQL.dll – 从 “C:\Program Files\MySQL\MySQL Server 5.x\lib” 手动复制到目录
    • libeay32.dll ; ssleay32.dll – 从 “C:\OpenSSL-Win64\bin” 手动复制到目录
    • worldserver.conf.dist ; worldserver.exe ; authserver.conf.dist ; authserver.exe 由编译生成

4.保持源码更新

  • 在源码目录"D:\Trinity\Source"中点击右键 -> 选择"Git Sync" -> “Pull”
  • 打开CMake -> Configure -> Generate -> Open Project 重新编译
  • 运行 worldserver, 如果有sql脚本更新(可在命令行窗口看见)

三、提取资源文件 DBC Maps VMaps MMaps

  1. 将"D:\Trinity\Build\bin\Release"中下述4个可执行文件复制到"WOW客户端"(3.3.5)根目录中

    • mapextractor.exe 提取dbc和cameras文件
    • vmap4extractor.exe 提取maps文件
    • mmaps_generator.exe 提取mmaps文件
    • vmap4assembler.exe 提取vmaps文件
  2. 复制"D:\Trinity\Source\contrib\extractor.bat"批处理文件到客户端根目录中 -> 右键点击 extractor.bat -> 管理员模式运行

  3. 输入1后回车,提取dbc和maps -> 等待提取结束后输入2回车,提取vmaps文件 → 3提取mmaps(耗时超过1小时,不可中断)

  4. 提取结束后,将Cameras、dbc、maps、mmaps和vmaps 移动至服务端程序根目录"D:\Trinity\Build\bin\Release"中

四、安装数据库

  1. 打开"D:\Trinity\Source\sql\create\create_mysql.sql" -> 设定用户名和密码 -> 执行脚本,创建相关数据库:

    • Auth:帐户数据库 - 保存用户名,密码,GM访问权限,区服信息等
    • Characters:角色数据库 - 保存角色,背包,银行物品,拍卖行信息等
    • World:世界数据库 - 保存游戏体验内容,如npc,任务,物品信息等
  2. 下载数据库脚本,从官方源码库下载sql

    • 注意不同的数据库脚本对应不同的分支,如 “TDB 335.xxxxx” 对应分支3.3.5
    • 下载后缀为 “.7z” 的文件, 需要 7zip 解压
    • 将解压后的SQL脚本复制到worldserver.exe相同根目录下"D:\Trinity\Build\bin\Release"
    • 注意: 不需手动导入任何数据库;如计划手动导入,则需禁用配置文件"worldserver.conf"上的Updates.AutoSetup
  3. 保持数据库更新

    • 更新源码后,每次启动"worldserver.exe"时,会自动执行最新的SQL升级脚本,无需人工干预.

五、Worldserver 和 Authserver配置

  1. 对于几乎所有的基本设置场景,localhost (127.0.0.1) IP设置 以及 bindip(0.0.0.0) 默认值都应保持不变

  2. 修改 authserver.conf 配置文件

    • 去掉authserver.conf.dist的".dist"后缀,用文本编辑器如Notepad++打开,语言设为YAML
    • 找到数据源"MYSQL SETTINGS"配置域,修改 LoginDatabaseInfo = “localhost;3306;trinity;trinity;auth”
  3. 修改 worldserve.conf 配置文件

    • 去掉worldserve.conf.dist的".dist"后缀 -> 打开 -> 找到"CONNECTIONS AND DIRECTORIES"配置域,修改:
      • LoginDatabaseInfo = “localhost;3306;trinity;trinity;auth”
      • WorldDatabaseInfo = “localhost;3306;trinity;trinity;world”
      • CharacterDatabaseInfo = “localhost;3306;trinity;trinity;characters”
    • 注意:如果你自己设定了用户名和密码,将斜体部分改为你的设定(用户名,密码).
  4. 修改服务器IP地址(本机测试可忽略该步骤)

    • 为Internet连接配置auth数据库的realmlist表,确保 authserver 将进入的客户端连接指向你实际的区服地址
    • 运行数据库管理工具 -> 打开auth数据库并 -> 打开realmlist表 -> 根据需要设置 address 字段
      • 局域网(192.168.x.x) - WoW与TrinityCore在同一网络(路由器)上的不同计算机上,改为服务器IP地址
      • 本地localhost(127.0.0.1) - WoW与TrinityCore在同一台计算机上且只有你在连接它,保持默认配置
      • 外部IP — 如需其他人能连接你的服务器,访问地址获得你的外部IP地址
  5. 将"auth.realmlist.gamebuild"字段设为你的WoW客户端版本号(国服为13930,台服为12340).

六、启动服务器

  1. 运行 authserver.exe - 登录与网关程序

    • 允许你输入用户名和密码来连接到区服选择界面
  2. 运行 worldserver.exe - 游戏主程序

    • 允许您连接到所选区服本身,一旦进入游戏,如果不希望其他人连接到服务器,则可以安全地关闭authserver
  3. 创建账号并授予GM权限,在worldserver.exe的DOS窗口中输入如下命令:

    • 创建账号: account create , 示例: account create test test
    • 授予GM权限: account set gmlevel 3 -1, 示例: account set gmlevel test 3 -1

七、配置WoW客户端

  1. 进入客户端"World of Warcraft\Data\zhCN"目录 -> 打开"realmlist.wtf"文件 -> 配置为五.4步骤中的IP

    • 将第一行更改为:set realmlist <realmlist表中的IP> 示例: realmlist 127.0.0.1
    • (可选)如果用 WoW launch.exe 运行客户端,必须将set patchlist更改为与realmlist相同的ip/dns名称
  2. 打开游戏,输入刚才创建的GM账号,在艾泽拉斯的世界中尽情遨游吧!

GM命令大全

日志配置

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jinnblue/article/details/98730630

智能推荐

阿里云域名购买与DNS解析教程_NicolasLearner的博客-程序员秘密

教程目录0x00 教程内容 0x01 购买[阿里云](https://l.gushuji.site/aliyun)域名 * * * * 1. 校验域名是否已被注册 * 2. 购买域名 0x02 DNS域名解析 * * * * 1. 云解析DNS界面操作 * 2. 云解析DNS设置 0x03 彩蛋之云服务器操作 * * * * 1. 修改实例名称 0xFF 总结0x00 教程内容购买阿里云域名 DNS域名解析0x01 购买阿里云域名1. 校验域名是否已被注册a. 下面是查询

Delphi XE 10.3 使用ISuperObject解析Json数据_【重楼】的博客-程序员秘密

Java、Php等语言中都有成熟的框架来解析Json数据,可以让我们使用很少的代码就把格式化好的json数据转换成程序可识别的对象或者属性,同时delphi中也有这样的组件来实现此功能,即IsuperObject。如果还没有这个组件的请在网上搜索下载或者在下面留言处留下你的邮箱向本人索取。  下面先说一下ISuperObject中几个常用的函数functionSO(const s: SOString = ‘{}’): ISuperObject; overload;此函数传入json数据字符串,并..

编程之美--最大子矩阵 hdu1081_weixin_33901641的博客-程序员秘密

#include&lt;stdlib.h&gt;#include&lt;iostream&gt;#include&lt;stdio.h&gt;#include&lt;vector&gt;#include&lt;time.h&gt;#include&lt;set&gt;#include&lt;map&gt;#include&lt;assert.h&gt;#include&lt;string&gt;#...

斯坦福CS224n NLP课程【六】——依存分析_斯坦福依存句法分析_桐原因的博客-程序员秘密

首先了解一些术语句法 syntax语法 grammar依存关系 dependency parsing依赖语法 dependency grammars解析 parsing两种不同的观点对于语言结构phrase structure grammar 短语结构语法 也称为上下文无关语法依存语法:通过找到句子当中每一个词所依赖的部分来描述句子结构 如果一个词修饰另一个词 或者 一个词是另外一些词的一个论证 那么它就是那个词的依赖 对于语义模糊的句子可以使用依存语法进行分析..

阿里云服务器上安装RabbitMq_三月白丁的博客-程序员秘密

1. 安装erlang环境yum install erlang2. 下载rpm包wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el7.noarch.rpm3. 下载完成后安装yum install rabbitmq-server-3.6.15-1...

随便推点

Accept是又产生一个Socket端口吗? _思月行云的博客-程序员秘密

Accept是又产生一个Socket端口吗?      要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件操作一样,只要写过就一定知道。       对于网络编程,我们也言必称TCP/IP,似...

oracle RAC的常用维护操作_data eudemon的博客-程序员秘密

  1. 查看各资源状态(nodeapps节点应用程序,ASM实例,数据库实例等):[[email protected] u01]# su - grid ITPUB个人空间/E6dV0Cu3dZ#q,d[[email protected] ~]$ crs_stat -t   (命令兼容10g)ITPUB个人空间VNg7\6fej*Y%uName          Type          Target    S...

使用IDEA查看POM依赖关系_liuhehe321的博客-程序员秘密

使用Intellij idea,打开的pom.xml文件,在pom文件内容上右键Diagrams–Show Dependencies,就可以看到了  

通过WMI获取系统信息_nextop88的博客-程序员秘密

通过WMI获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号Delphi通过WMI获取系统信息uses ActiveX, ComObj;function GetWMIProperty(WMIType, WMIProperty: string): string;var  Wmi, Objs, Obj: OleVariant;  Enum: IEnum

web高德地图路线规划(多条)_高德地图web端路线_想要飞翔的小猪的博客-程序员秘密

由于这个是官方的api,官方中也有案例,这里就不细说了,直接上代码&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; &lt;meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=d

推荐文章

热门文章

相关标签