趣九游站长亲测!稀有3D国风回合手游《万灵山海版本通用架设教程》发布!含单机镜像+Linux手工端、安卓苹果双客户端、GM授权后台及详细搭建教程,专属套装畅爽体验。

趣九游LOGO
关注公众号--趣九游 关注公众号更多教学视频
关注二维码
文章摘要
趣九游站长发布《万灵山海》通用架设教程,涵盖Linux手工端与Windows一键端部署方法。教程详细说明环境准备、服务端启动顺序、客户端IP修改、GM后台配置及常见问题解决。建议使用CentOS 7.6系统与2核4G以上服务器,通过宝塔面板配置Nginx、MySQL等环境,并利用第三方服务器分流热更新资源以提升体验。支持安卓苹果双端修改,提供运营与GM双后台,默认账号密码可自定义,确保私服稳定运行。

图片[2]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海镜神龙修复版-稀有3D国风回合手游单机一键端+Linux手工端+假人陪玩+无限开区

万灵山海手游通用架设教程

前言作为一名资深手游服务端搭建者,我发现《万灵山海》系列的不同版本(如万物归元版、镜神龙版等)其核心架设逻辑是相通的。本教程将剥离具体版本的细微差别,为您提炼出一套通用的架设方法论。无论您获得的是哪个版本的《万灵山海》服务端,遵循本教程的步骤都能极大提高搭建成功率。本站长将基于常见的 Windows一键端(虚拟机模式)​ 和 Linux手工端​ 进行讲解。一、 通用环境准备 (Prerequisite)这是所有版本搭建的第一步,至关重要。

  1. 1.虚拟机软件 (针对一键端):如您使用.ova.vmx等一键端镜像,必须安装 VMware Workstation (Pro或Player版均可)。确保网络适配器设置为 NAT模式(这是最常见和简单的方式)。
  2. 2.系统环境 (针对手工端)
    • Windows手工端:通常需要安装 .NET Framework 4.5+运行库。
    • Linux手工端:需要纯净的 CentOS 7.x系统,并提前使用 yum命令安装 gccgcc-c++openssl-devel等基础编译环境。
  3. 3.数据库工具:准备 Navicat​ 或 HeidiSQL​ 等数据库连接工具,用于修改服务器IP、创建数据库等。
  4. 4.客户端修改工具:准备 APK IDE​ 或 MT管理器(用于安卓客户端反编译和修改IP)。

二、 通用服务端启动流程 (Core Steps)不同版本的服务端文件命名可能不同,但启动逻辑一致。

  1. 1.启动基础服务
    • 数据库:​ 首先确保MySQL数据库服务已启动。在一键端中,通常通过运行启动数据库.batmysql_start.bat实现。在Linux手工端中,使用命令 systemctl start mysqld
    • Web服务:​ 确保Nginx或Apache服务已运行,用于处理客户端的更新和资源请求。
  2. 2.按顺序启动游戏服务器这是最关键的一步,必须遵循以下顺序,后一个服务依赖前一个服务:
    • Step 1: 启动日志服务 (Log Server)​ – 通常是第一个启动的服务。
    • Step 2: 启动数据库代理/网关服务 (DB Agent/Gateway)​ – 连接游戏逻辑与数据库的桥梁。
    • Step 3: 启动世界服/主服 (World Server/Game Server)​ – 这是游戏的核心逻辑服务器。
    • Step 4: 启动登录服/账号服 (Login Server/Account Server)​ – 处理玩家登录验证。
    • Step 5: 启动跨服服 (Cross Server)​ – 如果版本支持跨服,最后启动此服务。
    • 观察日志:​ 每个服务启动后,请观察其命令行窗口输出的日志,确保没有红色的“Error”级别的报错,只有“Info”或“Warning”通常可忽略。

