架设
1. 架设条件
龙之谷架设需要准备:
- linux 服务器,建议 CentOs 7.6 版本,推荐腾讯云轻量应用服务器,性价比高。
游戏会占大概 3G 左右的运行内存,客户端会有 200M 多的游戏热更,也是因为热更较大我一直没有开这款盯了好久的游戏 – -,后面我会讲解我是如何解决热更问题的哈。
2. 安装宝塔及环境
宝塔是一个服务器运维管理软件,安装命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装完后,按照提示信息登录宝塔,并在宝塔软件商店中搜索以下软件安装:
- web 服务器:Nginx 1.18
- 数据库:Mysql 5.6
- 编程语言:PHP 5.6
- 数据库管理工具:phpMyAdmin 4.4
- 工具:Linux 工具箱 2.4
3. 开放端口
我们直接开放所有端口 1-65535,腾讯云服务器在防火墙中配置规则。
![图片[1]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/cdn/202203272319048.png)
阿里云服务器在安全组中配置规则。
![图片[2]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/cdn/20220103155047.png)
然后在宝塔菜单安全中开放所有端口。
![图片[3]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/cdn/20220103155331.png)
4. 关闭防火墙
通过宝塔菜单终端,执行关闭防火墙命令:
systemctl stop firewalld.servicesystemctl disable firewalld.service
5. 上传源码
拿到源码后,将 lzg.zip 压缩文件通过宝塔上传到根目录,由于最新的宝塔禁止直接上传到根目录,可以先上传到任一目录下,在剪切粘贴到 / 根目录。
![图片[4]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/99f757aa01e3.png)
上传成功后,剪切粘贴到根目录,并解压到根目录。
cd /unzip -o lzg.zip
解压完成后,命令授予 777 权限:
chmod -R 777 /data
6. 配置环境
设置虚拟内存,Linux 工具箱添加 Swap,如果内存是 2G 的服务器一定要配置。
![图片[5]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/pmxy/1723015457029.png)
安装环境:
cd /roottar -xzvf v0.13.3.tar.gz cd hiredis-0.13.3make&&make install echo '/usr/local/lib' >> /etc/ld.so.conf ldconfig
7. 修改源码 IP
源码中的 IP(101.43.165.176),需要替换成你自己的服务器 IP。
- /data/sql/login.sql
- /data/lzg/bin/conf/ms_conf.xml
在宝塔中找到对应文件,Ctrl+F 批量替换 IP 即可。以第一个 login.sql 为例。
![图片[6]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/a2ecfcfc88d5.png)
8. 导入数据库
宝塔数据库中,修改 root 密码:521gmcn。如果想设置自己的数据库密码,将源码中的 521gmcn 全部替换为你自己的密码即可。
![图片[7]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/wlsh/1739243441980.png)
通过命令导入数据库:
cd /data/sql./db.sh
同步数据库会看到创建 4 个数据库,说明导入成功~
![图片[8]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/250b99e9cf45.png)
9. 创建网站
龙之谷需要创建一个站点,域名为 127.0.0.1:808,根目录为 /data/game,PHP 选择 5.6 版本。
![图片[9]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/2f39dfd766e9.png)
嗯,创建好就可以了,不需要其他设置。
10. 启动游戏
以上步骤都操作完毕,就到了激动人心的启动游戏啦!
启动游戏服务:
cd /data/lzg./s1 cd /data/lzg./start
查看下服务端口:
netstat -lntp
![图片[10]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/535295428cec.png)
游戏启动成功后,因客户端不支持注册,只能通过链接:http://IP:808/reg/,注册游戏账号。
![图片[11]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/836bad4bfa0d.png)
11. 客户端修改
11.1 安卓客户端
首先修改安卓端,只需要修改一个文件:
- /assets/bin/Data/Managed/Assembly-CSharp.dll
找到龙之谷.apk 安卓客户端,用好压软件打开,将文件 Assembly-CSharp.dll 拖出来。找到工具目录下的 dnSpy-net-6.1.8win32.zip,解压缩后打开启动文件 dnSpy.exe,将文件 Assembly-CSharp.dll 直接拖到 dnSpy 面板左侧。
![图片[12]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/ce2b25a4025e.png)
点击 dnSpy 左上方编辑菜单下的搜索程序集,在下面搜索框中输入 IP(101.43.165.176),搜索框右侧的两个下拉框分别选择数字 / 字符串和所选文件,等到搜索结果展示出.cctor。
![图片[13]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/5dfc8f76996f.png)
双击.cctor 会跳转到对应文件,鼠标右键点击界面上的 IP,选择编辑 IL 指令。
![图片[14]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/115bbfff620e.png)
在指令弹窗中,将所有的 IP(101.43.165.176)改为你的 IP,端口不要改,一共 9 处,改好后点击右下角的确定按钮。
![图片[15]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/01d5d7081d79.png)
回到 dnSpy 主界面,点击左上角文件菜单下的保存模块,弹窗中点击文件名后面的三个点按钮。
![图片[16]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/0fa645b573b9.png)
选择 Assembly-CSharp.dll 文件,点击保存,替换原来的文件。
![图片[17]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/d343d8fe2b25.png)
回到 dnSpy 保存模块弹窗界面,点击确定,修改完毕。
最后将修改好的 Assembly-CSharp.dll 文件拖回龙之谷.apk 原文件目录下,替换掉原文件。
![图片[18]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/cdd225504b78.png)
替换后使用签名工具 ApkTool 选择修改好的龙之谷.apk 文件进行签名。
![图片[19]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/e3be181dd12d.png)
签名后就可以安装到模拟器或者安卓手机启动啦,游戏启动会有 251M 的热更。
11.2 苹果客户端
苹果端同样需要修改一个文件:
- /Payload/dragonnest.app/Data/Managed/Metadata/global-metadata.dat
同样用好压打开苹果客户端龙之谷.ipa,将文件 global-metadata.dat 拖出。找到工具目录下的 MetaDataStringEditor.exe 启动,左上角点击加载按钮,选择文件 global-metadata.dat,在上方输入 IP(101.43.165.176),点击右侧的下一个进行搜索。找到 IP 后鼠标左键单击会显示编辑。
![图片[20]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/886a3700e557.png)
点击编辑按钮,在弹窗中将 IP 修改为你的服务器 IP,然后点击保存。
![图片[21]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/dcf16356079b.png)
再点击右上角的下一个,每一个都需要编辑修改 IP,一共 6 处,全部改完后,点击左上方的另存为,切记!选择一个新的文件夹保存,不要覆盖替换原文件,我测试过无法覆盖替换掉的。
最后将文件 global-metadata.dat 拖回龙之谷.ipa 客户端对应的目录下,替换掉原文件。
替换后,需要进行签名,建议使用爱思助手签名,或使用巨魔签名也是没问题的,两种方式我都试过。
![图片[22]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/c2b12f2d5e75.png)
签名后就可以安装到苹果手机啦,需要在手机设置 – 通用 – 设备管理中信任该软件才可启动,感觉苹果手机上运行要比安卓流畅的多,同样游戏有 236M 的热更。
12. 游戏后台
游戏 GM 后台链接:http://ip:808/ht/gm.php,默认 GM 码:123456,可以授权玩家,也可以直接充值和发送物品。如果想修改默认 GM 码,只需要修改文件 /data/game/ht/langlang.php 中 $sqm 字段值即可。
![图片[23]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/d9ff517ae83f.png)
玩家后台链接:http://ip:808/ht/,授权过的玩家就可以充值和发送物品啦。
![图片[24]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/a5bc506d647f.png)
13. 关闭游戏
关闭游戏服务很简单,只需要输入以下命令:
cd /data/lzg./stop
后续
游戏监控
担心游戏掉线或者服务器重启,我们可以宝塔创建一个定时任务来监控游戏,异常时自动重新启动游戏:
![图片[25]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1744189344261.jpg)
脚本如下:
#!/bin/sh
XYTCPListeningnum=`netstat -an | egrep "127.0.0.1:21020" | awk '$1 == "tcp"'|wc -l`
if [ $XYTCPListeningnum -eq 0 ];
then
cd /data/lzg
./s1
cd /data/lzg
./start
fi
日志清理
游戏运行会产生大量的日志文件占用磁盘空间,我们同样可以用宝塔定时任务,每天清除日志文件,防止磁盘被占满,命令如下:
rm -rf /data/lzg/bin/log/*
热更分离
嗯,我觉得热更分离要比之前的热更外置看起来要专业一些,哈哈,这次的龙之谷热更资源分离用了我足足两天时间才搞定,和其他的游戏热更分离方式不一样,现在完完全全分享给大家!
龙之谷安卓的热更是 251M,苹果是 236M,说大不大说小要不小,对于我 2-4-5 配置的渣渣服务器肯定是招架不住的,所以继续用我的三方资源服务器来做游戏热更。
首先按照惯例找到热更资源位置,这个并不难,在目录 /data/game/Official/Patch/Dev 下的 Android 和 IOS 就是安卓和苹果的热更文件。
![图片[26]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1743650722719.jpg)
然后开始全局搜索 Official、Patch、Android 这几个路径的关键单词,竟然没找到!我就纳闷了,难道写在可客户端?直到我在客户端热更的时候发现了一个细节!
![图片[27]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1743650864620.jpg)
没错就是这个文件,客户端会先获取这个文件后找到要下载的热更资源,经测试安卓的热更资源是 /data/game/Official/Patch/Dev/Android/new_manifest.1.44.113.bytes,苹果的是 /data/game/Official/Patch/Dev/IOS/new_manifest.1.44.114.bytes,打开安卓的热更资源文件,我们来看下都是啥。
<XVersionNewData>
<Major_Version>1</Major_Version>
<Build_Version>44</Build_Version>
<Minor_Version>113</Minor_Version>
<KeyValues />
<m_res_list>
<XVersionNewItem>
<download>ab/AssetBundles/3134088109.ab</download>
<save_path>AssetBundles/3134088109.ab</save_path>
<hash>62f8ab4433d1bbc9aa770cf302afb963d69926d1</hash>
<size>2029</size>
<version>1.44.1</version>
</XVersionNewItem>
...
</m_res_list>
</XVersionNewData>
有无数的 <XVersionNewItem> 就是每一项要下载的资源,其中 <download> 是下载的地址,<save_path> 应该是要保存客户端的地址,那就好办了,我们将 AssetBundles 目录下的资源全部放在资源服务器上,将 <download>ab/AssetBundles/3134088109.ab</download> 相对路径改为 <download>http://IP:port/ab/AssetBundles/3134088109.ab</download> 的资源链接路径,说干就干,然后测试下来不出意外的失败了!
![图片[28]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1743651371205.jpg)
于是我抓包看了下请求的路径,发现它会自动拼接上服务器的网站路径。所以我虽然写的是资源链接路径,但它会在我的已写的路径前再拼接上服务器网站路径,肯定是访问不到的。
![图片[29]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1744257905170.png)
那怎么办呢,没办法只能求助大佬 – -,大佬给我的解决方案是配置 nginx,做特定的访问路径进行跳转,一下让我茅塞顿开,有了思路~
首先我们将游戏热更资源上传到资源服务器上,将游戏服务器 /data/game/Official/Patch/Dev/Android/ 目录下的 ad 目录和 new_manifest.1.44.113.bytes 文件上传到资源服务器的 /www/wwwroot/lzg/android/ 目录下。
![图片[30]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1743652496390.jpg)
再将游戏服务器 /data/game/Official/Patch/Dev/IOS/ 目录下的 ad 目录和 new_manifest.1.44.114.bytes 文件上传到资源服务器的 /www/wwwroot/lzg/ios/ 目录下。
![图片[31]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1743652593639.jpg)
资源服务器上创建一个站点,域名 IP:port,端口任意没被占用的就可以,根目录设置为 /www/wwwroot/lzg。
![图片[32]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1743652710246.jpg)
测试下如果通过 http://IP:port/android/ab/AssetBundles/3134088109.ab 成功下载对应的文件,说明资源服务器配置成功,可以成功访问到资源。
配置完资源服务器,我们再处理游戏服务器。将原热更资源访问的链接进行了跳转的配置,需要在游戏服务器 nginx 配置文件中添加如下代码:
![图片[33]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1743652135034.jpg)
server {
listen 808;
server_name 游戏服务器IP;
# 处理Android路径跳转
location ^~ /Official/Patch/Dev/Android/ {
# 正则匹配并捕获后续路径(如ab/AssetBundles/32112597.ab)
rewrite ^/Official/Patch/Dev/Android/(.*) http://资源服务器IP:port/android/$1 permanent;
}
# 处理IOS路径跳转
location ^~ /Official/Patch/Dev/IOS/ {
# 正则匹配并捕获后续路径
rewrite ^/Official/Patch/Dev/IOS/(.*) http://资源服务器IP:port/ios/$1 permanent;
}
}
其实就是重写了跳转路径,正则匹配到热更资源的路径后,重写成了资源服务器的路径来获取资源。我们再来抓包看下。
![图片[34]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1743653301466.jpg)
我们可以看到原热更资源路径 301 重定向到资源服务器上 200 成功获取到了游戏资源!在看游戏也有了更新进度!
![图片[35]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1743653403695.jpg)
简直不要太 Nice 啊!!!~ 这样就成功解决了游戏热更分离的问题了,游戏服务器宽带减负,流畅度嗖嗖的,如果热更中途提示某某 ab 下载失败,不要慌,点击再次重新获取几次就成功下载啦~
不过后来又发现了个问题,游戏的注册和 GM 后台链接报 404,去除 nginx 新增配置后就好了 – -,说明是 nginx 配置影响到了其他的访问,不过也还是被我巧妙的解决了,再创建一个站点,端口改一下用 809,用这个新的站点来注册和使用 GM 后台就可以了,测试也完全没问题~
![图片[36]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付龙之谷飓风龙版-3D动作冒险手游Linux手工服务端+安卓苹果双端+GM后台+搭建教程](https://echeverra.cn/wp-content/static/article-img/lzg/1743653696675.jpg)
我简直是个天才(不要脸的自吹一下),哈哈~
2. 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
3. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
4. 本站所有内容均来源于网络,仅供学习与参考,请勿商业运营,严禁从事违法、侵权等任何非法活动,否则后果自负
5. 所有信息资源,本站只做收集和技术分享,请下载后24小时内删除!












暂无评论内容