前言

想体验传奇游戏霸服的快乐吗?想体验满级 VIP 的尊贵吗?想体验一刀 99999 的爽快吗?各种极品装备、翅膀、宠物通通给你,就在大天使之剑!

本文讲解大天使之剑 H5 游戏的架设教程,想研究 H5 游戏如何实现,体验游戏中秒天秒地秒空气的一定不要错过。

封面图
封面图

大天使之剑游戏截图:

登录界面
登录界面

满级vip无限金币钻石
满级vip无限金币钻石

炫酷技能
炫酷技能

全区第一
全区第一

GM工具
GM工具

架设

1. 架设条件

大天使之剑架设需要准备:

  1. linux 服务器,推荐 centos7/8 版本,可以考虑阿里云腾讯云等。
  2. 游戏源码,关注大佬的公众号 echeverra,发送 “大天使之剑” 获取。

游戏源码中大佬已去除掉广告,并修复了 GM、关闭游戏等功能。

2. 安装宝塔

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

宝塔是一个服务器运维管理软件,我从最开始的 LAMP 到 PHPstudy 再到宝塔,发现宝塔真香!图形化界面用起来是真的省心。安装完后,会给出访问的 url、用户名和密码,记得保存下来,访问宝塔界面,如果无法访问可能是由于服务器没有开放 8888 端口,参考第 7 条开放端口。

宝塔
宝塔

3. 环境安装

宝塔安装完后,我们需要安装一下游戏的运行环境:

  1. web 服务器:nginx 1.20
  2. 数据库:mysql 5.6
  3. 编程语言:PHP 5.6、PHP 7.4
  4. 数据库管理工具:phpMyAdmin 4.9

游戏建站使用的是 PHP 5.6,PHP 7.4 是安装 phpMyAdmin 的前置条件。

通过宝塔软件商店进行安装:

环境安装
环境安装

除了通过宝塔安装的环境,还有需要通过命令安装的环境。

安装支持浮点运算的语言 bc 和库文件 libnsl:

yum install bc
yum install libnsl

命令装环境
命令装环境

后续步骤中的执行命令均从终端菜单中进入执行,不再截图展示。

4. 上传源码并解压

拿到游戏源码后,解压压缩文件大天使之剑,会得到 angel 和 sql 两个压缩文件,将 angel 压缩文件上传到服务器根目录。

上传资源
上传资源

上传完后,选择压缩文件 angel 并解压到根目录。

解压游戏资源
解压游戏资源

5. 文件权限

解压完成后,需要对解压的目录 /data/www/wwwroot/angel 赋予完整 777 权限。

权限处理
权限处理

权限处理
权限处理

或者通过命令授权:

chmod -R 777 /data
chmod -R 777 /www/wwwroot/angel

执行命令可能会提示.user.ini 文件权限无法更改,跳过即可,不影响架设。

6. 导入数据库

先通过宝塔修改数据库 root 密码:0987abc123

修改root密码
修改root密码

创建 h5 和 actor 两个数据库,h5 存储了用户相关数据,actor 存储了游戏相关数据。

创建h5数据库
创建h5数据库

创建actor数据库
创建actor数据库

密码不用修改,因为源码中使用的是 root 管理员账号。

将游戏源码文件中的压缩文件 sql 解压,得到两个 sql 文件,上传并导入对应数据库。

上传数据库文件
上传数据库文件

导入actor数据库文件
导入actor数据库文件

导入h5数据库文件
导入h5数据库文件

导入后,使 root 用户可以从任何主机连接到 mysql 服务器,执行命令:

mysql -uroot -p0987abc123
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '0987abc123' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '0987abc123' WITH GRANT OPTION;
flush privileges;
exit 

7. 开放端口

需要开放的端口:

  1. 宝塔:8888
  2. phpmyadmin:888
  3. mysql:3306
  4. 游戏相关端口:81、5007、6007、7007、9007

服务器开放端口,以阿里云开放 81 端口为例,其他端口按照同样方式添加,其他服务器也在安全里设置。

服务器开放81端口
服务器开放81端口

宝塔开放端口,同样以 81 端口为例:

宝塔开放81端口
宝塔开放81端口

如果不开放端口,服务会无法访问,如果对安全没什么要求,可以直接开放 1-65535 端口。

8. 修改 IP

源码中的 IP 是我自己虚拟机的,需要替换成你自己的服务器 IP。

需要修改 IP 的文件:

/www/wwwroot/angel/app1.php
/www/wwwroot/angel/login.php
/www/wwwroot/angel/config.php
/www/wwwroot/angel/game.php
/www/wwwroot/angel/login/cqlb/server.php
/www/wwwroot/angel/resource/main.min.js
/www/wwwroot/angel/login_bt.json

举例修改 angel/app1.php 文件,其他文件修改方式相同。

