号外号外!给兄弟们汇报下近期三款热门游戏万灵山海、DOF、新大话西游更新内容

前言

嗯,这次给大家带来的不是啥新游戏哈,是已经开服的 3 款热门游戏《万灵山海》《DOF》和《新大话西游》的更新内容~

可能有人会问为啥没出新游戏?其实出新游比更新完善游戏要简单一些,但是我觉得既然我开了一款游戏,我就要对游戏和玩家负责,游戏的 BUG 还有玩家反馈的需求要处理完,这样我才能安心继续研究新游戏哈~

这 3 款游戏的更新我先总结发出来,后文的游戏更新更偏于技术向,大家感兴趣可以看看,不想看就直接看我总结的就好啦~

  • 1.《万灵山海》:更新了游戏架设教程,每日签到礼包新增了精灵球上古异兽和星辰技能书等。
  • 2.《DOF》:修复了多角色创建、主线任务完成券、时装/宠物清理券等。赛丽亚商店新增完美装备保护券、矛盾的结晶体、技能书,各种功能券等。
  • 3.《新大话西游》:更换了服务器,需重新下载客户端,玩家游戏数据保留,经验倍率改为 30 倍。

以上游戏均可关注我的公众号 echeverra, 发送对应的游戏名,即可免费获取游戏客户端、GM后台、架设教程和源码。

同时呢新游戏《龙之谷》和《口袋觉醒》我也已经提上了日程,我新建了专属的游戏测试群,大家感兴趣可以提前体验。先说好哈,测试群不同游戏交流群,因调试游戏可能会随时清档,还需要大家反馈游戏问题,介意者勿进哈,直接等我出成品游戏就好~

游戏更新

万灵山海

万灵山海主要更新了每日签到的物品。全部教程内容可查看万灵山海架设教程,以下为此次更新内容:

每日签到

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

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

swift 复制代码
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\":\"\"}')

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

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

代码如下:

ini 复制代码
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);
	}

如果当天已经签到的,想重新今日签到,可以清空数据库ruankoray_qiandao,无需重启,登录游戏进个人中心,点击今日签到,就可以邮箱领取新增的签到物品啦!Nice~

DOF

DOF 主要是通过 Dp2 修复了一些 BUG,还有通过修改版本 PVF 实现了 NPC 商店的修改。全部教程内容可查看DOF架设教程,以下为此次更新内容:

游戏设置

游戏有两个比较常用的设置,一个是多角色创建,如果不设置一个账号只能创建 2 个角色,还有一个是无限疲劳,可以让大家刷到爽,不受疲劳值的限制。

这两个设置可以通过花枝登录器后台管理工具设置,打开花枝登录器3.4.1\后台管理工具\后台管理工具3.4.1.exe,点击开关管理,再点击右下角修改本页内容,将解除角色限制勾选上,最后点击保存本页内容,这个不需要重新启动游戏,就可以创建多角色。

无限疲劳设置需要点击杂项管理中的活动,点击右侧一键添加活动,在弹窗中选择无限疲劳活动,参数 1 填写 1 即可,然后点击添加添加活动,重新启动游戏即可,这样刷图就不会消耗疲劳啦~

游戏 BUG 修复

游戏经过一段时间的试玩发现有一些 BUG,比如主线任务完成券无法完成全部主线,点击金毛球宠物会卡死掉线等,还有一些玩家反馈时装宠物满了无法清理等等- -。

经过自己的一番查找,发现了一个好东西 Dp2 插件,是专门用来挂载 DOF 可以扩展功能的脚本,我已经把 Dp2 放在分享资源中的补充资源目录中,已经修复主线任务清理、时装/宠物清理、装备继承、万能跨级石,同时新增了史诗播报、副本时间播报等功能。

下面具体说下 Dp2 的挂载方法,首先将Dp2Frida2.tar.gz文件上传到服务器根目录/,输入命令解压:

复制代码
tar -zxvf Dp2Frida2.tar.gz

解压后,找到文件/dp2/df_game_r.js,用文本编辑器打开。

