前言

前几天突然想玩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下面一共有三个文件了

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

cd /home/user/wow/server
mkdir data

至此,server下有三个文件夹,bin和etc都是生成的

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个文件



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客户端官网标注版本:



WOW客户端实际版本:



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目录下



    修改_retail_文件夹下的WTF文件夹下的Config.wft文件,设置位置

    SET portal "auth.realmlist表中的address字段"
  2. 最后,双击Arctium WoW Launcher.exe启动,就可以了。

群晖下虚拟机编译部署WOW服务端TrinityCore的更多相关文章

  1. 群晖下 gitea+drone+harbor实现CI/CD 发布到云服务器

    常用命令 sudo -i然后输入密码登录root账户(群晖默认只能使用admin账号登陆) vim xxx编辑(编辑是进去之后按i,退出并保存是按esc,然后:wq!再回车) mkdir xx创建文件 ...

  2. IntelliJ IDEA openfire 使用IntelliJ IDEA 部署OPENFIRE 服务端

    用MyEclipse部署OF的步骤,网上有很多,可以自行google,这里要记录的是用据说最好用的JAVA编辑器IntelliJ IDEA来部署OF服务端.试了好多下,终于成功了,记录下. 直接上图吧 ...

  3. Rsync同步部署web服务端配置

    Rsync同步部署web服务端配置 1,参数详解: -v, --verbose 详细模式输出. -q, --quiet 精简输出模式. -c, --checksum 打开校验开关,强制对文件传输进行校 ...

  4. 如何将phantomjs单独部署在服务端

    如何将phantomjs单独部署在服务端 文章目录 一. 容我分析(lao dao)几句 二. 服务端 Look here 服务端phantomjs搭建 web端搭建及如何调用phantomjs 三. ...

  5. .net 部署到服务端IIS,Process调用exe程序无法运行问题解决

    场景: 开发某一功能将html内容转换为pdf,采用第三方插件wkhtmltopdf.exe进行转换.在本地调试正常运行,部署到服务端后文件没有正常生成. IIS中,Process打不开cmd程序,程 ...

  6. Linux 部署 iSCSI 服务端

    Linux 部署 iSCSI 服务端 服务端实验环境 iSCSI-server :RHEL8 IP:192.168.121.10 一.服务端安装 target 服务和 targetcli 命令行工具 ...

  7. 群晖-使用docker套件部署Prometheus+Grafana

    Docker 部署 Prometheus 说明: 先在群辉管理界面安装好docker套件,修改一下镜像源(更快一点) 所需容器如下 Prometheus Server(普罗米修斯监控主服务器 ) No ...

  8. Linux编译部署vsftp服务

    部署vsftp服务   Hostname OS IP Software Vsftpsvr RHEL-5.8 10.0.0.58 yum install -y vsftpd yum install –y ...

  9. Ubuntu 16.04 系统编译部署lamp服务。

    壹  下载Apache 和 PHP源码包: Apache:http://httpd.apache.org/download.cgi PHP:http://php.net/downloads.php 贰 ...

随机推荐

  1. Active MQ 整合SpringBoot

    配置文件 POM <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht ...

  2. case 函数语法与使用

    case 函数是聚合函数的一种,为统计函数. case表达式: CASE selector WHEN value1 THEN action1; WHEN value2 THEN action2; WH ...

  3. Flutter入门教程(二)开发环境搭建

    学习Flutter,首先需要搭建好Flutter的开发环境,下面我将一步步带领大家搭建开发环境并且成功运行flutter项目. Flutter环境配置主要有这几点: 系统配置要求 Java环境 Flu ...

  4. 半吊子菜鸟学Web开发3 --Html css学习1

    1创建一个html文件,用vscode打开 首先输入一个! 然后就可以开始编辑html文件了 2 整体结构 <!DOCTYPE HTML><html>    <head& ...

  5. 重磅!Vertica集成Apache Hudi指南

    1. 摘要 本文演示了使用外部表集成 Vertica 和 Apache Hudi. 在演示中我们使用 Spark 上的 Apache Hudi 将数据摄取到 S3 中,并使用 Vertica 外部表访 ...

  6. 你的图片可能是这样被CORB“拦截”的

    问题 最近学习一个uniapp+nodejs的项目,前端写了这样一个标签 <image :src="info.imgUrl" ></image> 按理说不应 ...

  7. 为什么我们调用 start()方法时会执行 run()方法,为什么 我们不能直接调用 run()方法?

    当你调用 start()方法时你将创建新的线程,并且执行在 run()方法里的代码. 但是如果你直接调用 run()方法,它不会创建新的线程也不会执行调用线程的代码, 只会把 run 方法当作普通方法 ...

  8. 什么是 Spring Framework?

    Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度.它是轻量级.松 散耦合的.它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序 开发提供了一个有凝聚力的框架.它可以集成其 ...

  9. lombok的使用。

    今天学习spring event,无意中看到lombok插件,以前也见同事用过,特此看了下用法.觉得还挺好用,记录下. 网上找到的一个比较术语化的解释:lombok是一个基于LGPL的开源J2EE综合 ...

  10. eclipse开发工具之"导入项目"

    1.选择菜单栏"file""下的"import" 2.选择Maven 在选中"Existing Maven Projects",然 ...