找到 app1.php 双击打开编辑模式,按 Ctrl+F 搜索 39.105.134.68,找到后替换成你的服务器 IP 并保存。

修改IP
修改IP

除了需要修改文件的 IP,还需修改数据库 h5 中表 server 的 IP 字段。

打开 phpmyadmin 管理工具:

phpmyadmin
phpmyadmin

双击字段修改 IP,回车保存:

修改数据库表IP
修改数据库表IP

9. 创建游戏网站

添加游戏网站才能访问 H5 游戏,通过网站菜单添加站点,域名写你的 IP:81,根目录为 /www/wwwroot/angel/,PHP 选择 5.6 版本。

创建游戏网站
创建游戏网站

10. 启动游戏

以上都执行完毕,那么到了激动人心的启动游戏啦,启动命令:

cd /data/
sh start_server.sh

正常启动后会提示 success,查看监听端口可看到 5007、6007、7007、9007 处在监听中,那么恭喜你可以开始游戏啦。

netstat -lntp

 
 
 

启动游戏
启动游戏

11. 开始游戏

访问游戏链接:http://IP:81,使用你服务器的 IP。

游戏登录界面
游戏登录界面

可以打开游戏登录界面,恭喜你已经成功了第一步,然后注册个账号登录游戏,点击开始游戏,此时会停留在一个界面 2-3 分钟时间,如下图,这是由于一直在加载一个 10MB + 的文件,耐心等待即可,第二次开始游戏会读取浏览器缓存数据,无需等待。

开始游戏等待界面
开始游戏等待界面

填写游戏名称,选择职业,目前有三个职业,剑士、魔法师和弓箭手,游戏中最后你将拥有三个职业,所以选择哪个都可以。

选择角色
选择角色

最后,进入游戏界面,恭喜你已经成功完成游戏架设!

游戏开始
游戏开始

12.GM 工具

游戏自带 GM 工具,也就是 Game Master 游戏管理员,可以对游戏进行充值,发送装备,经验材料等功能,游戏内置的充值已屏蔽了支付配置。点击左侧 GM 悬浮按钮,打开 GM 界面。账号填写登录的账号,不是游戏人物名称,元宝 280 代表充值月卡,满级 VIP10 需充值 200000 元宝。

GM
GM

邮件收取 GM 邮件

钻石
钻石

直接满级 VIP,也就是 2 万 RMB 的充值!

满级VIP
满级VIP

同样你也可以单独打开 GM 界面进行操作,链接:http://IP:81/gm

GM界面
GM界面

啊!无敌是多么寂寞...

13. 关闭游戏

关闭游戏执行命令:

cd /data/
sh stop_server.sh

执行后没有提示,即代表关闭成功。为什么没有提示,因为没有结果就是最好的结果。

后续

1. 安全问题

架设中使用的数据库是 root 账户,密码 0987abc123,这就相当于把数据库暴漏了,知道 IP 就可以直接登录操作数据库了,所以存在着很大的安全问题。

首先我想到的解决办法就是修改 root 账户的密码,将源码中所有 0987abc123 替换成自己的密码,但是游戏没有运行成功,研究源码发现后台的核心文件 gameworld_24_5 是加密的,会读取 GameWorld.txt 文件中的配置:

--数据库连接配置
SQL = 
{ 
    Host = "127.0.0.1",
    Port = 3306, 
    DBName = "actor",
    DBUser = "root", 
    DBPass = "jdusVRPm8XI+vYJb5gNZiw=="
}, --0987abc123

后台使用的数据库密码 DBPass 是 0987abc123 通过加密算法得到的,不知道加密方式和加密 key 无法设置新的密码,所以修改密码这种方法是行不通的。

所以我们可以在 phpMyadmin 中创建一个新的数据库管理员,拥有和 root 一样的权限,密码仍旧设置为 0987abc123,只要不泄露该用户名,数据库还是安全的,而且不会影响到 root 下的其他数据库。对应修改源码中的数据库配置,将数据库用户 root 修改为新管理员用户名,推荐使用 webstorm 或 vscode IDE 可全局搜索并替换。

还需要执行架设第 6 条导入数据库中的命令,使该管理员账户可以从任何主机连接到 mysql 服务器。

重新导入文件,运行游戏成功,这样就解决了数据库的安全问题。

2. 修改区名

修改区名需要修改两处。

修改 /data/gameworld/GameWorld.txt 文件

区名
区名

修改数据库 h5 中 server 表 name 字段

区名
区名

关闭游戏,重新启动游戏,否则有可能会报 “不存在这个服务器” 错误。

以上就是大天使之剑所有的图文架设教程,希望对你有所帮助,如有问题可通过大佬的博客 https://echeverra.cn 和微信公众号 echeverra 联系。