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.hqwc.cn/news/107347.html

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

相关文章

Git学习记录

Contest 一、工作区域二、操作命令2.1 创建仓库2.2 查看仓库状态2.3 从工作区向暂存区添加文件2.3.1 只添加一个文件2.3.2 添加全部文件 2.4 从暂存区向仓库区添加文件2.5 查询日志2.5.1 从当前版本开始查询2.5.2 查看所有日志 2.6 回滚2.6.1 从仓库回滚到工作区2.6.2 取消工作…

c++的this指针

目录 this指针的工作原理 this指针的应用 const修饰的成员函数 this指针的工作原理 在c中同一个类的不同对象,在内存中有不同的储存空间,但是成员函数在内存中只保存了一份,在调用函数处理成员数据时,this指针能保证该成员函数…

2023大数据面试总结

文章目录 Flink(SQL相关后面专题补充)1. 把状态后端从FileSystem改为RocksDB后,Flink任务状态存储会发生哪些变化?2. Flink SQL API State TTL 的过期机制是 onCreateAndUpdate 还是 onReadAndWrite?3. watermark 到底…

《Graph of Thoughts: Solving Elaborate Problems with Large Language Models》中文翻译

《Graph of Thoughts: Solving Elaborate Problems with Large Language Models》- 思维图:用大型语言模型解决复杂的问题 论文信息摘要1. 介绍2. 背景及符号2.1 语言模型和情境学习 3. GoT 框架3.1 推理过程3.2 思想转变3.3 评分和排名思路 4. 系统架构及扩展性4.1…

驱动开发--自动创建节点udev机制的实现过程分析

一,创建设备文件的机制 1,mknod:手动创建设备节点 2,devfs:创建设备节点的逻辑在内核空间,2.5版本后淘汰 3,udev:自动创建设备节点的机制,逻辑在用户空间,…

vue2中使用富文本编辑器tinyMCE全过程

第一步:安装TinyMCE $npm install tinymce5.10.0 -S $npm install tinymce/tinymce-vue3.0.1 -S 第二步:在node_modules中找到tinymce文件夹将内部文件移入pubilc/tinymce文件夹中在index.html文件中引入tinymce.min.js 注意:不把js文件放…

数据结构和算法(5):二叉树

树 向量允许通过下标或秩,在常数的时间内找到目标对象;然而,一旦需要对这类结构进行修改,那么无论是插入还是删除,都需要耗费线性的时间。 列表允许借助引用或位置对象,在常数的时间内插入或删除元素&…

linux 系统资源命令

系统资源命令 当前系统负载 w查看的是整体的负载,可以来观察当前系统有没有压力 w 系统当前负载 第一行显示的内容依次为:时间、系统运行时间、登录用户数、平均负载(1分钟、5分钟、15分钟) 第二行后展示的信息为:当前登录的都有哪些用户、在…

Falcon 180B 目前最强大的开源模型

Technology Innovation Institute最近发布了Falcon 180B大型语言模型(LLM),它击败了Llama-2 70b,与谷歌Bard的基础模型PaLM-2 Large不相上下。 180B是是Falcon 40B模型一个最新版本。以下是该模型的快速概述: 180B参数模型,两个版本(base和…

【Java基础篇 | 类和对象】--- 聊聊什么是内部类

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习Java的一点学习心得,欢迎大家在评论区讨论💌 前言 当一个事物的内部&…

TCP服务器使用多路复用

启用复用的作用? 解决linux系统中的io阻塞问题,让多个阻塞io接口可以一起执行。无需开启线程,节省系统资源。 linux系统中的阻塞io有哪些? scanf、read管道、eadTcp套接字、acppet接收连接请求 有以下两种方式实现多路复用&am…

3D视觉测量:3D空间圆拟合优化

文章目录 0. 测试效果1. 测量思路2. 部分调用代码文章目录:形位公差测量关键内容:通过视觉方法实现GD&T中的圆孔位置定位0. 测试效果 1. 测量思路 空间圆拟合是指在三维空间中找到最佳拟合圆的过程。这通常用于从一组三维点数据中找到一个圆,以最小化数据点到圆的距离之…