mangos 是一个开源的自由软件项目,
是用 c++ 和 C# 编程语言实现,
支持大型多人在线角色扮演游戏服务器的程序框架。
目前用于模拟魔兽世界游戏 60 服务端的有:
- mangoszero
- cmangos-classic
- elysium
- light`s hope
- vmangos
本文选择 cmangos 的【mangclassic】 项目。
1.手机准备
准备闲置手机一个,
我用的是:红米note4x,4+64,骁龙625。
获取 root 权限后,
安装 linuxdeploy ,
部署 Debian9 arm64 版本。
推荐连接 ssh 软件 Juicessh。
充电策略管理:
-
【Batterychargelimit】
一款 Android app,
充到设置的上限之后会停止充电;
掉电到下限后开始循环充电。
方便长期插电(已稳定运行700余天)。 -
crontab 定时任务
使用crontab
定时任务修改/sys
文件,
采用此方案可以停止安卓服务,
能省电及减少大量运行内存占用,
(详见:【Linux deploy 指南】)。
2.编译程序
SSH连接手机ip:192.168.31.2,
先安装一下编译所需的工具。
apt-get install grep build-essential gcc g++ automake git-core autoconf make patch cmake libmysql++-dev mysql-server libtool libssl-dev binutils zlibc libc6 libbz2-dev subversion libboost-all-dev vim screen -y
由于手机上是 chroot 方式运行的 linux,所以我们就暂时跳过使用其他用户,就用 root 用户权限即可,然后进入 /home目录创建我们的工作目录。
mkdir -p /home/mangos
cd /home/mangos
克隆项目文件及数据库,以及汉化项目。
git clone git://github.com/cmangos/mangos-classic.git mangos
git clone git://github.com/cmangos/classic-db.git
git clone https://github.com/MangosExtras/MangosZero_Localised.git
准备工作做完,开始编译,建立编译目录build,安装目录run。
mkdir -p /home/mangos/build
mkdir -p /home/mangos/run
进入到 build 目录使用 cmake 生成项目文件。
cd /home/mangos/build
- 只生成 mangos 程序
cmake ../mangos -DCMAKE_INSTALL_PREFIX=\../run -DPCH=1 -DDEBUG=0
- 生成 mangos 程序及地图工具
cmake ../mangos -DCMAKE_INSTALL_PREFIX=\../run -DBUILD_EXTRACTORS=ON -DPCH=1 -DDEBUG=0
- 生成 mangos 程序及地图工具及玩家机器人
cmake ../mangos -DCMAKE_INSTALL_PREFIX=\../run -DBUILD_EXTRACTORS=ON -DPCH=1 -DDEBUG=0 -DBUILD_PLAYERBOT=ON
由于提取地图不是很方便,可以不生成地图工具。
-DBUILD_EXTRACTORS=ON
这个参数可以删掉,然后直接使用官方发布的【Releases】版本的地图工具解压。
生成项目后使用 make
指令编译,完成后使用 make install
指令复制生成的文件及配置文件到我们指定的 run
目录。
可以使用后台及多线程编译。
nohup make -j4 &
cat nohup.out 查看日志,这样服务端就编译安装完成在 /home/mangos/run
目录,成功后进入 run 目录会有以下几个文件夹:bin、etc。
bin 里是服务器执行程序,里边的tools是地图解压工具。
etc 里是配置文件,进入etc文件夹,然后复制去掉.dist后缀
cp mangosd.conf.dist mangosd.conf
cp realmd.conf.dist realmd.conf
cp playerbot.conf.dist playerbot.conf
cp /home/mangos/mangos/src/game/AuctionHouseBot/ahbot.conf.dist.in ./ahbot.conf
使用官方下载的地图解压工具(把ad等工具复制到游戏目录)。
这里电脑上需要安装 git 软件,
右键游戏目录 git bash,
输入 ExtractResources.sh 解压地图文件。
然后在 run 目录建立 data 目录,把解压后的地图文件复制到此处。
同时配置 etc 目录里的 mangsd.conf
data="/home/mangos/run/data"
顺便把 loglevel 设为 1。
3.配置数据环境
配置网站环境,Debian9 默认是 php7、 mariadb,我这选的 nginx 配合。
参考:
『树莓派安装 Nginx + PHP7.0 + Pi Dashboard』。
apt-get update
apt-get install nginx php7.0-fpm php7.0-cli php7.0-curl php7.0-gd php7.0-mcrypt php7.0-mysql php7.0-cgi -y
service nginx start
service php7.0-fpm restart
然后修改 nginx 配置以支持 php。
vim /etc/nginx/sites-available/default
找到下列内容:
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
替换为:
location / {
index index.html index.htm index.php default.html default.htm default.php;
}
location ~\.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
保存后重启 nginx,service nginx restart
。
这里还需要添加 mysql 用户到 aid_inet 组,手机上有自己的一套权限,然后启动 mariadb。
usermod -aG aid_inet mysql
/etc/init.d/mysql start
下一步配置注册页:【注册页下载】
将注册页移动到 /var/www/html 目录,我这里添加了一个修改服务器列表的 php 文件,输入192.168.31.2/md.php 修改即可,高级操作密码在 conf.php 内。
导入数据及汉化项目,先创建数据库及添加用户 mangos。
mysql -u root -p /home/mangos/mangos/sql/create/db_create_mysql.sql
然后依次导入数据库框架
mysql classicmangos < /home/mangos/mangos/sql/base/mangos.sql
mysql classiccharacters < /home/mangos/mangos/sql/base/characters.sql
mysql classicrealmd < /home/mangos/mangos/sql/base/realmd.sql
然后将世界库 classic-db 下的世界库数据导入 (cmangos自带一个安装脚本InstallFullDB.sh)。
进入 classic-db 执行 InstallFullDB.sh 生成 InstallFullDB.config 并编辑
cd /home/mangos/classic-db
./InstallFullDB.sh
vim InstallFullDB.config
修改
CORE_PATH="/home/mangos/mangos"
MYSQL="mysql"
然后执行./InstallFullDB.sh导入。
下一步导入ScriptDev2 数据,
mysql classicmangos < /home/mangos/mangos/sql/scriptdev2/scriptdev2.sql
然后进行汉化工作,
进入汉化项目目录,
按顺序将 1 2 3 开头的sql文件导入,
然后进入到 Translations 的 Chinese 目录,使用下列命令导入汉化数据:
for f in *.sql;do mysql classicmangos < $f;done
3.启动服务
screen -dmS mangosd /home/mangos/run/bin/mangosd -c /home/mangos/run/etc/mangosd.conf -a /home/mangos/run/etc/ahbot.conf
screen -dmS realmd /home/mangos/run/bin/realmd -c /home/mangos/run/etc/realmd.conf
访问局域网址注册个账号,
将客户端内 realmlist.wtf 内容修改为局域网地址。
有条件使用内网穿透服务(例如frp,花生壳)就可以让小伙伴们一起玩耍了!
讨论群『 75902909 』
。
END
本作品采用“CC BY-SA 4.0”进行许可。
如果你觉得本文对你有帮助,请我喝杯咖啡吧。