00003 不思议迷宫.0009.4:攻防计算

据说GG大玩家上有攻击和闪避的mod,有时能用,有时会出错。抱着研究的目的,我就试了试,确实如此。我先修改将伤害提高到10000倍,就报数据异常。后来将伤害增加300,重新进本,一直到30多层都没有问题。然后我暂离,再进,发现我的角色已经挂了。这说明服务器端的一些计算并没有错。后来继续用这个+300伤害,过了惑星人3层本(Boss只有800血,两刀砍死),居然拿到了奖励。退出重进后,发现奖励还在。——我能感叹下,这个游戏这是太神奇了嘛。

如果官方看到了我的这篇文章,请立即修正这个bug。

欢迎大家进群(161355323)讨论游戏破解和防破解方面的话题,为提高游戏数据的安全性作出贡献。

――――――――――――――――――――――――――――――

当玩家点击一个怪物后,会发生哪些事情呢?当然是攻击怪物,然后怪物反击,然后检测是否死亡……攻击处理在哪里?

对于地牢中的格子,一切都在UIGrid.luac中。查看它的构造,很容易就找到这么一句:

 -- 攻击怪物(或boss)的点击操作

   self.attackMonsterClick = nil;

查找attackMonsterClick:

-- 创建怪物

function UIGrid:createMonster()

    ……

    localfunction onClicked(sender, eventType)

        ……

        ifeventType == ccui.TouchEventType.ended then

            ……

            -- 怪物攻击先在此处模拟

           DungeonActionM.go("physic_attack", self.gridData:getPos());

 

           EventMgr.fire(event.PLAYER_MOVE, self.index);

           return true;

        end

    end

    ……

   self.attackMonsterClick = onClicked;

end

看看注释,“怪物攻击先在此处模拟”,实在是不知道说什么好了,这完全就是误导。在第一眼的时候,我想到的是,“角色攻击在别处计算”。然而,事实上并不是这样。

打开DungeonActionM.go:

-- 客户端执行一条action指令

-- TODO: 待所有指令都调整完毕后,需要把客户端验证的流程也整合进来

function go(cmd, pos, data, extra)

    local record= {["cmd"] = cmd, ["pos"] = pos, ["data"] = data,["extra"] = extra, };

   DungeonLogM.addRecord(record);

   DungeonDebugM.addAction({["cmd"] = cmd, ["pos"] =pos, ["data"] = data, ["extra"] = extra, });

 

    local mod =rules[cmd];

   Profiler.funcBegin("action:" .. cmd);

    local ret,added = mod.doAction({ ["pos"] = pos, ["data"] = data },extra);

    if ret ~=false and true ~= added then

        -- 部分指令已经自行添加了action,就不重复添加

        -- 执行成功了,添加到同步队列中

       DungeonM.addAction({ ["cmd"] = cmd, ["data"] = data,["pos"] = pos, });

    end

 

    if ret ~=false then

        -- 标记一下是有效的action

       record["done"] = 1;

    end

 

    -- 如果需要即时保存一下

    if notisVerifyClient() and needSave then

        needSave= false;

 

       go("save_dungeon");

    en

