Site icon 时鹏亮的Blog

无心宠物-BUG修复系列-15-骑士气血攻击溢出的解决办法

请知悉:本文最近一次更新为 11年 前,文中内容可能已经过时。

骑士气血技能后攻击超21亿会变负数,这个问题主要是溢出导致的,最大貌似是21E。如何解决此问题呢?请看下面的流程:

1.首先,骑士气血攻击是在野战中使用的,我们首先进入野战,遇到怪物,开启httpfox抓包,点击使用气血技能,停止抓包,会看到刚才攻击时的封包。
地址是:xxx.com/plugin.php id=wxpet:pet&type=ajax&ajaxindex=fight_callmagic&action=callmpower&timestamp=1386059681931

通过地址,可以定位到文件是位于ajax下的fight_callmagic.php,进入文件,阅读源码,搜索“callmpower”,定位到第159行。
向下看,看到了“$addatk = intval($mypetdata[str] * $nn);”,注意其中的intval,这个函数的作用是将值转化为实数,实际的最大值也不过21E,如果超过的话就越界变负数了。
解决办法就是,把intval统一批量替换为floor,floor函数的作用是向下舍入为最接近的整数,其取值范围比intval大,所以替换为他。

如此,攻击溢出的问题就得以解决了。

本节教程结束。


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《无心宠物-BUG修复系列-15-骑士气血攻击溢出的解决办法》相关的博文:

Exit mobile version