wlkejires 发表于 2026-2-10 11:04:23

万灵齐聚,山海相遇,万灵山海手游详细图文架设教程

本帖最后由 wlkejires 于 2026-6-19 11:02 编辑

这次给大家带来的是准备了好久的精品仙侠神话回合制手游,万灵山海之万物归元,安卓苹果双端,绝对是难得的精品,游戏精美绝伦,基本无 BUG,快来试试吧~
https://echeverra.cn/wp-content/static/article-img/wlsh/cover.jpg

本文讲解万灵山海手游架设教程,万灵齐聚,山海相遇!开启你的奇幻冒险之旅吧,希望你也喜欢这款游戏~
万灵山海游戏截图:
https://echeverra.cn/wp-content/static/article-img/wlsh/1739330378078.png


https://echeverra.cn/wp-content/static/article-img/wlsh/1739330574489.png


https://echeverra.cn/wp-content/static/article-img/wlsh/1739330276072.png


https://echeverra.cn/wp-content/static/article-img/wlsh/1739330329069.png


https://echeverra.cn/wp-content/static/article-img/wlsh/1739330632679.png


https://echeverra.cn/wp-content/static/article-img/wlsh/1739330457490.png


https://echeverra.cn/wp-content/static/article-img/wlsh/1739330503952.png


https://echeverra.cn/wp-content/static/article-img/wlsh/1739332293676.png


https://echeverra.cn/wp-content/static/article-img/wlsh/1739332324970.png


https://echeverra.cn/wp-content/static/article-img/wlsh/1739332366753.png

架设1. 架设条件万灵山海架设需要准备:
[*]linux 服务器,建议 CentOs 7.6 版本,推荐腾讯云轻量应用服务器,性价比高。
[*]游戏源码,关注我的公众号 echeverra,发送 “万灵山海” 免费获取。
游戏会占大概 3G 左右的运行内存,客户端游戏会下载 3G 左右的资源!非常大,建议最低使用 2 核 4G 配置的服务器。2. 安装宝塔及环境宝塔是一个服务器运维管理软件,安装命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh





安装完后,按照提示信息登录宝塔,并在宝塔软件商店中搜索以下软件安装:
[*]web 服务器:Nginx 1.24
[*]数据库:Mysql 5.7
[*]编程语言:PHP 7.2
[*]数据库管理工具:phpMyAdmin 4.4
[*]工具:Linux 工具箱 2.4
3. 开放端口我们直接开放所有端口 1-65535,阿里云服务器在安全组中配置规则。
https://echeverra.cn/wp-content/static/article-img/cdn/20220103155047.png

腾讯云服务器在防火墙中配置规则。
https://echeverra.cn/wp-content/static/article-img/cdn/202203272319048.png

然后在宝塔菜单安全中开放所有端口。
https://echeverra.cn/wp-content/static/article-img/cdn/20220103155331.png

4. 关闭防火墙通过宝塔菜单终端,执行关闭防火墙命令:
systemctl stop firewalld.service
systemctl disable firewalld.service





5. 上传源码拿到源码后,将 wlsh.zip 压缩文件通过宝塔上传到根目录,由于最新的宝塔禁止直接上传到根目录,可以先上传到任一目录下,在剪切粘贴到 / 根目录。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739242628060.png

上传成功后,剪切粘贴到根目录,并解压到根目录。
cd /
unzip wlsh.zip





解压完成后,命令授予 777 权限:
chmod -R 777 /data/





6. 配置环境设置虚拟内存,Linux 工具箱添加 Swap。
https://echeverra.cn/wp-content/static/article-img/pmxy/1723015457029.png

配置动态链接器的缓存:
ldconfig





7. 修改源码 IP源码中的 IP(82.156.126.171),需要替换成你自己的服务器 IP。
[*]\data\WL_BIGCROSS\release\serverconfig.xml
[*]\data\WL_S1\release\serverconfig.xml
[*]\data\WL_CROSS\release\serverconfig.xml
[*]\data\www\agent\public\bnb\api.php
在宝塔中找到对应文件,Ctrl+F 批量替换 IP 即可。以第一个 serverconfig.xml 为例。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739243306810.png

8. 导入数据库宝塔数据库中,修改 root 密码:521gmcn。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739243441980.png

通过命令导入数据库:
cd /data
./sk





