Trinitycore学习之在Linux环境上搭建服务器并测试运行

1:准备环境,这里用ubuntu 22.04进行测试,安装环境后为了方便,换源。

注意:这里用的虚拟机,在虚拟机上生成地图信息,地图信息占用内存比较大,我暂时设置磁盘50G进行测试,后面研究细节。

ubuntu@ubuntu:~/res$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.3 LTS
Release:	22.04
Codename:	jammy

2:参考文档了解:

https://trinitycore.info/en/install/requirements/linux

https://trinitycore.info/en/install/requirements/windows

3:开始安装环境-安装必备依赖

sudo apt-get update
sudo apt-get install git clang cmake make gcc g++ libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mysql-server-5.7 p7zip
# 这里mysql-server-5.7 版本没有  我这里安装好mysql-server-8.0
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100

4:开始安装

mkdir game
cd game
git clone -b 3.3.5 https://github.com/TrinityCore/TrinityCore.gitmkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/ubuntu/game -DCONF_DIR=/home/ubuntu/game/bin
make -j2
make install#这里完了之后  会在/home/ubuntu/game/bin 目录中生成相关可执行文件,以及配置文件也在这
ubuntu@ubuntu:~/game/bin$ pwd
/home/ubuntu/game/bin
ubuntu@ubuntu:~/game/bin$ ll
total 274160
drwxrwxr-x 2 ubuntu ubuntu      4096 Sep  9 16:38 ./
drwxrwxr-x 5 ubuntu ubuntu      4096 Sep  9 17:22 ../
-rwxr-xr-x 1 ubuntu ubuntu  16259744 Sep  9 16:28 authserver*
-rw-r--r-- 1 ubuntu ubuntu     13897 Sep  9 16:10 authserver.conf.dist
-rwxr-xr-x 1 ubuntu ubuntu   2810696 Sep  9 16:27 mapextractor*
-rwxr-xr-x 1 ubuntu ubuntu  14319552 Sep  9 16:27 mmaps_generator*
-rwxr-xr-x 1 ubuntu ubuntu   7811168 Sep  9 16:26 vmap4assembler*
-rwxr-xr-x 1 ubuntu ubuntu   6700944 Sep  9 16:27 vmap4extractor*
-rwxr-xr-x 1 ubuntu ubuntu 232656040 Sep  9 16:37 worldserver*
-rw-r--r-- 1 ubuntu ubuntu    140889 Sep  9 16:10 worldserver.conf.dist
#这里的文件  除了配置文件   就是生成地图的工具 以及启动游戏可执行文件
#authserver是认证服务,worldserver是世界服务也就是游戏的核心服

5:生成地图

上面已经编译出处理地图数据的可执行文件 mapextractor, vmap4extractor,vmap4assembler, mmaps_generator,执行后生成其他一些目录或者文件,是服务器需要的地图信息。

#1:首先从客户端中 把客户端安装目录下 Data和Interface 目录,拷贝到服务器上 这里拷贝到/home/ubuntu/res目录下 (这里的客户端自行下载 启动点击wow.exe)
#2:处理地图的可执行文件  在/home/ubuntu/game/bin目录中
#3:在地图文件所在目录res目录下执行相关可执行文件,这里要用到Data和Interface 中数据,并且好大,快20G:
../game/bin/mapextractor 
../game/bin/vmap4extractor 
../game/bin/vmap4assembler 
../game/bin/mmaps_generator 
#如果运行没有问题  生成如下相关文件:
#这里的执行比较耗时,一到两个小时,以及这里需要的内存比较大,自己在虚拟机进行测试时,反复测试几次。
ubuntu@ubuntu:~/res$ ll
total 1168
drwx--x--x  2 ubuntu ubuntu 311296 Sep  9 18:02 Buildings/
drwxrwxr-x  2 ubuntu ubuntu   4096 Sep  9 17:56 Cameras/
drwxrwxr-x  3 ubuntu ubuntu   4096 Sep  9 17:53 Data/       #主要地图数据 从客户端拷贝而来
drwxrwxr-x  2 ubuntu ubuntu  12288 Sep  9 17:56 dbc/
drwxrwxr-x  3 ubuntu ubuntu   4096 Sep  9 17:47 Interface/   #从客户端拷贝而来
drwxrwxr-x  2 ubuntu ubuntu 159744 Sep  9 17:58 maps/
drwxrwxr-x  2 ubuntu ubuntu 135168 Sep 10 03:11 mmaps/
drwxrwxr-x  2 ubuntu ubuntu 552960 Sep  9 18:05 vmaps/#4:登录mysql,导入数据库,
#   首先处理安装后设置mysql密码问题,不是本次核心。
#   简单重设mysql密码: sudo mysqladmin -u root -p password
#   导入对应的数据 在TrinityCore源码目录下/sql/create/ 
#   可以查看数据库 生成的表 后续待了解相关结构
sudo mysql -uroot -p123456
mysql> source /home/ubuntu/game/TrinityCore/sql/create/create_mysql.sql
#5:修改realmlist表中address 信息为本机ip地址。
select * from realmlist;
select * from realmlist\G  #纵向显示
update realmlist set address="192.168.40.130" where id = 1; #修改ip

