骑士气血技能后攻击超21亿会变负数,这个问题主要是溢出导致的,最大貌似是21E。如何解决此问题呢?请看下面的流程:
1.首先,骑士气血攻击是在野战中使用的,我们首先进入野战,遇到怪物,开启httpfox抓包,点击使用气血技能,停止抓包,会看到刚才攻击时的封包。
地址是:xxx.com/plugin.php id=wxpet:pet&type=ajax&ajaxindex=fight_callmagic&action=callmpower×tamp=1386059681931
通过地址,可以定位到文件是位于ajax下的fight_callmagic.php,进入文件,阅读源码,搜索“callmpower”,定位到第159行。
向下看,看到了“$addatk = intval($mypetdata[str] * $nn);”,注意其中的intval,这个函数的作用是将值转化为实数,实际的最大值也不过21E,如果超过的话就越界变负数了。
解决办法就是,把intval统一批量替换为floor,floor函数的作用是向下舍入为最接近的整数,其取值范围比intval大,所以替换为他。
如此,攻击溢出的问题就得以解决了。
本节教程结束。
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。
留言