同步数据库会看到创建 4 个数据库,说明导入成功~(更新了资源,数据库 aygm 改为了 ruankor,图片未更新请知悉,下同)
https://echeverra.cn/wp-content/static/article-img/wlsh/1739243583488.png

9. 创建网站万灵山海需要创建一个站点,域名为 127.0.0.1:81,根目录为 /data/www/agent,PHP 选择 7.2 版本。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739243902614.png

点击创建好网站,在网站目录中将运行目录设置为 /public,记得点击后面的保存按钮。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739244116755.png

再设置伪静态为 thinkphp,点击保存。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739244307678.png

10. 启动游戏以上步骤都操作完毕,就到了激动人心的启动游戏啦!启动游戏服务:
cd /data/WL_BIGCROSS/release
./start.sh

cd /data/WL_CROSS/release
./start.sh

cd /data/WL_S1/release
./start.sh





查看下服务端口:
netstat -lntp






https://echeverra.cn/wp-content/static/article-img/wlsh/1739242775844.png

11. 客户端修改11.1 安卓客户端首先修改安卓端,需要修改两个个文件:
[*]\assets\bin\Data\Managed\Metadata\global-metadata.dat
[*]\assets\AssetBundle\lua\preload-7516A9877653F4EDF42A2EA1A5C38FE9.ab
找到万灵山海.apk 安卓客户端,用好压软件打开,将这两个文件拖出来。这两个文件修改较复杂,我会尽量说的详细些哈。首先修改 global-metadata.dat 文件,需要使用工具文件夹中的 global-metadata编辑器,打开 MetaDataStringEditor.exe,点击加载,选择 global-metadata.dat 文件,在上方输入 82.156.126.171,点击后面的下一个,找到搜到的那一行,点击出现编辑,点击编辑出现弹窗,弹窗中修改为自己的 IP,最后点击保存。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739245478971.png

然后在点击窗口上面的另存为,保存文件为 1.dat,将原来的文件 global-metadata.dat 删除,将 1.dat 文件名改为 global-metadata.dat,再将 global-metadata.dat 文件拖回万灵山海.apk 安卓客户端原文件目录下,替换掉原来的文件。
https://echeverra.cn/wp-content/static/article-img/wlsh/1738894960327.png

再来修改 preload-7516A9877653F4EDF42A2EA1A5C38FE9.ab 文件,需使用工具文件夹下的客户端修改工具,解压找到 \AssetsBundleExtractor中文汉化版\32bit\AssetBundleExtractor.exe 双击打开,选择文件 - 打开,选择 preload-7516A9877653F4EDF42A2EA1A5C38FE9.ab 文件,点击是。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739253742252.png

此刻会让另存文件,我们填写 1,点击保存。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739253805825.png

点击信息按钮。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739253938084.png

信息弹窗中选择 global_config.lua,点击右侧的导出转存,然后保存下来,会生成一个 txt 文件。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739254000694.png

打开这个 txt 文件,将里面的 IP (82.156.126.171),替换成你的 IP,然后保存。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739254342347.png

回到信息弹窗界面,点击右侧的导入转存,选择刚修改的 txt 文件,点击下方的确定,然后弹窗点击是。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739255081015.png

再选择文件 - 保存。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739255212465.png

保存文件填写 2,点击保存。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739255689988.png

再选择文件 - 压缩,选择刚保存的文件 2。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739255999425.png

弹窗点击确定。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739256063966.png

然后会让另存文件,填写 3,保存。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739256113076.png

最后我们需要把 preload-7516A9877653F4EDF42A2EA1A5C38FE9.ab 删除,将文件 3 重命名为 preload-7516A9877653F4EDF42A2EA1A5C38FE9.ab。将该文件拖回万灵山海.apk 安卓客户端原文件目录下,替换掉原来的文件。
https://echeverra.cn/wp-content/static/article-img/wlsh/1738895217137.png

呼... 是不是步骤有点多,后面多操作几次就熟练了 - -。全部替换后使用签名工具 ApkTool 选择修改好的万灵山海.apk 文件进行签名。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739256796348.png

然后就可以安装到模拟器或者安卓手机启动啦,游戏启动会有 16M 多的热更,游戏默认注册码:123。11.2 苹果客户端苹果端同样需要修改两个文件:
[*]\Payload\bnb.app\Data\Managed\Metadata\global-metadata.dat
[*]\Payload\bnb.app\Data\Raw\AssetBundle\lua\preload-4CFE5EECF63CB00AD90FD3937C929740.ab
同样用好压打开苹果客户端万灵山海.ipa,将两个文件拖出,使用和安卓客户端一样的方法修改文件的 IP,最后在替换掉客户端的原文件即可,和安卓的修改方法一模一样,这里我就不赘述了哈。全部替换后,需要进行签名,建议使用爱思助手签名。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739258487120.png

