软件需求
Processor with SSE2 support
Boost ≥ 1.73 (latest stable recommended)
MySQL ≥ 5.7
OpenSSL = 1.1.x
CMake ≥ 3.18.4 (latest stable recommended)
MS Visual Studio (Community) ≥ 16.11.11 (2019) (Desktop) (Not previews)
1. Visual Studio 2019
VS2019 不再默认安装C++编译器,需要手动选择
如果你的操作系统是Windows 10 Creator/Anniversary Edition,还需要额外安装 Windows 10 SDK。
2. MySQL 8.0
下载地址:https://dev.mysql.com/downloads/installer/
一次性把server、连接器和workbench都装上
3. Boost 1.73
64bit: https://sourceforge.net/projects/boost/files/boost-binaries/1.73.0/boost_1_73_0-msvc-14.2-64.exe/download
32bit: https://sourceforge.net/projects/boost/files/boost-binaries/1.73.0/boost_1_73_0-msvc-14.2-32.exe/download
!添加环境变量:BOOST_ROOT,值为 “C:/local/boost_1_72_0”,请根据你实际的安装地址修改
4. CMake
正常下载安装就行: https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1-windows-x86_64.msi
5. OpenSSL
下载安装: http://slproweb.com/download/Win64OpenSSL-1_1_1s.msi
!注意,安装的时候要选择 The OpenSSL binaries (/bin) directory
内核安装
1. 下载解压源代码 (3.3.5分支)
2. CMake生成工程文件
2.1 可能出现的错误:
2.1.1 如果CMake找不到MySQL,则需要设置MySQL_INCLUDE_DIR=C:/XX/MySQL/MySQL Server 5.XX**/INCLUDE**和MySQL_LIBRARY=C:\XX/MySQL/MySQL Server5.XX/lib_XX/libmysql.lib。XX取决于您是以32位还是64位模式编译,以及您选择的mysql版本。
2.1.2 如果您收到链接器错误(例如“error LNK2019:unresolved external symbol mysql_server_init”),请确保mysql_LIBRARY设置为libmysql。与编译模式匹配的lib(x64与32位)。(如果在CMake中没有看到MYSQL字段,请勾选“高级”框)。
2.1.3 如果出现CMake找不到OpenSSL的错误:选中“高级”复选框
在列表中找到两个OPENSSL条目,并指向正确的目录:
OPENSSL_ROT_DIR是安装路径(默认情况下,C:\OPENSSL-Win32或C:\OPENSSL-Win64)
OPENSSL_CLUDE_DIR是安装路径中的“INCLUDE”文件夹(默认情况下,C:\OPENSSL-Win32/INCLUDE或C:\OPENSSL-Win64/INCLUDE)
3. 编译源码
进去在刚才选择的工程生成目录,会找到一个TrinityCore.sln文件,使用VS2019打开它,通常情况下,直接开始编译就能成功。生成好的二进制文件在\bin\RelWithDebInfo或者\bin\Debug里,需要再拷贝依赖库到这个目录:
libssl-1_1-x64.dll
libcrypto-1_1-x64.dll 这两个在 C:\OpenSSL-Win64\bin (取决于你的安装路径)
libmysql.dll 在C:\Program Files\MySQL\MySQL Server 8.0\lib
配置
1. 提取数据
把以下5个文件拷贝到335目录:
mapextractor.exe
mmaps_generator.exe
vmap4extractor.exe
vmap4assembler.exe
extractor.bat
前四个在二进制文件所在目录,第五个在源码\contrib里
运行extractor.bat,选择4,把所有数据提取出来。
然后把生成好的目录dbc、maps、vmaps拷贝到二进制文件所在目录
2. 数据库
运行以下脚本 /sql/create/create_mysql.sql
\sql\base\auth_database.sql \sql\base\characters_database.sql
然后把TrinityCore发布的335 TBD恢复到本地。
3. 设置TrinityCore地址
在335目录里找到Config.wtf
SET realmList “127.0.0.1”
SET patchlist “127.0.0.1”
找到这两行,改成上面这样
4. 配置文件
在二进制文件目录找到这两个文件并删掉后缀.dist
authserver.conf.dist worldserver.conf.dist
编辑这两个文件,修改数据库相关的内容
authserver.conf里
LoginDatabaseInfo = “127.0.0.1;3306;root;root;auth”
worldserver.conf里
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”
然后,启动authserver.exe和worldserver.exe就行了