群晖下虚拟机编译部署WOW服务端TrinityCore

前言

前几天突然想玩WOW了,但是我是一个特别轻度的玩家,以前点卡的时候,我就是上去一个人做做任务,跑跑地图,不怎么玩副本和PVP,现在让我花钱充月卡,不太现实,没那个时间玩,所以,就考虑玩个私服,但是网上大部分的私服都是基于3.3.5编译的,毕竟搞这个的都是魔兽的老玩家,和我的需求不一样,我就想玩新,所以,只能自己编译,但是参考大神们写的教程和官网上的教程还是遇到了一些坑,所以,在此记录一下,方便大家编译master的时候,更容易通过。

参考

参考的内容一个是:TrinityCore魔兽世界服务器搭建(Debian10),另一个就是官网了,但是后期填坑的时候,更多的是在wiki上查询,因为有些朋友,也遇到了相关的问题。

步骤

  1. 安装Debian虚拟机(内存6G及以上,存储140G及以上),这个需要注意的是,由于我们需要编译的是Master,而且最新版的WOW客户端有70多个G,所以,需要准备一个大空间,由于最开始不知道,所以,此处踩坑了。
  2. 在Debian下执行以下命令(我全部都是使用root用户操作),参考地址
apt-get update
apt-get install git clang cmake make gcc g++ libmariadb-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mariadb-server p7zip default-libmysqlclient-dev
update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100 
  1. 在home/user/下新建一个目录wow,用于整体管理
cd /home/user/
mkdir wow
  1. 进入到wow目录,然后下载TrinityCore的master,下载的快慢,取决于网速,这个时候等等就可以了
cd /home/user/wow
git clone https://github.com/TrinityCore/TrinityCore.git
  1. 安装数据库,参见MariaDB Linux安装指南,并且创建对应的表
mysql -u root
source /home/user/wow/TrinityCore/sql/create/create_mysql.sql
use auth;
source /home/user/wow/TrinityCore/sql/base/auth_database.sql 
use characters;
source /home/user/wow/TrinityCore/sql/base/characters_database.sql 
  1. 编译服务端代码
cd /home/user/wow
mkdir server
cd TrinityCore/
mkdir build
cd build/
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/user/wow/server
nohup make -j $(nproc) install & #这个需要后台运行,时间较长
  1. 下载WOW客户端,并且上传到服务器,下载地址就是WOW的官网,下载最新的版本就可以。然后从Windows上传到Debian,不要用MobaXterm,虽然这个工具也可以传输,但是因为文件特别大,会断掉,所以,不要用这个工具,我就被坑了。最后我用了xftp这个软件,大概是传输了半个多小时的样子。注:World_of_Warcraft文件夹直接上传到wow下面就可以。至此,wow下面一共有三个文件了
    《群晖下虚拟机编译部署WOW服务端TrinityCore》

  2. 提取地图,这里的步骤是用的CSDN里面的,而没用官网提供的步骤,是因为官网提供的属于组合性操作,不能后台,或者我不会,毕竟我是Linux小白,因此,没用官网的。

cd /home/user/wow/server
mkdir data

至此,server下有三个文件夹,bin和etc都是生成的
《群晖下虚拟机编译部署WOW服务端TrinityCore》

cd /home/user/wow/World_of_Warcraft
nohup /home/user/wow/server/bin/mapextractor & #比较慢,后台运行
cp -r dbc maps /home/user/wow/server/data

/home/user/wow/server/bin/vmap4extractor
mkdir vmaps
nohup /home/user/wow/server/bin/vmap4assembler Buildings vmaps & #比较慢,后台运行
cp -r vmaps /home/user/wow/server/data

mkdir mmaps
nohup /home/user/wow/server/bin/mmaps_generator & #比较慢,后台运行,我的群晖大概跑了一天半的时间
cp -r mmaps /home/user/wow/server3.5.5/data

至此,地图都提取完了。
9. 修改配置文件,把server下etc里面的文件拷贝到本地,然后去掉dist,并且修改worldserver.conf中 DataDir = “.” 为 DataDir = “../data”,然后把这两个文件再回传到目录下,这样etc文件夹下有4个文件
《群晖下虚拟机编译部署WOW服务端TrinityCore》
10. 从官网下载TDB数据库的压缩包,解压后,将得到的TDB_full_hotfixes开头和TDB_full_world开头的两个sql文件上传到/home//wow/server/bin目录下
11. 修改数据库,更新一下auth.realmlist表中的address字段为虚拟机的IP,更新gamebuild字段为客户端的版本,为什么这么做呢。是因为如果不统一的话,在登录用户后,显示服务器列表的位置,会显示不兼容,无法继续。
TrinityCore的master的版本对应的是9.2.0.43114,WOW官网标注的客户端也是这个版本,但是,其实客户端版本较低。
TrinityCore版本:
《群晖下虚拟机编译部署WOW服务端TrinityCore》
WOW客户端官网标注版本:
《群晖下虚拟机编译部署WOW服务端TrinityCore》
WOW客户端实际版本:
《群晖下虚拟机编译部署WOW服务端TrinityCore》
12. 启动服务端

cd /home/user/wow/server/bin
nohup ./bnetserver &
./worldserver

等待完事以后,会出现TC>

TC>bnetaccount create test@test test   #创建了一个邮箱是test@test,密码是test的用户
TC>account set gmlevel 1#1 3 -1        #设置为GM,其中n#n是从auth.account表的username字段
  1. 客户端,从三方登录客户端平台下载客户端的登录文件,解压以后,放到本地World_of_Warcraft目录下
    《群晖下虚拟机编译部署WOW服务端TrinityCore》
    修改_retail_文件夹下的WTF文件夹下的Config.wft文件,设置位置
    SET portal "auth.realmlist表中的address字段"
  2. 最后,双击Arctium WoW Launcher.exe启动,就可以了。
    原文作者:衆尋
    原文地址: https://www.cnblogs.com/ZXdeveloper/p/16140834.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