同样苹果启动游戏也会有 9M 多的热更新,默认注册码:123。12. 游戏后台游戏有两个后台,一个运营后台,一个 GM 后台。运营后台链接:http://ip:81/guanli.php,默认账号:admin,默认密码:123456,功能很强大,可以查看玩家列表、发送邮件、设置公告等等。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739257690091.png

如果自己开服玩建议修改默认密码,右上角点击 Admin,查看个人资料界面,即可修改密码。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739257637641.png

还有一个 GM 后台,其中 GM 总后台链接:http://ip:81/gmht/gm.php,默认 GM 码:123456,可以授权玩家,也可以直接充值和发送物品。如果想修改默认 GM 码,只需要修改文件 /data/www/agent/public/gmht/user/config.php 中 $gmcodeb 字段值即可。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739159492244.png

玩家后台链接:http://ip:81/gmht,授权过的玩家就可以充值和发送物品啦。13. 关闭游戏关闭游戏服务很简单,只需要输入以下命令:
cd /data/WL_BIGCROSS/release
./stop.sh

cd /data/WL_CROSS/release
./stop.sh

cd /data/WL_S1/release
./stop.sh





友情提示,每次备份快照时,先关闭游戏服务,以防回滚游戏发生异常。后续免责声明我架设的所有游戏资源均搜集于互联网,如有侵权,请联系我,我会马上删除。游戏都是禁止内充的,只限于技术研究使用,禁止商用,请于下载后 24 小时内删除,或购买正版。根据二○○二年一月一日《计算机软件保护条例》规定:为了学习和
研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软
件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬
鉴于此,也希望大家按此说明研究软件。游戏监控担心游戏掉线或者服务器重启,我们可以宝塔创建一个定时任务来监控游戏,异常时自动重新启动游戏:
https://echeverra.cn/wp-content/static/article-img/wlsh/1739340866097.png


#!/bin/sh
XYTCPListeningnum=`netstat -an | egrep "0.0.0.0:40000" | awk '$1 == "tcp"'|wc -l`
if [ $XYTCPListeningnum -eq 0 ];
    then

cd /data/WL_BIGCROSS/release
./start.sh

cd /data/WL_CROSS/release
./start.sh

cd /data/WL_S1/release
./start.sh

fi





