欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cmangos搭建学习教程

程序员文章站 2024-03-17 19:51:52
...

系统:Ubuntu 18.04

配置:1核1G

1.安装依赖软件

sudo apt-get install build-essential gcc g++ automake git-core autoconf make patch libmysql++-dev mysql-server libtool libssl-dev grep binutils zlibc libc6 libbz2-dev cmake subversion libboost-all-dev

2.创建目录

mkdir /home/mangos
cd /home/mangos

3.下载源码

git clone git://github.com/cmangos/mangos-classic.git mangos

4.下载数据库

git clone git://github.com/cmangos/classic-db.git

5.创建目录

mkdir build
cd build

6.编译安装

cmake ../mangos -DCMAKE_INSTALL_PREFIX=\../mangos/run -DBUILD_EXTRACTORS=ON -DPCH=1 -DDEBUG=0 -DBUILD_PLAYERBOT=ON
make && make install

7.安装完成后,将客户端内Data文件夹上传至服务器/home/mangos/mangos/run/bin/tools

8.运行脚本后根据提示选择,提取地图文件

cd /home/mangos/mangos/run/bin/tools
chmod 700 ExtractResources.sh
chmod 700 MoveMapGen.sh
./ExtractResources.sh

9.建立数据库和表

cd /home/mangos
mysql -uroot -p < mangos/sql/create/db_create_mysql.sql
mysql -uroot -p classiccharacters < mangos/sql/base/characters.sql
mysql -uroot -p classicrealmd < mangos/sql/base/realmd.sql
mysql -uroot -p classicmangos < mangos/sql/base/mangos.sql
for sql_file in $(ls mangos/sql/base/dbc/original_data/*.sql); do mysql -uroot -p --database=classicmangos < $sql_file ; done
for sql_file in $(ls mangos/sql/base/dbc/cmangos_fixes/*.sql); do mysql -uroot -p --database=classicmangos < $sql_file ; done

10.初始化数据库

cd /home/mangos/classic-db
./InstallFullDB.sh
#####################################
vim InstallFullDB.config

执行上一步后,同级目录会生成一个InstallFullDB.config的文件,需要对数据库进行编辑
MANGOS_DBUSER="数据库账号"
MANGOS_DBPASS="数据库密码"
CORE_PATH="" 改为 CORE_PATH="/home/mangos/mangos"

wq保存退出
#####################################
再次执行./InstallFullDB.sh

11.汉化数据库

cd /home/mangos/mangos/sql
git clone https://github.com/keyshuwen/wow_db_chinese.git

mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/creature_ai_texts.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/game_event.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/gossip_texts.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/locales_areatrigger_teleport.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/locales_creature.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/locales_gameobject.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/locales_item.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/locales_npc_text.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/locales_page_text.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/locales_points_of_interest.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/locales_quest.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/locales_trainer_greeting.sql
mysql -uroot -p classicmangos < wow_db_chinese/DB-tbc/mangos_string.sql

12.运行sql

DELETE FROM realmlist WHERE id=1;
INSERT INTO realmlist (id, name, address, port, icon, realmflags, timezone, allowedSecurityLevel)
VALUES ('1', '服务器名', '服务器IP', '对应mangosd.cnf的端口  8085', '1', '0', '1', '0');

13.修改客户端realmlist.wtf文件

set realmlist 服务器IP:对应realmd.cnf内的端口号

14.修改配置文件

cd /home/mangos/mangos/run/etc
mv realmd.conf.dist realmd.conf
vim realmd.conf
###########编辑############
LoginDatabaseInfo = "127.0.0.1;3306;数据库账号;数据库密码;classicrealmd"
RealmServerPort = xxxx 账号认证服务器端口号对应客户端realmlist.wtf文件
##############################

mv mangosd.conf.dist mangosd.conf
vim mangosd.conf
###########编辑############
DataDir = "/home/mangos/mangos/run/bin/tools"
LoginDatabaseInfo     = "127.0.0.1;3306;数据库账号;数据库密码;classicrealmd"
WorldDatabaseInfo     = "127.0.0.1;3306;数据库账号;数据库密码;classicmangos"
CharacterDatabaseInfo = "127.0.0.1;3306;数据库账号;数据库密码;classiccharacters"
WorldServerPort = xxxx 游戏世界服务器端口号对应数据库realmlist表内端口号
##############################

 

15.配置启动服务

touch /etc/systemd/system/realmd.service
vim /etc/systemd/system/realmd.service
#################复制内容#####################
[Unit]
Description=Realmd service
After=network.target mariadb.service

[Service]
Type=simple
User=mangos
ExecStart=/home/mangos/mangos/run/bin/realmd -c /home/mangos/mangos/run/etc/realmd.conf
Restart=on-abort

[Install]
WantedBy=multi-user.target
#########################################

touch /etc/systemd/system/mangosd.service
vim /etc/systemd/system/mangosd.service
#################复制内容#####################
[Unit]
Description=WoW Vanilla service
After=network.target mariadb.service [email protected]

[Service]
Type=simple
User=mangos
ExecStart=/home/mangos/mangos/run/bin/mangosd -c /home/mangos/mangos/run/etc/mangosd.conf
WorkingDirectory=/home/mangos/mangos/run/bin/tools
StandardInput=tty
TTYPath=/dev/tty3
TTYReset=yes
TTYVHangup=yes
Restart=on-abort

[Install]
WantedBy=multi-user.target
#########################################

16.运行

systemctl daemon-reload
systemctl start realmd
systemctl start mangosd
systemctl status realmd
systemctl status mangosd
systemctl enable realmd
systemctl enable mangosd

运行wow.exe进入游戏