ad208三国

 找回密码
 加入
搜索
热搜: 活动 交友 discuz
查看: 1107|回复: 7

魔兽世界单机版开源的TrinityCore架设源码

[复制链接]
发表于 2024-4-1 14:10:25 | 显示全部楼层 |阅读模式

pc2g,电脑好游戏
作者:雪风 转载自ttps://www.zhihu.com/question/435119248/answer/3320234536

这里是最新版源码编译安装教程,适合程序员或动手能力强的同学,否则还是用国内流传的各种傻瓜端吧(傻瓜端的优势是适合非专业人士,但代码一般不是最新的,可能有更多的BUG,其中也容易有种种私货,但也有优化的体验更好),如果你不仅是动手能力强的程序员,英文水平也不错,还可以直接从以下官方网站查看英文原版指南。
准备工作
https://trinitycore.info/install/requirements/windows
支持的Windows操作系统:Windows 10 1903 (19H1) 及其服务器版本(完全更新至 2019 年)及更高版本。
软件要求
软件要求
Boost ≥ 1.78(建议使用最新稳定版本)http://www.boost.org/
MySQL ≥ 5.7(强烈推荐使用 8.0 版本)https://dev.mysql.com/downloads/mysql/8.0.html
OpenSSL ≥ 1.1.x(注意和TC不同,AC最高只能用3.0版本)http://www.slproweb.com/products/Win32OpenSSL.html
CMake ≥ 3.18.4(建议使用最新稳定版本)https://cmake.org/download/
MS Visual Studio(Community 版本)≥ 17.4(2022 年)(桌面版)(请勿使用预览版,需勾选使用 C++ 的桌面开发)
https://visualstudio.microsoft.com/downloads/

Git(服务端源码管理)https://git-scm.com/download/win
HeidiSQL(数据库管理工具)http://www.heidisql.com/download.php


 楼主| 发表于 2024-4-1 14:11:12 | 显示全部楼层
注意事项:Boost
Boost推荐安装到默认位置(通常是 C:\local\boost_1_XX_0\),在“系统”变量中添加一个名为“BOOST_ROOT”的环境变量,其值为您的 Boost 安装目录,例如 "C:/local/boost_1_83_0"。重要的是使用斜杠 "/",而不是反斜杠 "\" 指向目录。(确保它没有尾随斜杠(路径的末尾)。


OpenSSL
下载64位版本,并根据您安装的 MySQL 版本,应选择不同的 OpenSSL 版本: - 对于 MySQL 8.0.34 及更新版本,请使用 OpenSSL 3。 - 对于 MySQL 8.0 到 8.0.33,请使用 OpenSSL 1.1.1。
通过查找最新的 Win64 OpenSSL 版本,找到非 "light" 版本的64位版本,示例:Win64 OpenSSL v3.1.2
在安装 OpenSSL 时,在选择要复制 OpenSSL DLLs 的位置时,请选择 The OpenSSL binaries



 楼主| 发表于 2024-4-1 14:11:34 | 显示全部楼层
作者:雪风
链接:https://www.zhihu.com/question/435119248/answer/3320234536
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

编译源码
在 Visual Studio 中,浏览到 C:\Build 文件夹,并使用 Visual Studio Community 打开 TrinityCore.sln。
您可以在 CMake 窗口中使用 [Open Project] 按钮直接打开解决方案到 VS。
在顶部的菜单上,单击 Build,然后选择 Configuration Manager。
将 Active Solution Configuration 设置为 RelWithDebInfo

右键单击 ALL_BUILD,然后选择 Build(或者转到 Build 菜单并单击 Rebuild Solution (Ctrl+Alt+F7))。

编译时间因计算机而异,您可以预期它在 5 到 30 分钟之间。如果在编译过程中被要求“Reload build files”,请执行此操作。当构建完成时,您将找到类似于下面的消息(数字可能不同)。
========== Build: 22 succeeded, 0 failed, 0 up-to-date, 1 skipped ==========
你将在 C:\Build\bin\RelWithDebInfo 或 C:\Build\bin\Debug 文件夹中找到新编译的二进制文件。这些文件最终将用于按照此说明运行服务器。
为了使核心正常运行,您需要以下文件:
3.3.5a
  • authserver.exe
  • authserver.pdb
  • authserver.conf.dist
  • worldserver.exe
  • worldserver.pdb
  • worldserver.conf.dist
  • libmysql.dll
  • legacy.dll
  • libcrypto-3-x64.dll
  • libssl-3-x64.dll
