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

简介: 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.git
mkdir 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.WTF
 echo set realmlist 192.168.40.132>data/enGB/realmlist.WTF
 echo set realmlist 192.168.40.132>data/zhcn/realmlist.WTF
 start wow.exe
 goto end
 #启动该bat脚本,输入上面的用户名和密码  测试ok

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

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

目录
相关文章
|
12月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
JavaScript 数据可视化 Docker
简易制作MCP服务器并测试
本文介绍了如何简易制作并测试MCP服务器,包括环境搭建、代码实现及Docker部署。首先通过uv包创建项目,在main.py中定义MCP服务器及其工具和资源函数。接着详细说明了在Windows上安装uv、配置Docker镜像加速、生成requirements.txt文件以及编写Dockerfile的过程。最后,通过构建和运行Docker容器部署MCP服务器,并使用Node.js工具测试其功能,确保服务器正常工作。此教程适合初学者快速上手MCP服务器的开发与部署。
5066 63
|
监控 安全 测试技术
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
398 14
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
|
机器学习/深度学习 存储 算法
强化学习算法基准测试:6种算法在多智能体环境中的表现实测
本文系统研究了多智能体强化学习的算法性能与评估框架,选用井字棋和连珠四子作为基准环境,对比分析Q-learning、蒙特卡洛、Sarsa等表格方法在对抗场景中的表现。实验表明,表格方法在小规模状态空间(如井字棋)中可有效学习策略,但在大规模状态空间(如连珠四子)中因泛化能力不足而失效,揭示了向函数逼近技术演进的必要性。研究构建了标准化评估流程,明确了不同算法的适用边界,为理解强化学习的可扩展性问题提供了实证支持与理论参考。
605 0
强化学习算法基准测试:6种算法在多智能体环境中的表现实测
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
3805 0
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
1534 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
数据挖掘 Linux 数据库
服务器数据恢复—Linux系统服务器数据恢复案例
服务器数据恢复环境: linux操作系统服务器中有一组由4块SAS接口硬盘组建的raid5阵列。 服务器故障: 服务器工作过程中突然崩溃。管理员将服务器操作系统进行了重装。 用户方需要恢复服务器中的数据库、办公文档、代码文件等。
|
弹性计算 Ubuntu Linux
一键部署OpenWebUI+Ollama到阿里云ECS,轻松运行DeepSeek!(保姆级教程)
在当今数据驱动的时代,快速部署和管理大模型成为企业的关键需求。阿里云提供了一键部署OpenWebUI+Ollama的便捷方案,支持本地大模型运行和管理。用户也可以选择连接阿里云百炼的在线模型。
一键部署OpenWebUI+Ollama到阿里云ECS,轻松运行DeepSeek!(保姆级教程)
|
JavaScript Linux Python
在Linux服务器中遇到的立即重启后的绑定错误:地址已被使用问题解决
总的来说,解决"地址已被使用"的问题需要理解Linux的网络资源管理机制,选择合适的套接字选项,以及合适的时间点进行服务重启。以上就是对“立即重启后的绑定错误:地址已被使用问题”的全面解答。希望可以帮你解决问题。
727 20
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
1135 11
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