说起TrinityCore,可能知道的人不多,但是说起MaNGOS(芒果)知道的人应该就不少了。MaNGOS是一个魔兽私服服务器端,TrinityCore继承自TrinityCore并且做了优化,一直在更新,实属难能可贵,尤其是对于游戏服务器开发人员来说,更是一份不可多得的学习资料。
看看官网上这段话:“TrinityCore is an MMORPG framework that's built using C++, and using a back-end of MySQL for the DB content. Trinity was at one point a merger of MaNGOS with many patches submitted by users, that is no longer the case. Trinity is an individual project with a diverse development team, We love to hear from our users too, whether you want to give words of encouragment or if you have code for us to merge into the repo. Trinity has been cleaned up a lot, and will continue to be cleaned up and optimized over time. "
下面来看看怎么搭建TrinityCore的运行环境,网上可以搜到TrinityCore的一键安装,但是我们的目的是为了学习TrinityCore的代码,所以我们会自己编译server端。(向伟大的”墙“致敬,dropbox被封掉导致TrinityCore的数据库文件无法下载,还好我使用云盘搜索大法,惊奇的搜到了某位兄弟分享的一个数据库文件)用到的所有文件我都会给出国内云盘的分享地址。
注:目的是为了搭建一个可调试的server端,所以选择比较老的版本TrinityCore3.3.5,并且不会升级。
以下都是在win下进行,搭建32为TrinityCore运行环境。
环境搭建:
1:安装GitExtensions(一定要安装,虽然源码我也会提供,cmake需要用到),确保Git, MySYSGit, and KDiff三个都要选择安装,在git安装过程中选择”Run Git from the Windows Command Prompt“
2:安装vs2013,不多说了,地球人都知道
3:安装mysql,要记住自己设置的root的密码,字符集选择utf8,安装中选择加入环境变量。
4:boost,直接使用我上文提供的编译好的安装文件即可,安装完成后,设置环境变量BOOST_ROOT=你安装的boost的根目录
5:cmake,一路默认安装
6:openssl,其中有一步需要留意,就是会让选择把openSSL的dll拷贝到哪,要选择The OpenSSL binaries (/bin) directory
7:zeroMQ,一路默认安装
上面7个步骤安装完成之后,开始编译TrinityCore。
1:解压TrinityCore-TDB335.57.zip,TDB_full_335.57_2144_10_19.7z,并且在它们的同级目录下建立build目录,所以看起来是这样的。
2:打开cmake-gui,如下配置
然后点击configure,选择vs2013编译器,然后会开始生成vs2013工程文件,完成后如下
如果你看了官方教程,它会让你选择TOOLS,然后重新configure一次,选择TOOLS是为了生成从客户端提取配置文件的工具,所有配置文件我都会打包送出,所以我们可以跳过官方这一步,直接Generate即可。
3:进入build目录,打开TrinityCore.sln,选择release模式,编译。
编译完成后,进入build\bin\release目录,会看到
worldserver.conf.dist
worldserver.exe
authserver.conf.dist
authserver.exe
这四个文件,把现在的config内的几个压缩文件解压到build\bin\release目录,然后把
libmySQL.dll - C:\Program Files\MySQL\MySQL Server 5.x\lib
libeay32.dll, ssleay32.dll - C:\OpenSSL-Win32\bin
libzmq-v120-mt-4_0_4.dll - C:\Program Files\ZeroMQ 4.0.4\bin
这4个dll也拷贝到build\bin\release目录内,现在build\bin\release目录如下
4:导入数据库
导入TrinityCore-TDB335.57\sql\create\sql_create.sql
选择auth数据库,导入TrinityCore-TDB335.57\sql\base\auth_database.sql
选择characters数据库,导入TrinityCore-TDB335.57\sql\base\characters_database.sql
选择world数据库,导入TDB_full_335.57_2014_10_19\TDB_full_335.57_2014_10_19.sql
选择world数据库,导入TrinityCore-TDB335.57\sql\updates\world\2014_10_19_00_world.sql
NOTE!!!,导入数据库时候,查看auth数据库的realmlist表,可以看到gamebuild字段为12340,一定要改为13930才行,
UPDATE realmlist SET gamebuild=13930 WHERE id=1;
如果不改的话,客户端可以看到服务器显示为离线状态,无法登录(我会给你我的吐血经历),分析见这里http://blog.csdn.net/qq575787460/article/details/41446403
5:修改server端配置
进入bin\build\release目录,authserver.conf.dist到新文件authserver.conf,拷贝worldserver.conf.dist到新文件worldserver.conf
打开authserver.conf,修改第140行LoginDatabaseInfo = "127.0.0.1;3306;root;root;auth",其中root,root是我的数据库的用户名root,密码也是root(自行修改)
打开worldserver.conf,修改93---95三行
LoginDatabaseInfo = "127.0.0.1;3306;root;root;auth"
WorldDatabaseInfo = "127.0.0.1;3306;root;root;world"
CharacterDatabaseInfo = "127.0.0.1;3306;root;root;characters"
6:修改客户端配置文件
确保客户端已经打补丁到了3.3.5.13930版本,打开Data\zhCN\realmlist.wtf,修改前两行
set realmlist 127.0.0.1
set patchlist 127.0.0.1
7:ok,现在已经搭建成功了,启动authserver和worldserver,worldserver启动成功后,可以输入命令
account create username password创建一个帐号,打开客户端,使用该帐号即可登录
放一张图片吧