注意:这里地图数据特别大,大约20G,比较耗费内存,这里我用虚拟机测试时,直接设置比较大的内存进行解决。

同时,df -h查看内存情况,参考https://zhuanlan.zhihu.com/p/359959580 可以实现磁盘内存扩展

6:开始运行

./worldserver   #运行服务器
./authserver    #运行认证服务器#第一次启动时与相关报错
ubuntu@ubuntu:~/game/bin$ ./worldserver
TrinityCore rev. 79e2f77d4403 2023-09-01 12:15:17 +0200 (3.3.5 branch) (Unix, RelWithDebInfo, Static) (worldserver-daemon)
.....
File "TDB_full_world_335.23061_2023_06_14.sql" is missing, download it from "https://github.com/TrinityCore/TrinityCore/releases" uncompress it and place the file "TDB_full_world_335.23061_2023_06_14.sql" in the directory "/home/ubuntu/game/bin".
Could not populate the World database, see log for details.#按照提示进行处理 去https://github.com/TrinityCore/TrinityCore/releases 找到335.23061对应版本中
#下载对应de.7z 压缩包,用7zip进行解压后,获取到一个sql文件。#把解压后的sql脚本拷贝到 worldserver 同级目录
TDB_full_world_335.23061_2023_06_14.sql
ubuntu@ubuntu:~/game/bin$ pwd
/home/ubuntu/game/bin
ubuntu@ubuntu:~/game/bin$ ls
Auth.log         authserver.conf.dist  mapextractor     TDB_full_world_335.23061_2023_06_14.sql  worldserver
authserver       DBErrors.log          mmaps_generator  vmap4assembler                           worldserver.conf
authserver.conf  GM.log                Server.log       vmap4extractor                           worldserver.conf.dist
# 把该目录下的配置文件进行处理
cp authserver.conf.dist authserver.conf
cp worldserver.conf.dist worldserver.conf
#修改配置文件  在配置文件中设置地图信息位置   DataDir = "../../res"
vi worldserver.conf
#最终,分别启动真正服务器和认证服务器

7:测试运行

#启动./worldserver  后,设置一个用户名和密码,在客户端进行测试
TC> account create test1 1234
TC> Account created: test1
#在客户端,逍遥魔兽登录器.bat 脚本中,修改对应的服务端ip地址 这里改为对应的服务器ip 对应上面修改的数据库内部地址
if not exist "WTF" md "WTF"echo set realmlist 192.168.40.132>realmlist.WTFecho set realmlist 192.168.40.132>data/enGB/realmlist.WTFecho set realmlist 192.168.40.132>data/zhcn/realmlist.WTFstart wow.exegoto end#启动该bat脚本,输入上面的用户名和密码  测试ok

在这里插入图片描述

太多的技术栈来源于零声学院,上班之余,又报了个游戏的课外进修,做此整理。

推荐:https://xxetb.xet.tech/s/2W52YR

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/77250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iwebsec靶场 文件包含漏洞通关笔记4-远程文件包含