00003 不思议迷宫.0009.4:攻防计算相关推荐

  1. 00003 不思议迷宫.0009.9:命运之链

    00003 不思议迷宫.0009.9:命运之链 我不知道别人的怎么样,反正在我的手机们上,仅在该功能刚出来时找到过其他玩家.然后,官方说部分玩家该功能不能用,修复了.可惜的是,自从这个"修复 ...

  2. 00003 不思议迷宫.0009.7:一键采矿(钻石、金蛋等)

    00003 不思议迷宫.0009.7:一键采矿(钻石.金蛋等) 矿有很多种,今天要说的是其中的钻石矿这种,也是就神龙许愿"我想要钻石"后进到夹层中,地上显示的那些需要点击99次(初 ...

  3. 00003 不思议迷宫.0009.6:一键翻开石板捡取物品

    00003 不思议迷宫.0009.6:一键翻开石板捡取物品 先上主要代码: local function onMyButton_AutoPickUpAllItems(sender, eventType ...

  4. 00003 不思议迷宫.0009.10:Bug之二:免称号锻造、升级装备,合成卷轴

    00003 不思议迷宫.0009.10:Bug之二:免称号锻造.升级装备,合成卷轴 今天玩德古拉城堡,想击杀100层Boss完成"首领礼包".平时我都是用双大地,但一直听说啥主流套 ...

  5. 00003 不思议迷宫.0009.2.1:自动换装:简单规划

     00003 不思议迷宫.0009.2.1:自动换装:简单规划 我今天白天在思考问题之余,又玩了会游戏,下了个竞技场副本,才第一次注意到竞技场中的观众也是可以杀的.当然,是没办法直接攻击观众的,必 ...

  6. 00003 不思议迷宫.0009.2.2:自动换装:界面模拟

     00003 不思议迷宫.0009.2.2:自动换装:界面模拟 这两天一直在研究游戏的csb解析显示.重用luac之类的问题,中间遇到各种问题,各种痛苦.唉,还是知识储备不足啊,耽搁了不少时间.其 ...

  7. 00003 不思议迷宫.0009.2.4:自动换装:在事件中实现自动换装

     00003 不思议迷宫.0009.2.4:自动换装:在事件中实现自动换装 具体的换装动作如何实现呢?老办法:学原版.在前一章中,我们已经接触过一个叫做"UIEquipsOperatio ...

  8. 00003 不思议迷宫.0009.2.3:自动换装:回改到真实环境

     00003 不思议迷宫.0009.2.3:自动换装:回改到真实环境 在将代码弄到真实环境之前,先将UIAutoEquipingConfig中的类似代码重构一下.          local l ...

  9. 00003 不思议迷宫.0008:分析了半天我们能干什么?

    00003 不思议迷宫.0008:分析了半天我们能干什么? 玩家数据不能直接修改,间接的似乎也不行,那我们还能干什么? 能干的有很多. 比如,我先问问,大家是如何在炼金坊捡钱的?除开玩模拟器使用按键精 ...

  10. 00003 不思议迷宫.0006:客户端的操作如何反应到服务器?

     00003 不思议迷宫.0006:客户端的操作如何反应到服务器? 玩家点击手机屏幕,根据点到内容的不同而执行不同的操作,比如切换画面或者场景.播放动画或声音.发送数据等等.我现在所关心的是点到物 ...

最新文章

  1. 为什么经营婚姻要像热恋一样
  2. 数据中台应用实战50篇(一)-带你概览BI、数据仓库、数据湖与数据中台之间有什么关联关系?(建议收藏)
  3. java数据类型划分_一张图搞定java数据类型的划分
  4. Linux学习 Unit 9
  5. 基于mint-ui的城市选择3级联动
  6. HDU2602Bone Collector 简单0-1背包
  7. bootstrap 两个轮播图冲突_为什么使用bootstrap在一个页面同时做两个轮播效果时,只有第一个有效??...
  8. LeetCode 96. 不同的二叉搜索树(Unique Binary Search Trees )
  9. 不光是查找值!二分搜索
  10. WPFのclipToBounds与maskToBounds的区别
  11. 【linux】16进制格式查看命令hexdump
  12. 计算机大学毕业好考公务员,哪些大学的毕业生更容易考上公务员?
  13. css滚动条设置图标,更改滚动条上下箭头图标
  14. Windows Pygame 安装教程 (自己识别版本号并下载)
  15. 计算机配置很高 但是很卡,电脑配置高但很卡_电脑配置很高但还是很卡是怎么回事啊?...
  16. 解决在Python的matplotlib.pyplot图表中显示中文
  17. MAC的物理地址与IP地址查询方法
  18. UE4雷达图(纯蓝图)
  19. 设计模式原则之依赖倒转(倒置)原则
  20. python笔记(五)

热门文章

  1. Android 关于立方体旋转效果的研究
  2. Spring实例参考11-API实现AOP前置/后置通知
  3. vissim跟驰模型_VISSIM能用于哪些领域?它的特点是什么?
  4. Delphi操作excel说明
  5. 6月21日云栖精选夜读丨CCTV5手机客户端新媒体:让赛事集锦堪比电影大片
  6. 易查分|百万老师发布成绩的重要小程序
  7. Spring Boot 静态资源和拦截器处理
  8. Spring Boot开发Web应用之Thymeleaf篇
  9. 计算机网络安全 国外名校
  10. BSG白山极客挑战赛——B君的圆锥(计算几何)