日志清理游戏运行会产生大量的日志文件占用磁盘空间,我们同样可以用宝塔定时任务,每天清除日志文件,防止磁盘被占满,命令如下:
rm -rf/data/WL_S1/release/log/*
rm -rf/data/WL_CROSS/release/log/*





游戏公告游戏公告修改都在数据库 ruankor 表 ay_gameconfig,登录界面公告需要修改 id 为 34 的 content 值,游戏内的公告需要修改 id 为 49 的 content 值。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739327580955.png

游戏热更这款游戏和其他游戏最大的不同就是,游戏资源需要单独下载,而不是集成到客户端中的,游戏到 30 级游戏内会下载 2G 左右的游戏资源,还有一些过程中加载资源,总共大概 3G 左右的资源要下载...
https://echeverra.cn/wp-content/static/article-img/wlsh/20250211145728.jpg

可想而知一般的服务器根本扛不住,哪怕几个人玩也会卡的不要不要,所以我花了好长时间来攻克这个问题...最开始我想到的是购买 123 网盘的直链流量包 80 元 1T,大概能够 300 个玩家使用,但是资源包上传网盘后竟然无法成功解压,如果不解压上传一次只能上传 1000 个文件,而实际文件个数要远远大于这个数,不解压上传根本不现实且很容易遗漏,所以只得放弃。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739323436357.png

最后求教了糊涂鳄大佬,推荐我使用单独的服务器作为游戏热更使用,就是这款轻量锐驰型服务器!
https://echeverra.cn/wp-content/static/article-img/wlsh/1739323793083.png

2 核 2G 宽带 200M 无限量,每月 40 元,由于只作为热更,所以内存 2G 足矣,200M 宽带经过本人测试好的时候能达到 5000K 左右,不好的时候几百 K 也是常有的事儿,并不稳定,但胜在省心啊,价格也还可以接受,这样我还可以架设其他热更大的游戏,简直不要太 Nice~
https://echeverra.cn/wp-content/static/article-img/wlsh/1739341479544.png

下面说下万灵山海如何使用三方服务器作为游戏热更资源,首先将三方服务器安装好宝塔,新建目录 /www/wwwroot/wl,在本地找到游戏热更目录 \data\www\agent\public\bnb_up,将 bnb_up 压缩,上传到三方服务器 /www/wwwroot/wl 目录下,上传好后解压。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739325429704.png

在创建站点,域名填写 IP:81,端口号随意,别占用其他已用的端口就好,根目录选择 /www/wwwroot/wl。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739325905225.png

最后需要修改游戏服务器文件 /data/www/agent/public/bnb/api.php,Android 热更修改这两行。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739326552943.png

IOS 热更修改这两行。
https://echeverra.cn/wp-content/static/article-img/wlsh/1739326522250.png

将 IP 替换为你三方服务器的 IP 即可,这样游戏内的游戏资源下载就只会使用三方服务器的宽带啦,Nice~每日签到游戏玩半个月后,玩家反馈有一些道具物品难度获得极大,或者根本无法获取,比如星辰技能书和精灵球上古异兽,所以我准备通过每日签到,每天送给大家。首先在 PhpMyadmin 中找到数据库 ruankor 表 ay_gameconfig,执行 sql 语句:
INSERT INTO `ay_gameconfig` VALUES
(62,'qiandao_item2','qiandao','Qiandao item','','string','','56368','value1|title1\r\nvalue2|title2','','','{\"table\":\"\",\"conditions\":\"\",\"key\":\"\",\"value\":\"\"}'),
(63,'qiandao_num2','qiandao','Qiandao num','','string','','1','value1|title1\r\nvalue2|title2','','','{\"table\":\"\",\"conditions\":\"\",\"key\":\"\",\"value\":\"\"}'),
(64,'qiandao_item3','qiandao','Qiandao item','','string','','33011','value1|title1\r\nvalue2|title2','','','{\"table\":\"\",\"conditions\":\"\",\"key\":\"\",\"value\":\"\"}'),
(65,'qiandao_num3','qiandao','Qiandao num','','string','','1','value1|title1\r\nvalue2|title2','','','{\"table\":\"\",\"conditions\":\"\",\"key\":\"\",\"value\":\"\"}')






https://echeverra.cn/wp-content/static/article-img/wlsh/1741923301350.png

增加签到道具 qiandao_item2 和 qiandao_item3,物品代码分别是 56368 和 33011,大家可以通过文件 /data/www/agent/public/gmht/user/item_gm.txt 找到物品代码,数量分别设置为 1 个。然后修改后台文件 /data/www/agent/application/api/controller/Bnb.php,幸好我找的这个版本后台不是加密的,所以可以自行更改。
https://echeverra.cn/wp-content/static/article-img/wlsh/1741922635346.png

代码如下:
public function player_qiandao()
    {
      ...
      $params11 = \think\Db::name("gameconfig")->field("value")->where("name", "qiandao_money")->find();
      $params12 = \think\Db::name("gameconfig")->field("value")->where("name", "qiandao_item")->find();
      $params13 = \think\Db::name("gameconfig")->field("value")->where("name", "qiandao_num")->find();
      // 增加签到物品
      $params14 = \think\Db::name("gameconfig")->field("value")->where("name", "qiandao_item2")->find();
      $params15 = \think\Db::name("gameconfig")->field("value")->where("name", "qiandao_num2")->find();
      $params16 = \think\Db::name("gameconfig")->field("value")->where("name", "qiandao_item3")->find();
      $params17 = \think\Db::name("gameconfig")->field("value")->where("name", "qiandao_num3")->find();
      $user = explode("_", $request["user_id"])[1];
      $params = \think\Db::name("qiandao")->where("user", $user)->find();
      $usermoney = \think\Db::name("user")->where("username", $user)->find();
      $param = $params11["value"];
      $newmoney = $usermoney["money"] + $param;
      if (!$params) {
            $dataA = ["server_id" => $request["server_id"], "user" => $user, "role_id" => $request["role_id"], "role_name" => $request["role_name"], "time" => time(), "ip" => $ip, "result" => "1"];
            $datab = \think\Db::name("qiandao")->insert($dataA, true);
            if ($datab) {
                $dataa = \think\Db::name("user")->where("username", $user)->update(["money" => $newmoney]);
                $this->GMmail($request["server_id"], $request["role_id"], $params12["value"], $params13["value"]);
                // 增加签到物品
                $this->GMmail($request["server_id"], $request["role_id"], $params14["value"], $params15["value"]);
                $this->GMmail($request["server_id"], $request["role_id"], $params16["value"], $params17["value"]);
                $data = "签到成功,获得 归元币*1388,其余奖励请到邮箱查收。";
            }
      } else {
            $lastSignInDate = date("Y-m-d", $params["time"]);
            $currentDate = date("Y-m-d");
            if ($lastSignInDate == $currentDate) {
                $data = "今日已签到";
                $init_info = ["ret" => 0, "data" => $data];
                return json_encode($init_info);
            } else {
                $dataa = \think\Db::name("qiandao")->where("user", $user)->update(["time" => time()]);
                $dataa = \think\Db::name("user")->where("username", $user)->update(["money" => $newmoney]);
                $this->GMmail($request["server_id"], $request["role_id"], $params12["value"], $params13["value"]);
                // 增加签到物品
                $this->GMmail($request["server_id"], $request["role_id"], $params14["value"], $params15["value"]);
                $this->GMmail($request["server_id"], $request["role_id"], $params16["value"], $params17["value"]);
                $data = "签到成功,获得 归元币*1388,其余奖励请到邮箱查收。";
            }
      }
      $init_info = ["ret" => 0, "data" => $data];
      return json_encode($init_info);
    }





如果当天已经签到的,想重新今日签到,可以清空数据库 ruankor 表 ay_qiandao,无需重启,登录游戏进个人中心,点击今日签到,就可以邮箱领取新增的签到物品啦!Nice~
https://echeverra.cn/wp-content/static/article-img/wlsh/1741922886753.png

组队机器人游戏中很多副本需要组队进入,如果组不到玩家就需要组机器人啦,这里使用我分享的服务端目录下万灵山海组队机器人补丁.zip 补丁文件,解压后将 robot.xml 文件分别上传到以下三个目录,替换掉原文件即可:
[*]/data/WL_S1/config/gameworld/logicconfig
[*]/data/WL_CROSS/config/gameworld/logicconfig
[*]/data/WL_BIGCROSS/config/gameworld/logicconfig
然后重启游戏就可以啦~游戏重启其实这个游戏也是比较脆弱的,如果多次关闭或者启动游戏偶尔会出现异常锁情况,无法启动成功,提示:
https://echeverra.cn/wp-content/static/article-img/wlsh/1579c9e3be5a.png

一旦出现这种情况,就需要先将启动时生成的 lock 锁文件先删掉,比如上图是在 /data/WL_CROSS/release 目录下,找到 oper.lock 文件删掉,再尝试重新启动。比较稳妥的做法是,先执行关闭游戏命令,等 10 分钟后重启服务器,等待重启成功登录宝塔(这时我会备份服务器快照),然后再执行启动游戏命令,启动大概 10 多分钟,等 CPU 负载等降下来就说明启动成功啦~游戏里可以进入跨服就没问题啦~如果启动报错的频率还是很高,我也研究出了第二种邪修方法,通过 PHPMyAdmin 将数据库 wl_cross 表 usertraderecord 清空,此表应该是记录玩家交易的,所以可以删除,表数据过大会占用过多内存,造成启动失败。
https://echeverra.cn/wp-content/static/article-img/wlsh/6f96d304cd28.png

我已经测试过,该方法确实是可行的,基本不会再出现启动失败的情况。关于游戏这款万灵山海我关注了很久,是难得精品,还是以仙侠神话为背景的游戏,值得长时间养成,BUG 基本没有,现在唯一的热更问题我也解决了,不出意外肯定是一直开服啦,为了保障游戏的可玩性,暂时我只会开充值后台,可以无限消费,物品道具后台等大家玩一段时间后我再考虑要不要开放~
https://echeverra.cn/wp-content/static/article-img/wlsh/cover2.jpeg

最后感谢大家一路的支持与陪伴,祝大家游戏愉快,一切顺利~
**** Hidden Message *****
页: [1]
查看完整版本: 万灵齐聚,山海相遇,万灵山海手游详细图文架设教程