目录 前言 1.远程文件包含 2.远程文件条件 第03关 远程文件包含 1.打开靶场 2.源码分析 3.本地文件包含渗透 4.远程文件包含渗透 前言 1.远程文件包含 远程文件包含是文件包含漏洞的其中一种。这种漏洞在文件的URI位于其他服务器上并作为参数传递给PHP函数“include”…

【Linux】自制shell

本期我们利用之前学过的知识&#xff0c;写一个shell命令行程序 目录 一、初始代码 二、使用户输入的ls指令带有颜色分类 三、解决cd指令后用户所在路径不变化问题 3.1 chdir函数 四、关于环境变量的问题 一、初始代码 #include<stdio.h> #include<unistd.h…

LINUX 网络管理

目录 一、NetworkManager的特点 二、配置网络 1、使用ip命令临时配置 1&#xff09;查看网卡在网络层的配置信息 2&#xff09;查看网卡在数据链路层的配置信息 3&#xff09;添加或者删除临时的网卡 4&#xff09;禁用和启动指定网卡 2、修改配置文件 3、nmcli命令行…

软件安全研究(四)

文章目录 Fine-Grained Code Clone Detection with Block-Based Splitting of Abstract Syntax Tree文章结构IntroMotivationDefinitionSystemOverviewProcessingVerify Experimentexperimental settingsRQ1RQ2RQ3RQ4RQ5 Fine-Grained Code Clone Detection with Block-Based S…

78 # koa 中间件的实现

上上节实现了上下文的&#xff0c;上一节使用了一下中间件&#xff0c;这一节来实现 koa 的中间件这个洋葱模型。 思路&#xff1a; 储存用户所有的 callback将用户传递的 callback 全部组合起来&#xff08;redux 里的 compose&#xff09;组合成一个线性结构依次执行&#…

Vue3、Vite使用 html2canvas 把Html生成canvas转成图片并保存,以及填坑记录

这两天接到新需求就是生成海报分享&#xff0c;生成的格式虽然是一样的但是自己一点点画显然是不符合我摸鱼人的性格&#xff0c;就找到了html2canvas插件&#xff0c;开始动工。 安装 npm install html2canvas --save文档 options 的参数都在里面按照自己需求使用 https://a…

Union-Find Algorithm-并查集

目录 1.概念 2.并查集的优化 1.路径压缩&#xff08;Path Compression&#xff09; 1&#xff09;隔代压缩&#xff1a; 2&#xff09;完全压缩&#xff1a; 2.按秩合并 1.概念 并查集&#xff1a;用于判断一对元素是否相连&#xff0c;它们的关系是动态添加&#xff08…

nlp系列(7)实体识别(Bert)pytorch

模型介绍 本项目是使用Bert模型来进行文本的实体识别。 Bert模型介绍可以查看这篇文章&#xff1a;nlp系列&#xff08;2&#xff09;文本分类&#xff08;Bert&#xff09;pytorch_bert文本分类_牧子川的博客-CSDN博客 模型结构 Bert模型的模型结构&#xff1a; 数据介绍 …

骨传导耳机的危害有哪些?会损害听力吗?

如果正常的使用&#xff0c;骨传导耳机是没有危害的&#xff0c;由于骨传导耳机独特的传声方式&#xff0c;所以并不会对人体造成损伤&#xff0c;还可以在一定程度上保护听力。 如果想更具体知道骨传导耳机有什么危害&#xff0c;就要先了解什么是骨传导耳机&#xff0c;骨传…

小程序自定义tabbar

前言 使用小程序默认的tabbar可以满足常规开发&#xff0c;但是满足不了个性化需求&#xff0c;如果想个性化开发就需要用到自定义tabbar,以下图为例子 一、在app.json配置 先按照以往默认的形式配置&#xff0c;如果中间的样式特殊则不需要配置 "tabBar": {&qu…

来可LCWLAN-600P产品使用和常见问题说明