三、 通用客户端修改与连接 (Client Modification)服务端成功启动后,需要修改客户端才能连接到自己搭建的服务器。

  1. 1.定位IP文件:使用工具反编译安卓APK文件,在 assets目录下寻找包含IP地址的配置文件(常见文件名如 serverlist.xmlconfig.jsongame.json)。
  2. 2.修改IP地址:将文件内所有的服务器IP地址修改为您虚拟机(一键端)或云服务器(手工端)的本地局域网IP(如192.168.1.x),而非127.0.0.1。
  3. 3.重签名与安装:修改完成后,对APK文件进行重签名,然后安装到手机。确保手机和服务器在同一个局域网Wi-Fi下。

四、 通用GM后台与数据库管理 (GM & DB)

  1. 1.GM后台访问:GM后台通常是一个网站程序,地址一般为 http://你的服务器IP:端口/gm。账号密码需要在服务端的配置文件中预先设定。
  2. 2.数据库修改:使用Navicat连接数据库(端口3306,账号密码通常为root/123456),可以修改玩家元宝、等级等数据。修改前务必备份数据库!

五、 常见问题排查 (Troubleshooting)

  • 问题1:客户端连接失败,提示“连接超时”。
    • 原因:服务器IP修改不正确;防火墙(包括Windows防火墙和云服务器安全组)未开放所需端口。
    • 解决:检查IP,并开放端口(如8080, 3724, 3306等,具体看版本要求)。
  • 问题2:客户端更新失败或卡在加载界面。
    • 原因:Nginx/web服务未正确启动或配置;客户端与服务器的版本号不匹配。
    • 解决:检查web服务,并核对版本号。
  • 问题3:服务端启动时报错,缺少.dll文件或数据库连接失败。
    • 原因:系统环境不全;数据库账号密码错误。
    • 解决:安装对应的运行库;检查数据库配置文件(通常在config文件夹下)中的数据库连接信息。

架设

1. 架设条件

万灵山海架设需要准备:

  1. linux 服务器,建议 CentOs 7.6 版本,推荐腾讯云轻量应用服务器,性价比高。
  2. 游戏源码,关注我的公众号 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   

安装完后,按照提示信息登录宝塔,并在宝塔软件商店中搜索以下软件安装:

  1. web 服务器:Nginx 1.24
  2. 数据库:Mysql 5.7
  3. 编程语言:PHP 7.2
  4. 数据库管理工具:phpMyAdmin 4.4
  5. 工具:Linux 工具箱 2.4

3. 开放端口

我们直接开放所有端口 1-65535,阿里云服务器在安全组中配置规则。

图片[2]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

腾讯云服务器在防火墙中配置规则。

图片[3]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

然后在宝塔菜单安全中开放所有端口。

图片[4]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

4. 关闭防火墙

通过宝塔菜单终端,执行关闭防火墙命令:

systemctl stop firewalld.servicesystemctl disable firewalld.service   

5. 上传源码

拿到源码后,将 wlsh.zip 压缩文件通过宝塔上传到根目录,由于最新的宝塔禁止直接上传到根目录,可以先上传到任一目录下,在剪切粘贴到 / 根目录。

图片[5]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

上传成功后,剪切粘贴到根目录,并解压到根目录。

cd /unzip wlsh.zip   

解压完成后,命令授予 777 权限:

chmod -R 777 /data/   

6. 配置环境

设置虚拟内存,Linux 工具箱添加 Swap。

图片[6]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

配置动态链接器的缓存:

ldconfig   

7. 修改源码 IP

源码中的 IP(82.156.126.171),需要替换成你自己的服务器 IP。

  1. \data\WL_BIGCROSS\release\serverconfig.xml
  2. \data\WL_S1\release\serverconfig.xml
  3. \data\WL_CROSS\release\serverconfig.xml
  4. \data\www\agent\public\bnb\api.php

在宝塔中找到对应文件,Ctrl+F 批量替换 IP 即可。以第一个 serverconfig.xml 为例。

图片[7]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

8. 导入数据库

宝塔数据库中,修改 root 密码:521gmcn

图片[8]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

通过命令导入数据库:

cd /data./sk   

同步数据库会看到创建 4 个数据库,说明导入成功~(更新了资源,数据库 aygm 改为了 ruankor,图片未更新请知悉,下同)

