文章目录
一、环境准备
1)依赖安装
shell
sudo apt-get update
sudo apt-get install git clang cmake gcc g++
libmysqlclient-dev libss-dev libbz2-dev libreadline-dev
libncurses-dev libboost-all-dev mysql-server-5.7 p7zip
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100
//
sudo yum install -y clang
2)源码下载和编译
shell
git clone -b 3.3.5 https//github.com//TrinityCore/TrinityCore.git
mkdir build cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/lighthouse/tinycore
-DCONF_DIR=/home/lighthouse/tinycore/bin
make -j2 (nproc看核心数来编译)
make install
二、生成数据信息
1)地图数据信息(客户端信息)
shell
1)cd ~
2)mkdir res (根目录创建res文件夹)
3)把客户端目录的Data和Interface移动到res目录下
4)cd res
在res目录执行游戏目录bin/下面的mapextractor,
生成dbc和maps文件夹
5)mkdir vmaps
在res目录执行游戏目录bin/下面的vmap4extractor,
生成vmaps文件夹和Buildings目录
5)在res目录执行游戏目录bin/下面的vmap4assembler,
../lighthouse/bin/vmap4assembler Buildings vmaps
6) mkdir mmaps
在res目录执行游戏目录bin/下面的mmaps_generator
生成mmaps目录
2)数据库信息
- 注意
需要提前安装mysql
shell
mysql -uroot -p password
1)在TrinityCore的sql/create目录的路径赋值,打开mysql
shell
mysql> source ../Trinity/sql/create/create_mysql.sql
show database;
可以看到生成了auth \ character \ world
三、启动服务器
1)先进到项目的bin目录,复制authserver.conf
shell
启动授权服务器
./authserver
2)同样步骤,复制worldserver.conf
并且改写DataDir,指定res目录
shell
DataDir="../../res"
启动worldserver
shell
启动授权服务器
./worldserver
四、日志模块
五、数据库模块
六、场景模块
1)地图管理
①哪些模块会用到地图模块?
1)运动模块:走、跳、飞行
2)副本
3)寻路
②地图模块要实现哪些功能?
1)AOI:管理地图地理信息、地图对象信息
2)功能:视野、数据同步、碰撞检测、寻路算法
③怎么驱动地图模块?
1)移动的网络数据驱动
2)定时更新(怪物的AI行为)
2)AOI算法
职责:
①静态数据:
《1》trinity由mapextractor生成.map文件(基础地图信息),数据包括
shell
1) area data (区域物体信息)
2) height data (高度信息)
3) liquid data (水)
4) hole data (洞)
《2》由mmaps_generator生成可移动地图信息 .mmap,游戏中的地图移动数据(用来给navmesh寻路),也就是用recast和detour生成寻路信息
shell
1) mmtile 索引对应具体地图的所有信息(x+y做名字前缀)
2) .mmap 索引
《3》vmapsextractor生成地图元素信息(可视场景信息:山脉、水体、建筑物等静态场景信息),用于未来做碰撞检测
,
shell
*.m2和 *.wmo文件 静态物品包围盒信息
*.mdx 角色、物品和怪物包围盒信息
《4》vmap4assembler合并vmapsextractor和mmaps_generator生成的地图信息,vmtile信息
②动态数据