master (10.x)
  • bnetserver.exe
  • bnetserver.pdb
  • bnetserver.conf.dist
  • bnetserver.cert.perm
  • bnetserver.key.perm
  • worldserver.exe
  • worldserver.pdb
  • worldserver.conf.dist
  • libmysql.dll
  • legacy.dll
  • libcrypto-3-x64.dll
  • libssl-3-x64.dll
  • openssl_ed25519.dll



 楼主| 发表于 2024-4-1 14:12:44 | 显示全部楼层
Windows 服务器设置
https://trinitycore.info/en/inst ... indows-Server-Setup
步骤 1
进入 (Drive):\Build\bin\Release(或 Debug 或 RelWithDebInfo*)文件夹,将下面信息框中显示的文件复制到您的根 World of Warcraft 文件夹中:
对于 3.3.5 版本,这是 Wow.exe 和 Data 文件夹的所在位置; 对于 master 版本,这是 'World of Warcraft Launcher.exe' 和 Data 文件夹的所在位置
  • mapextractor.exe
  • mmaps_generator.exe
  • vmap4extractor


作者:雪风
链接:https://www.zhihu.com/question/435119248/answer/3320234536
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • vmap4assembler.exe
3.3.5版中文客户端可以从这里下载:
  • https://www.wowdl.net/client/World-of-Warcraft-3.3.5a.12340-zhCN (纯净版,但少了巫妖王之怒相关动画文件,可以从其它端中补)
  • https://wwiw.lanzouy.com/iQwdt1efztch (包括多玩插件的三方端,动画齐全)
步骤 2
进入 (Drive):\TrinityCore\contrib 文件夹,将 "extractor.bat" 复制到您的根 World of Warcraft 文件夹中(与之前的文件一起)。

步骤 3
运行 "extractor.bat" 并选择您的提取选项。对于全新设置,应选择选项 4 - 提取全部。
这需要的时间取决于工具构建的模式和可用 CPU 核心的数量。 对于完全提取,根据硬件不同,可能需要从不到 15 分钟到数小时的时间。(Master 版本的时间比 335 版本长得多的多的多的多的多……)



重要注意事项:
  • dbc/db2、maps 和 vmaps 是使服务器正常运行所需的!
  • 不要尝试停止 vmaps 提取过程。当它打印 "Press any key..." 时,表示完成。它将创建两个新文件夹:buildings



 楼主| 发表于 2024-4-1 14:14:59 | 显示全部楼层
数据库安装
https://trinitycore.info/en/install/Database-Installation
数据库安装
下载数据库
从 TrinityCore 下载页面下载最新的完整数据库编译。
https://github.com/TrinityCore/TrinityCore/releases

寻找您寻找的分支的最新版本。命名遵循一个简单的模式 - TDB(TrinityCore 数据库的缩写),数字表示的游戏版本,创建年份和月份,附有一个月份的发布编号。
例如:TDB 335.21081 - 此数据库适用于 2021 年 8 月创建的 3.3.5 分支(巫妖王之怒),发布编号为 1。
对于 3.3.5 分支,请寻找最新的 TDB 335. 数据库。3.3.5 遵循每月发布完整数据库的周期。 对于 master 分支,请寻找最新的非 335 下载。Master 没有遵循定期发布的计划,因此数据库下载的版本号可能与当前支持的游戏版本不匹配。但仍然是正确的下载。 找到所需版本后,点击 "Assets" 展开附加文件列表,并下载列表顶部的 .7z 文件。在上面的示例中,这将是 “TDB_full_world_335.21081_2021_08_15.7z”。
在 MySQL 中创建 TrinityCore 数据库
要创建 Trinity 需要的 MySQL 数据库,您需要使用 mysql 客户端之一执行以下 MySQL 查询:
对于 3.3.x: https://github.com/TrinityCore/TrinityCore/blob/3.3.5/sql/create/c作者:雪风
链接:https://www.zhihu.com/question/435119248/answer/3320234536

  1. CREATE USER 'trinity'@'localhost' IDENTIFIED BY 'trinity' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;

  2. GRANT USAGE ON * . * TO 'trinity'@'localhost';

  3. CREATE DATABASE `world` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  4. CREATE DATABASE `characters` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  5. CREATE DATABASE `auth` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  6. GRANT ALL PRIVILEGES ON `world` . * TO 'trinity'@'localhost' WITH GRANT OPTION;

  7. GRANT ALL PRIVILEGES ON `characters` . * TO 'trinity'@'localhost' WITH GRANT OPTION;

  8. GRANT ALL PRIVILEGES ON `auth` . * TO 'trinity'@'localhost' WITH GRANT OPTION;

  9. reate_mysql.sql
复制代码