按 Ctrl+F 将127.0.0.1全部替换为你服务器的 IP,然后按 Ctrl+S 会自动保存上传。

再找到文件/dp2/frida/fiida_config.json,同样使用文本编辑器打开,将127.0.0.1替换为你服务器的 IP,再将uu5!^%jg改为你自己设置的数据库密码,然后保存即可。

文件/dp2/df_game_r.lua我已按照重生的 PVF 中的物品代码对应改好了,不需要再修改。如果你使用的是其他的版本,记得将对应的物品代码修改下。

最后修改启动/root/run文件,拉到最后,找到./df_game_r siroco11 start &,改为:

ini 复制代码
LD_PRELOAD="/dp2/libdp2pre.so" ./df_game_r siroco11 start &

注意中间有空格哈。可以将最后一行启动 56 频道代码前加 # 注释掉,减少内存占用,只开启 11 频道即可,然后重新启动游戏:

bash 复制代码
cd /root
./stop;./stop;./run

启动成功后,我们来测试下,还是打开花枝登录器后台管理工具,我们给角色发送一个宠物清理券,代码是2021458806,后面我会教大家怎么来查看物品代码哈。

发送成功后登录角色,使用宠物清理券,会自动清空宠物栏前两排的宠物,Nice~

商店添加道具

虽然 BUG 修复了,功能也新增了,但是玩家很多的道具物品还是无法获取到,比如完美保护券、矛盾、技能书等,怎么办呢?好办,我们将道具物品放到赛丽亚商店让大家自行购买就好了~

首先我们需要使用补充资源中的pvf工具\pvfUtility\pvfUtility.exe,双击打开 PVF 编辑器,左上角文件打开封包,找到 PVF 版本文件打开,找到文件itemshop/equipmentshop7.shp,这个就是赛丽亚的商店了。

其中sell item中的内容就是赛丽亚商店售卖的物品代码,我们只需要按照原有的格式加上想要卖的物品代码就可以啦,其中的-1代表格子是空的。

那怎么查找物品代码呢?比如我们想找完美装备保护券,那就上方搜索,找到对应的文件打开。

文件前面的7804就是物品代码了,我们还可以对物品的一些属性进行修改,比如price代表买入价格,设置为1000000金币。

找到想要的物品代码后我们就可以加到赛丽亚商店的文件啦~

可以看到我加了很多的物品代码,以下是我整理的常用的需要加到赛丽亚商店的物品代码:

yaml 复制代码
完美装备保护券 7804
矛盾的结晶体 3242
sp+20技能书 1038
tp+5技能书 1205
主线任务完成券  8338
万能跨界石 8346
物品栏扩展券 2660298
宠物清理券 2021458806
时装清理券 2022110503
装备继承券 2022110505

一定要按照指定格式更改,改完 PVF 文件后,左上角文件封包另存为,将新的 PVF 版本文件上传到服务器/home/neople/game/目录下,将原来的文件覆盖,再重新启动游戏~

服务端 PVF 改完后我们继续改客户端的 PVF,需要玩家重新下载 5G 多的客户端么?不需要,我们可以通过在线更新的方式实现客户端更新,就跟官服的一样,是不是很方便,操作如下。

再次打开花枝登录器后台管理工具,登录器设置界面,点击修改本页内容,然后再点击 PVF 加密,选择修改后的Script.pvf文件,加密后会生成一个新的Script.pvf文件。

我们将这个新的Script.pvf文件压缩成 ZIP 格式的文件,命名随意。

然后我们要将这个新生成的 ZIP 文件通过直链的方式获取到,由于压缩文件 100M 多一点,玩家下载对服务器负担还是比较大的,所以我放到了我的资源服务器中。将 ZIP 压缩文件上传到资源服务器目录/www/wwwroot/dof,再创建一个站点,域名设置为你资源服务器的 IP,port 端口不要被占用就好,路径选择/www/wwwroot/dof,这样我们就可以通过http://IP:port/xxx.zip直链的方式访问到压缩文件啦。

最后我们在花枝登录器后台管理工具中的登录器设置界面,右上角更新链接填写访问 ZIP 文件的链接,选择直链,一定要把下面的 PVFMD5 验证勾选上,客户端会对比 MD5 值判断是否更新,最后保存本页内容。