01LCWLAN-600P简介 LCWLAN-600P是来可电子最新生产的一款CAN转WiFi设备&#xff0c;该设备的主要功能是将CAN数据转换成网络数据并通过无线网络转发出去。设备支持8~30V宽压供电&#xff0c;出厂默认配置为AP模式&#xff0c;设备供电后可在电脑的WiFi搜索栏搜索到名称为LCWLA…

【Linux-Day10-信号量,共享内存,消息队列】

信号量 信号量描述 信号量是一个特殊的变量&#xff0c;一般取正数值。它的值代表允许访问的资源数目&#xff0c;获取资源 时&#xff0c;需要对信号量的值进行原子减一&#xff0c;该操作被称为 P 操作。 当信号量值为 0 时&#xff0c;代表没有资源可用&#xff0c;P 操作…

2022年全国研究生数学建模竞赛华为杯B题方形件组批优化问题求解全过程文档及程序

2022年全国研究生数学建模竞赛华为杯 B题 方形件组批优化问题 原题再现&#xff1a; 背景介绍   智能制造被“中国制造2025”列为主攻方向, 而个性化定制、更短的产品及系统生命周期、互联互通的服务模式等成为目前企业在智能制造转型中的主要竞争点。以离散行业中的产品为…

20230912java面经整理

1.gc算法有哪些 引用计数&#xff08;循环引用&#xff09;和可达性分析找到无用的对象 标记-清除&#xff1a;简单&#xff0c;内存碎片&#xff0c;大对象找不到空间 标记-复制&#xff1a;分成两半&#xff0c;清理一半&#xff0c;没有碎片&#xff0c;如果存活多效率低&a…

Python之离线安装第三方库

1、场景介绍 在一些服务器上&#xff0c;我们搭建完Python环境之后&#xff0c;因为服务器的网络限制原因&#xff0c;不能直接通过pip命令下载安装Python的依赖包。 因此&#xff0c;我们需要在可以正常上网的服务器上下载好所需的依赖包文件&#xff0c;然后拷贝到目标服务器…

嘉泰实业:真实低门槛,安全有保障

在互联网金融大行其道的当下&#xff0c;无论用户是多么的青睐、喜爱这种便捷的理财方式&#xff0c;也一定得把资金安全放在心上。要投就投那些实力背景雄厚&#xff0c;诚信经营的平台&#xff0c;可以选择投资用户基数庞大的理财老品牌&#xff0c;也可以选择发展势头迅猛的…

OneFormer: One Transformer to Rule Universal Image Segmentation论文笔记

论文https://arxiv.org/pdf/2211.06220.pdfCodehttps://github.com/SHI-Labs/OneFormer 文章目录 1. Motivation2. 方法2.1 与Mask2Former的相同之处2.2 OneFormer创新之处2.3 Task Conditioned Joint Training2.4 Query Representations2.4 Task Guided Contrastive Queries 3…

【Redis】为什么要学 Redis

文章目录 前言一、Redis 为什么快二、Redis 的特性2.1 将数据储存到内存中2.2 可编程性2.3 可扩展性2.4 持久性2.5 支持集群2.6 高可用性 三、Redis 的应用场景四、不能使用 Redis 的场景 前言 关于为什么要学 Redis 这个问题&#xff0c;一个字就可以回答&#xff0c;那就是&…

学习记忆——宫殿篇——记忆宫殿——数字编码——记忆数字知识点

面对错综复杂的数字信息&#xff0c;我们想要记住可以通过以下三点&#xff1a; 1、首先找到关键词 2、数字编码牢记 3、关键词跟编码链接 案例&#xff1a;会计考试-时间期限为 3、7、10 日、1 年的知识点 3 天 (1)托收承付的承付期验单付款为 3 天。 (2)失票人应当在通…

帝国cms后台访问链接提示“非法来源”解决方法

提示“非法来源”的原因 帝国CMS更新升级7.2后,新增了后台安全模式,后台推出了金刚模式来验证链接来源。后台所有链接都需要登录后才能访问,直接强制访问后台页面链接都会提示“非法来源”。不是正常登录后台的用户无法直接访问到内容,保证了后台数据安全。 那么我们在日常…