图片[9]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

9. 创建网站

万灵山海需要创建一个站点,域名为 127.0.0.1:81,根目录为 /data/www/agent,PHP 选择 7.2 版本。

图片[10]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

点击创建好网站,在网站目录中将运行目录设置为 /public,记得点击后面的保存按钮。

图片[11]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

再设置伪静态为 thinkphp,点击保存。

图片[12]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

10. 启动游戏

以上步骤都操作完毕,就到了激动人心的启动游戏啦!

启动游戏服务:

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

查看下服务端口:

netstat -lntp   
图片[13]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

11. 客户端修改

11.1 安卓客户端

首先修改安卓端,需要修改两个个文件:

  1. \assets\bin\Data\Managed\Metadata\global-metadata.dat
  2. \assets\AssetBundle\lua\preload-7516A9877653F4EDF42A2EA1A5C38FE9.ab

找到万灵山海.apk 安卓客户端,用好压软件打开,将这两个文件拖出来。

这两个文件修改较复杂,我会尽量说的详细些哈。

首先修改 global-metadata.dat 文件,需要使用工具文件夹中的 global-metadata编辑器,打开 MetaDataStringEditor.exe,点击加载,选择 global-metadata.dat 文件,在上方输入 82.156.126.171,点击后面的下一个,找到搜到的那一行,点击出现编辑,点击编辑出现弹窗,弹窗中修改为自己的 IP,最后点击保存。

图片[14]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

然后在点击窗口上面的另存为,保存文件为 1.dat,将原来的文件 global-metadata.dat 删除,将 1.dat 文件名改为 global-metadata.dat,再将 global-metadata.dat 文件拖回万灵山海.apk 安卓客户端原文件目录下,替换掉原来的文件。

图片[15]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

再来修改 preload-7516A9877653F4EDF42A2EA1A5C38FE9.ab 文件,需使用工具文件夹下的客户端修改工具,解压找到 \AssetsBundleExtractor中文汉化版\32bit\AssetBundleExtractor.exe 双击打开,选择文件 – 打开,选择 preload-7516A9877653F4EDF42A2EA1A5C38FE9.ab 文件,点击是。

图片[16]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

此刻会让另存文件,我们填写 1,点击保存。

图片[17]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

点击信息按钮。

图片[18]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

信息弹窗中选择 global_config.lua,点击右侧的导出转存,然后保存下来,会生成一个 txt 文件。

图片[19]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

打开这个 txt 文件,将里面的 IP (82.156.126.171),替换成你的 IP,然后保存。

图片[20]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

回到信息弹窗界面,点击右侧的导入转存,选择刚修改的 txt 文件,点击下方的确定,然后弹窗点击是。

图片[21]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

再选择文件 – 保存。

图片[22]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

保存文件填写 2,点击保存。

图片[23]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

再选择文件 – 压缩,选择刚保存的文件 2。

图片[24]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

弹窗点击确定。

图片[25]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

然后会让另存文件,填写 3,保存。

图片[26]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

最后我们需要把 preload-7516A9877653F4EDF42A2EA1A5C38FE9.ab 删除,将文件 3 重命名为 preload-7516A9877653F4EDF42A2EA1A5C38FE9.ab。将该文件拖回万灵山海.apk 安卓客户端原文件目录下,替换掉原来的文件。

图片[27]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

呼… 是不是步骤有点多,后面多操作几次就熟练了 – -。

全部替换后使用签名工具 ApkTool 选择修改好的万灵山海.apk 文件进行签名。

图片[28]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

然后就可以安装到模拟器或者安卓手机启动啦,游戏启动会有 16M 多的热更,游戏默认注册码:123

11.2 苹果客户端

苹果端同样需要修改两个文件:

  1. \Payload\bnb.app\Data\Managed\Metadata\global-metadata.dat
  2. \Payload\bnb.app\Data\Raw\AssetBundle\lua\preload-4CFE5EECF63CB00AD90FD3937C929740.ab