对于 master: https://github.com/TrinityCore/TrinityCore/blob/master/sql/create/create_mysql.sql

  1. CREATE USER 'trinity'@'localhost' IDENTIFIED BY 'trinity' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;

  2. GRANT USAGE ON * . * TO 'trinity'@'localhost';

  3. CREATE DATABASE `world` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  4. CREATE DATABASE `characters` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  5. CREATE DATABASE `auth` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  6. CREATE DATABASE `hotfixes` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  7. GRANT ALL PRIVILEGES ON `world` . * TO 'trinity'@'localhost' WITH GRANT OPTION;

  8. GRANT ALL PRIVILEGES ON `characters` . * TO 'trinity'@'localhost' WITH GRANT OPTION;

  9. GRANT ALL PRIVILEGES ON `auth` . * TO 'trinity'@'localhost' WITH GRANT OPTION;

  10. GRANT ALL PRIVILEGES ON `hotfixes` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
复制代码

您可以使用 MySQL 客户端或 MySQL 命令行界面(CLI)执行此操作。
在运行核心之前,您需要使用 MySQL 客户端或 MySQL CLI 使用一个 MySQL root 帐户运行其中一个文件(仅使用 MySQL root 导入其中一个文件,绝不要以 root 或管理员身份运行核心)。
提示:编辑这两个文件,将默认密码更改为其他内容以提高安全性(记得编辑配置文件以使用新密码)。
默认情况下,Trinity 需要运行在 3.3.5 分支的三个数据库,以及 master 分支需要运行四个数据库,名称分别为 - auth、characters、world 和 hotfixes(仅 master 分支)。
如果您已经在使用这些数据库,您需要编辑 create_mysql.sql 文件和服务器配置文件,以避免数据丢失或在设置数据库时出错,使用不同的数据库名称:
  • auth - 包含帐户数据 - 用户名、密码、GM 访问、领域信息等。
  • characters - 包含角色数据 - 创建的角色、库存、银行物品、拍卖行、工单等。
  • world - 包含游戏体验内容,如NPC、任务、物体等。
  • hotfixes(仅限 master 分支) - 包含尚未添加到核心或其他官方数据库中的修复。




 楼主| 发表于 2024-4-1 14:16:07 | 显示全部楼层
填充 MySQL Trinity 数据库
从解压的 7z 文件夹中复制以 "TDB_world_" 和 "TDB_hotfixes_"(hotfixes 命名的文件仅限于 master 分支)开头的 SQL 文件到 worldserver 二进制文件(在 Linux 或 macOS 上是 worldserver,Windows 上是 worldserver.exe)所在的目录。(不要重命名这些文件,否则自动设置将失败)
注意:您不需要手动导入任何数据库,只需创建用户的文件。如果您计划手动导入数据库,您需要在配置文件中禁用自动更新器。请注意,这对新用户来说是不推荐的。
如果您计划更改默认的 MySQL 用户名和密码,请确保在相同的配置文件中(authserver

(仅限 3.3.5a)/bnetserver
(仅限 master 分支)/worldserver.conf)的“连接和目录”下设置了有效的数据库登录信息和要在其中使用的表名称。
请注意,数据库尚未创建。您在配置中设置的名称将用于创建的数据库。
启动 worldserver
,当它询问是否要创建数据库时按 Enter 键。在完成此步骤之前,请不要启动您的 Authserver/Bnetserver。

  • 如果出现错误,您可能想要检查 worldserver.conf 中的 mysql 登录凭据并阅读错误消息,因为它可能会告诉您该怎么做。
  • 您还可能已删除或移动了用于编译服务器的源文件夹。在这种情况下,您应该在 worldserver.conf 的“连接和目录”下设置名为 "SourceDirectory" 的设置,以指向您移动或下载的源文件夹。
服务器创建数据库后将查找 dbc 文件、maps、mmaps 和 vmaps,如果找不到,它将退出。
如果您在运行时更改了 reamlist 表,则需要重新启动服务器 authserver/bnetserver。


 楼主| 发表于 2024-4-1 14:17:43 | 显示全部楼层
