〇、前言
在Windows系统上搭建TrinityCore开发环境。
TrinityCore是一个魔兽世界服务端模拟器,我们可以通过TrinityCore来学习大型网络游戏服务端的编写,从中汲取营养来编写我们自己的游戏。
一、前期准备工作
CPU需要支持SSE2指令集 Boost版本大于等于1.59.0 MySQL数据库版本大于等于5.1.0 OpenSSL版本为1.0.x CMake版本大于等于3.3.2 MicroSoft Visual Studio (Community)版本大于等于14 (2015 update 3)
1.1 安装 Git Extensions
注意其中Git、MySYSGit和KDiff这三个软件必须全部安装,安装Git的时候,在路径选择那里选择“RunGit from the Windows Command Prompt”。MySYSGit和KDiff使用默认选项安装即可。
1.2 安装IDE
安装Visual Studio 2015,注意当安装VS2015时,默认是不支持C的,我们需要手动选择Visual C,选择自定义安装,然后将Visual C++选项选中,如下图所示:
1.3 安装MySQL
TrinityCore支持的MySQL版本为5.5和5.6,请勿使用5.7及以上版本。
- 下载安装包
- 在MySQL Configuration配置中,设置用户名为trinity,密码同样为trinity,并且确保该用户拥有localhost域访问权限。
- 建议将MySQL注册为服务,这样数据库就可以随Windows开机启动了。
使用你安装好的数据库管理软件连接数据库,测试数据库是否安装成功。
1.5 安装Boost
下载对应 Visual Studio 2015 的版本:
- 64bit:http://sourceforge.net/projects/boost/files/boost-binaries/1.59.0/boost_1_59_0-msvc-14.0-64.exe/download
- 32bit:http://sourceforge.net/projects/boost/files/boost-binaries/1.59.0/boost_1_59_0-msvc-14.0-32.exe/download
Boost 1.59.0是可以使用的最低版本,推荐使用1.60.0版本。
安装到默认路径(C:\local\boost_1_XX_0),然后添加一个名为“BOOST_ROOT”的环境变量到你的安装路径,比如“C:/local/boost_1_60_0”。确保没有末尾斜杠,如下图所示:
注意:这张图片中的版本号为1_55_0,将它改为你的实际版本号。
1.6 安装CMake
下载cmake-3.6.2-win64-x64.msi 这个版本,不要下载RC (Release Candidate)版本。注意要下载64bit版本。如图所示:
1.7 安装OpenSSL
不要下载light版本,分为32和64位两个版本,下载对应版本即可。我们这里选择64bit版本,如图所示:
注意:不能选择最新版本1.1.0,必须选择1.0.x版本。
如果安装过程中提示没有VisualC++库的话请到网上自行下载安装。
二、代码编译
2.1 从GIT拉取代码
创建一个文件夹,在该文件夹上点击鼠标右键,选择“Git Extensions -> Clone”,如下图所示:
3.3.5a版本仓库地址:
Repository to clone: https://github.com/TrinityCore/TrinityCore
Destination: D:\Trinity\Source
Subdirectory to create: <none>
Branch: 3.3.5
Personal Repository: Yes
6.x版本仓库地址:
Repository to clone: https://github.com/TrinityCore/TrinityCore
Destination: D:\Trinity\Source
Subdirectory to create: <none>
Branch: 6.x
Personal Repository: Yes
我们这里选择3.3.5的仓库拉取代码。
2.2 使用CMake生成VS2015使用的Visual C++ 工程
编译之前在硬盘上建立编译文件目录,比如“D:\Trinity\Build”。
1)运行CMake,如下图所示:
2)点击 Browse Source… -> 选择源码目录(D:/Trinity/Source)
- 点击 Browse Build… -> 选择编译目录(D:/Trinity/Build)
- 点击 Configure
- 确保 Use default native compilers 选项是选中状态
- 选择Visual Studio 14 Win64
- 点击Finish
- 确保Tools是被选中状态。
- 再次点击Configure。
10)点击Generate,VS所需的资源文件已经生成到D:/Trinity/Build目录了。
2.3 使用VS2015编译代码
使用VS2015打开D:/Trinity/Build目录下的TrinityCore.sln文件,经过一段时间的读取,VS加载了TrinityCore整个工程。我们选择菜单中的Build->Configuration Manager选项打开编译配置界面。
设置 Active SolutionConfiguration 为 Release。
设置 Active Solution Platform 为 Win64 (确保上面安装的软件全部实64位的)。
点击 Close 关闭对话框。
在 Solution Explorer 中右键单击 ALL_BUILD 选择 Clean。
清理完毕后再次右键单击ALL_BUILD 选择 Build。
现在就已经开始编译源码了,这个过程要花5-30分钟,视你的电脑配置而定。
完成后会提示:
========== Build: 22 succeeded, 0 failed, 0up-to-date, 0 skipped ==========
你可以在D:\Trinity\Build\bin\Release找到编译好的文件。
想要正常运行程序,你需要如下文件:
- libeay32.dll
- libmySQL.dll
- ssleay32.dll
- worldserver.conf.dist
- worldserver.exe
- authserver.conf.dist
- authserver.exe
libmySQL.dll - C:\Program Files\MySQL\MySQL Server 5.x\lib
libeay32.dll, ssleay32.dll - C:\OpenSSL-Win64\bin
至此,编译完成!
2.4 保持更新
在源码目录(D:\Trinity\Source)上点击右键,选择Git菜单中的Pull(拉取代码的意思)选项。
打开CMake软件,点击Configure,然后点击Generate。
使用VS2015重新编译。
完成!
三、导入数据库并准备资源文件
TrinityCore使用MySQL数据库,其中我们需要建立三个数据库,它们分别是auth、characters和world。
- Auth:权限数据库,存储服务器列表,玩家账户等信息。
- Characters:角色数据库,存储所有角色人物相关的信息。
- World:世界数据库,存储整个魔兽世界的一切信息,包括NPC,怪物,装备,道具,任务,副本等等所有一切。
3.1 下载数据脚本
下载world数据库sql脚本,地址如下:
https://github.com/TrinityCore/TrinityCore/releases/tag/TDB335.61
打开以上网址,选择TDB_full_335.61_2016_04_11.7z下载并解压缩。
3.2 导入数据库脚本
-
执行D:\Trinity\Source\TrinityCore\sql\create\create_mysql.sql。
-
选择auth数据库,执行D:\Trinity\Source\TrinityCore\sql\base\auth_database.sql脚本。
-
选择characters数据库,执行D:\Trinity\Source\TrinityCore\sql\base\characters_database.sql脚本
-
选择world数据库,执行刚刚下载解压缩的TDB_full_world_335.61_2016_04_11.sql脚本。
3.3 保持数据库更新
每次启动worldserver.exe时,会自动执行最新的SQL升级脚本,无需人工干预。
3.4 准备资源文件
除了数据库之外,服务器的运行还依赖以下资源文件:
目录 | 版本 | 是否必须 |
dbc | all | 必选 |
maps | all | 必选 |
vmaps | all | 强烈推荐 |
mmaps | all | 强烈推荐 |
cameras | 3.3.5a only for now | 推荐 |
gt | 6.x only | 必选 |
1)取得资源文件提取工具:
- extractor.bat 批处理文件,我们主要通过这个文件执行命令提取资源文件。
- mapextractor.exe 这个工具负责提取dbc和cameras文件。
- vmap4extractor.exe 这个工具负责提取maps文件。
- mmaps_generator.exe 这个工具负责提取mmaps文件。
- vmap4assembler.exe 这个工具负责提取vmaps文件。
在D:\Trinity\Source\TrinityCore\contrib目录中可以找到extractor.bat,如图所示:
将以上文件拷贝到魔兽世界3.3.5客户端的根目录中。
2)提取资源文件
双击运行extractor.bat,如下图所示:输入1然后回车,这时候会提取dbc和maps文件。
等待提取结束,然后输入2回车,这时候会提取vmaps文件。
等待提取结束,然后输入3回车,这时候会提取mmaps文件,注意该步骤将花费大量时间,如果PC性能一般,可能会用2-3个小时左右。
3)拷贝提取好的资源文件
提取结束后,在魔兽世界客户端根目录会多出5个文件夹,分别是Cameras、dbc、maps、mmaps和vmaps,将他们拷贝到我们编译后的服务端程序根目录中,如下图所示:四、配置网络并启动
4.1 修改 authserver.conf 配置文件
修改authserver.conf.dist为authserver.conf,然后使用文本编辑器打开。
找到数据源配置(MYSQL SETTINGS)
修改LoginDatabaseInfo = “localhost;3306;trinity;trinity;auth”
4.2 修改 worldserve.conf 配置文件
修改worldserve.conf.dist为worldserve.conf,然后使用文本编辑器打开。
同样修改
LoginDatabaseInfo = “localhost;3306;trinity;trinity;auth”
WorldDatabaseInfo = “localhost;3306;trinity;trinity;world”
CharacterDatabaseInfo = “localhost;3306;trinity;trinity;characters”
注意:如果你的数据库是使用的是你自己设定的用户名和密码,请将红色字体对应修改为你自己设定的用户名的密码(红色字体部分前面是用户名,后面是密码)。
4.3 修改服务器IP地址
修改auth库中realmlist表中的address字段为你的公网IP地址,如下图所示:
注意:如果你只是在本机测试,不在外网发布可以忽略这一步骤。
4.4 确认游戏客户端版本号
修改gamebuild字段为你的游戏客户端(国服为13930,台服为12340)。
4.5 启动服务器
运行authserver.exe,这个是登录与网关程序,启动成功如下图所示:
运行worldserver.exe,这个是游戏主程序,启动成功如下图所示:
4.6 创建账号并授予GM权限
在worldserver.exe的DOS窗口中输入如下命令:
- 创建账号命令:
account create <user> <pass>
- 创建账号例子:
account create test test
- 授予GM权限命令:
account set gmlevel <user> 3 -1
- 授予GM权限例子:
account set gmlevel test 3 -1
4.7 修改客户端的连接地址
在客户端根目录建立一个txt文本文件
在里面输入:
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
注意:如果你配置了公网IP地址,这里的127.0.0.1需要修改为你的公网IP地址才可以。
保存该文件,将扩展名改为bat并运行。
恭喜你,经过漫长的工作,你终于可以进入游戏了!这时你可以用刚才创建的GM账号进行游戏!你将在独属于你自己的世界中尽情遨游!
五、其他
5.1 附录
- GM命令大全 https://trinitycore.atlassian.net/wiki/display/tc/GM+Commands
- 日志配置 https://trinitycore.atlassian.net/wiki/display/tc/Logging+Configuration
5.2 其他注意事项
- 如果你想在其他PC上运行TrinityCore,你可能会需要安装Microsoft Visual C++ 2015 Redistributable Package。
- Windows XP 和 Windows 2003 不被支持,请不要做无谓的尝试了。
原创文章,版权归作者刘小平所有,在保留作者姓名与原文地址的情况下允许转载。