同样用好压打开苹果客户端万灵山海.ipa,将两个文件拖出,使用和安卓客户端一样的方法修改文件的 IP,最后在替换掉客户端的原文件即可,和安卓的修改方法一模一样,这里我就不赘述了哈。

全部替换后,需要进行签名,建议使用爱思助手签名。

图片[29]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

同样苹果启动游戏也会有 9M 多的热更新,默认注册码:123

12. 游戏后台

游戏有两个后台,一个运营后台,一个 GM 后台。

运营后台链接:http://ip:81/guanli.php,默认账号:admin,默认密码:123456,功能很强大,可以查看玩家列表、发送邮件、设置公告等等。

图片[30]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

如果自己开服玩建议修改默认密码,右上角点击 Admin,查看个人资料界面,即可修改密码。

图片[31]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

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

图片[32]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

玩家后台链接: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   

友情提示,每次备份快照时,先关闭游戏服务,以防回滚游戏发生异常。

后续游戏监控

#!/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

担心游戏掉线或者服务器重启,我们可以宝塔创建一个定时任务来监控游戏,异常时自动重新启动游戏:

图片[33]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查
rm -rf  /data/WL_S1/release/log/*
rm -rf  /data/WL_CROSS/release/log/*

日志清理

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

rm -rf  /data/WL_S1/release/log/*rm -rf  /data/WL_CROSS/release/log/*   

游戏公告

游戏公告修改都在数据库 ruankor 表 ay_gameconfig,登录界面公告需要修改 id 为 34 的 content 值,游戏内的公告需要修改 id 为 49 的 content 值。

图片[34]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

游戏热更

这款游戏和其他游戏最大的不同就是,游戏资源需要单独下载,而不是集成到客户端中的,游戏到 30 级游戏内会下载 2G 左右的游戏资源,还有一些过程中加载资源,总共大概 3G 左右的资源要下载…

图片[35]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

可想而知一般的服务器根本扛不住,哪怕几个人玩也会卡的不要不要,所以我花了好长时间来攻克这个问题…

最开始我想到的是购买 123 网盘的直链流量包 80 元 1T,大概能够 300 个玩家使用,但是资源包上传网盘后竟然无法成功解压,如果不解压上传一次只能上传 1000 个文件,而实际文件个数要远远大于这个数,不解压上传根本不现实且很容易遗漏,所以只得放弃。

图片[36]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

最后求教了糊涂鳄大佬,推荐我使用单独的服务器作为游戏热更使用,就是这款轻量锐驰型服务器

图片[37]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

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

图片[38]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

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

图片[39]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

在创建站点,域名填写 IP:81,端口号随意,别占用其他已用的端口就好,根目录选择 /www/wwwroot/wl

图片[40]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

最后需要修改游戏服务器文件 /data/www/agent/public/bnb/api.php,Android 热更修改这两行。

图片[41]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

IOS 热更修改这两行。

图片[42]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

将 IP 替换为你三方服务器的 IP 即可,这样游戏内的游戏资源下载就只会使用三方服务器的宽带啦,Nice~

每日签到

游戏玩半个月后,玩家反馈有一些道具物品难度获得极大,或者根本无法获取,比如星辰技能书和精灵球上古异兽,所以我准备通过每日签到,每天送给大家。

首先在 PhpMyadmin 中找到数据库 ruankor 表 ay_gameconfig,执行 sql 语句:

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);
    }
图片[43]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

增加签到道具 qiandao_item2 和 qiandao_item3,物品代码分别是 56368 和 33011,大家可以通过文件 /data/www/agent/public/gmht/user/item_gm.txt 找到物品代码,数量分别设置为 1 个。

然后修改后台文件 /data/www/agent/application/api/controller/Bnb.php,幸好我找的这个版本后台不是加密的,所以可以自行更改。

图片[44]趣九游源码资源网-手游源码丨服务端丨游戏源码丨GM后台丨网站源码丨支付万灵山海手游通用架设教程-详解Win/Linux服务端启动流程与常见问题排查

代码如下:

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~

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容