网络配置
如果是纯单机运行,请跳过此部分。
Worldserver 和 Authserver 配置
对于几乎所有基本设置方案,应该保持默认的本地主机(127.0.0.1)IP设置不变。默认的绑定 IP(0.0.0.0)也应该保持不变。
以便来自互联网的客户端能够找到您的服务器,您必须从您的路由器/防火墙转发或打开端口 3724(3.3.5a / 4.3.4 authserver(legacy))和 8085(3.3.5a, 4.3.4 worldserver(legacy)),以及 1119、8085、8086(4.3.4 TCPP)和 1119、8081
8085、8086(仅适用于 master 版本),如果计划拥有不同版本的服务器,则需要为其他版本使用不同的 worldserver 端口。
Realmlist 表
您需要确保您的 authserver / bnetserver(6.x 及更高版本)应用程序将传入的连接定向到您的领域。打开 auth 数据库并找到 realmlist 表。您需要根据自己的需求编辑address字段。
启动服务器
https://trinitycore.info/en/install/Final-Server-Steps
运行 Authserver\Bnetserver
运行 authserver(master 分支上为 bnetserver)以启动您的服务器。
提示:authserver(master 分支上为 bnetserver)允许您输入用户名(master 分支上为电子邮件)/密码以连接到领域(游戏服务器


  1. 作者:雪风
  2. 链接:https://www.zhihu.com/question/435119248/answer/3320234536
  3. 来源:知乎
  4. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  5. # 3.3.5
  6. 要创建您的账户:
  7. 输入:account create

  8. 示例:account create test test

  9. 要设置您的账户级别:
  10. 输入:account set gmlevel 3 -1

  11. 示例:account set gmlevel test 3 -1

  12. 登录到您的账户:
  13. 通过自定义客户端启动器登录(未提供):
  14. 电子邮件\用户名:test
  15. 密码:test

  16. # Master
  17. 要创建您的账户:
  18. 输入:bnetaccount create

  19. 示例:bnetaccount create test@test test

  20. 要设置您的账户级别:
  21. 输入:account set gmlevel <user#realm> 3 -1

  22. 示例:account set gmlevel 1#1 3 -1

  23. 注意:用于设置您的 gmlevel 的用户名与您使用 bnetaccount 创建的用户名不同。您必须手动在 auth.account.username 中查找用户名。这些格式为 1#1、2#1 等。

  24. 注意2:如果您之前使用此命令连接过,您需要重新登录。

  25. 登录到您的账户:
  26. 通过自定义客户端启动器登录(未提供):
  27. 电子邮件:test@test
  28. 密码:test
复制代码










 楼主| 发表于 2024-4-1 14:18:41 | 显示全部楼层

客户端设置3.3.5
打开位于您的 World of Warcraft\Data 文件夹内的 realmlist.wtf 文件。realmlist.wtf 文件中的 IP 应该与您在上面的 realmlist 表中输入的 IP 地址完全相同。
将第一行更改为:set realmlist 实际上在 realmlist 表中使用的 IP 地址
示例:set realmlist 127.0.0.1
(可选)如果您希望使用 WoW Launcher.exe 运行客户端,则必须将 set patchlist 更改为与您的 realmlist 相同的 IP/dns 名称。
Master
更改 Config.wtf:SET portal "realmlist 表中使用的 IP 地址"
Config.wtf 文件中的 IP 应该与您在上面的 realmlist 表中输入的 IP 地址完全相同。(例如:SET portal "127.0.0.1")
  • 注意:连接到主分支服务器需要一个自定义客户端启动器,例如 https://arctium.io/wow
  • 支持的版本:查看 https://github.com/TrinityCore/TrinityCore 以找到主分支支持的确切客户端版本。
  • 注意:不要使用 localhost 作为地址,如果需要连接到 localhost,请使用 127.0.0.1
或者直接在WTF目录中改config.wtf文件,如:
  1. 作者:雪风
  2. 链接:https://www.zhihu.com/question/435119248/answer/3320234536
  3. 来源:知乎
  4. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  5. SET locale "zhCN"
  6. SET realmList "127.0.0.1"
  7. SET hwDetect "0"
  8. SET gxRefresh "144"
  9. SET gxMultisampleQuality "0.000000"
  10. SET gxFixLag "0"
  11. SET videoOptionsVersion "3"
  12. SET movie "0"
  13. SET Gamma "1.000000"
  14. SET readTOS "1"
  15. SET readEULA "1"
  16. SET showToolsUI "1"
  17. SET Sound_OutputDriverName "System Default"
  18. SET Sound_MusicVolume "0.40000000596046"
  19. SET Sound_AmbienceVolume "0.60000002384186"
  20. SET farclip "397"
  21. SET specular "1"
  22. SET groundEffectDensity "24"
  23. SET projectedTextures "1"
  24. SET mouseSpeed "1"
  25. SET accounttype "LK"
  26. SET Sound_EnableReverb "1"
  27. SET Sound_EnableSoftwareHRTF "1"
  28. SET Sound_EnableHardware "1"
  29. SET realmName "Trinity"
  30. SET gxResolution "3840x2160"
  31. SET gameTip "1"
复制代码

作者:雪风
链接:https://www.zhihu.com/question/435119248/answer/3320234536
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

现在直接运行wow.exe启动游戏吧。









Archiver|手机版|小黑屋|ad208三国

GMT+8, 2024-10-10 00:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表