自动更新设置好后,我们重新打开客户端登录文件,会发现,游戏自动更新啦!

更新完后,进入游戏,打开赛丽亚商店,我们就可以看到商店里新增的物品啦,能够成功购买就说明修改成功啦!Nice~

新大话西游

新大话西游主要是更换服务器数据迁移的更新。全部教程内容可查看新大话西游架设教程,以下为此次更新内容:

更换服务器

由于原服务器马上到期了,所以近期我更换了服务器,配置方面选择了 2-2-4 配置的低配服务器,经济是一方面,还有一点就这个游戏对服务器配置要求并不高,运行内存大概占用 3G 左右,开个虚拟内存就可以,热更也只有 20M 左右,4M 宽带就够啦~

游戏已经开服了几个月,很多玩家花费了大量时间去玩,所以换服务器游戏数据也要保留,不能辜负了玩家的心血~

游戏中使用到了 3 个数据库,MysqlRedisMongoDB,但测试下来发现其实只需要导入Mysql数据库,数据就会同步过来,另外两个无需处理。

更换完服务器后大家需要重新下载客户端才能进入游戏,同时为了方便大家快速升级毕业,游戏经验倍率改为了 30 倍~

总结

游戏修复的过程可能会比架设枯燥一些,没有了当初架设成功,进入游戏那一刻的喜悦感!反而因为一些 BUG,你只能努力理解代码和数据库表信息,尝试想办法修复规避,无奈有的致命 BUG 只能放弃。但只要能修复成功或者规避解决掉,那种成就感绝对是无以言表的!

在 DOF 的修复过程中,我遇到很多 DOF 大佬都很热衷于研究修改 PVF,也是有了他们的指导我才成功挂载了 Dp2,修改了 PVF,在此感谢指导我的那些大佬,感谢你们的无私耐心指导,在这里给你们抱拳啦!

也希望我写的这些可能在大佬看来幼稚的教程,能给一些想自己架设修改游戏的人们一些引导,少走一些弯路,同样感谢你们的支持和肯定,我才有坚持下去的动力!

好啦,以上就是近期的三款游戏《万灵山海》《DOF》和《新大话西游》的更新内容啦,希望对你有所帮助,有问题可通过我的博客 echeverra.cn 或微信公众号 echeverra 联系我哈。

最后还是祝大家游戏愉快,工作顺利,生活顺心~

(完)


文章首发于我的博客 echeverra.cn/20250325-up...,原创文章,转载请注明出处。

欢迎关注我的微信公众号 echeverra,一起学习进步!不定时会有资源和福利相送哦!


相关推荐
技术小甜甜18 小时前
【Blender Texture】【游戏开发】高质感 Blender 4K 材质资源推荐合集 —— 提升场景真实感与美术表现力
blender·游戏开发·材质·texture
Thomas游戏开发1 天前
Unity3D TextMeshPro终极使用指南
前端·unity3d·游戏开发
量子炒饭大师2 天前
项目实战——C语言扫雷游戏
c语言·开发语言·游戏
Thomas游戏开发2 天前
Unity3D 逻辑代码性能优化策略
前端框架·unity3d·游戏开发
开开心心就好2 天前
高效视频倍速播放插件推荐
python·学习·游戏·pdf·计算机外设·电脑·音视频
DanmF--3 天前
C#面向对象实践项目--贪吃蛇
开发语言·游戏·c#·游戏程序
Code_流苏3 天前
Python趣学篇:从零打造智能AI井字棋游戏(Python + Tkinter + Minimax算法)
python·算法·游戏·tkinter·智能井字棋·minimax算法
Thomas游戏开发3 天前
Unity3D HUD高性能优化方案
前端框架·unity3d·游戏开发
RedJACK~4 天前
【Go语言】Ebiten游戏库开发者文档 (v2.8.8)
开发语言·游戏·golang
Sui_Network4 天前
从公开到私密:重新思考 Web3 的数据安全
人工智能·游戏·web3·去中心化·区块链