修改宠物到10转,金钱大于20W,达到建立家族的标准。去事务所建立一个家族。在宠物仓库中放入一件物品到家族仓库,然后进入家族仓库取物品,发现仓库中的物品数量并不会减少。
领取物品页面地址为:xxx.com/plugin.php?id=wxpet:pet&index=myfamily&action=familyshop

通过地址定位到文件core目录下的myfamily.php,阅读源码,搜索familyshop,在第173行搜到了动作为familyshop的判定,跟入该判定。仔细看了下并无领取功能,看来这个判定是列出了所有的可领取借用的物品而已。

回到家族仓库页面,右键领取,查看元素。可以发现这个按钮有个onclick属性,调用了getitem函数。

打开dreamweaver,搜索getitem,查找function getitem,果然,在

core\js\family.js

找到了,双击定位过去,发现位于该文件46行。阅读js源码,发现在第61行利用了ajax方式访问了包含“plugin.php?id=wxpet:pet&type=ajax&ajaxindex=family&action=getitem”的链接,通过这个链接,确定文件应该位于core目录下的ajax目录中的family.php文件。

打开该文件,搜索getitem。定位到该文件的165行。继续阅读。查找领取成功的提示,定位到206行。成功从家族仓库领取。正常的来说领取结束应该减少数量啊,向上查看相关数据库,发现在204行是有减少数量的sql执行的,仔细看一下后面的where条件,where id=’$id’,看来是根据$id来减少数量的,向上阅读会发现,根本没有$id这个变量啊,之前只有$itemid的变量,看来是没有修改完全,把$id改成$itemid,保存文件,刷新家族仓库,领取物品。

成功领取,自动刷新页面后物品消失。问题得以解决。

本节教程结束。

Related Posts: 无心宠物-BUG修复系列-8-家族仓库取物品不减数量的修复办法 :