Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 本地版开心农场的牧场突然无法加草无法生产终极解决方法(会同时解决诸多莫明bug)

[复制链接]
我是来注册的啊 发表于 2009-10-30 16:22:12 | 显示全部楼层 |阅读模式
UCHome插件
语言编码: GBK简体 UTF8简体 BIG5繁体 
插件名称: 大补丁
插件作者: 不说
适用版本: UCHome 2.0
本帖最后由 我是来注册的啊 于 2009-10-31 10:27 编辑

网上的东西大家改来该去,大家也很迷糊。都说自己解决了某某bug,其实连很多简单的php语法错误和逻辑错误都还没有改对它。
你说它能没有bug么?


症状: 牧场本来已经可以加草、生产、偷蛋,可是突然(其实是48小时后)不能了。非本症状的、本来就不行的、不明所以的、看不懂的,不要往下看了,也少在这里罗嗦,没空理!

解决: (红色部分即为添加或修改部分,自己耐心去对照,别浮躁!)
文件: /newfarm/newmc.php
-----------------------------------------------------------------
<1>
找到:
                        if ( ( $_SGLOBAL['timestamp'] < $key + 1800 ) && ( $value[uid] == $_SGLOBAL['supe_uid'] ) )
                        {
                                continue;
                        }
                                ++$mc_log[help][$key][$animal->animal[$_REQUEST['serial']]->cId];
                                $logyes = 1;
                                break;
改为:
                        if ( ( $_SGLOBAL['timestamp'] < $key + 1800 ) && ( $value[uid] == $_SGLOBAL['supe_uid'] ) )
                        {
                                continue;
                        }else{ // 这里解决的并不是我们说的bug,而是你可能根本没发现的日志中数字错误
                                ++$mc_log[help][$key][$animal->animal[$_REQUEST['serial']]->cId];
                                $logyes = 1;
                                break;
                        }

-----------------------------------------------------------------
<2>
找到:(注意:这个能找到有两处,都要改)
                foreach ( $mc_log[help] as $key => $value )
                {
                        if ( $key < $_SGLOBAL['timestamp'] - 172800 )
                        {
                                unset( $_SGLOBAL['timestamp'][$key] );
                        }
                }

改为:
                foreach ( $mc_log[help] as $key => $value )
                {
                        if ( $key < $_SGLOBAL['timestamp'] - 172800 )
                        {
                                // unset( $_SGLOBAL['timestamp'][$key] ); // 原来这句,会执行错误,所以你突然不能加草、生产、偷蛋了,而且,传回服务器时间被置零:时间乱了
                                unset( $mc_log['help'][$key] );

                        }
                }
   这段是解决突然不能加草、生产、偷蛋的关键部分,该片段全文有两处!
-----------------------------------------------------------------
<3>
找到:
                                if ( $shop[$_REQUEST['type']][output] / 2 < $value->totalCome )
                                {
                                        $value = "totalCome";
                                        ++$tounum;
                                        $value->tou = $value->tou.",".$_SGLOBAL['supe_uid'].",";
                                }

改为:
                                if ( $shop[$_REQUEST['type']][output] / 2 < $value->totalCome )
                                {
                                        // $value = "totalCome"; // 这里解决的也不是我们说的bug,而是偷蛋不减数、而且可以继续偷
                                        $value->totalCome--;

                                        ++$tounum;
                                        $value->tou = $value->tou.",".$_SGLOBAL['supe_uid'].",";
                                }
-----------------------------------------------------------------
<4>
找到:
        foreach ( $mc_log[scrounge] as $key => $value )
        {
                if ( $key < $_SGLOBAL['timestamp'] - 172800 )
                {
                        unset( $_SGLOBAL['timestamp'][$key] );
                }
        }
改为:
        foreach ( $mc_log[scrounge] as $key => $value )
        {
                if ( $key < $_SGLOBAL['timestamp'] - 172800 )
                {
                        // unset( $_SGLOBAL['timestamp'][$key] ); // 原来这句,会执行错误,所以你原来能偷,却突然不能偷了,偷不了了,而且,传回服务器时间被置零:时间乱了
                        unset( $mc_log['scrounge'][$key] );

                }
        }
-----------------------------------------------------------------
<5>
找到:
                if ( !( $_SGLOBAL['timestamp'] < $key + 1800 ) && !( $value[uid] == $_SGLOBAL['supe_uid'] ) )
                {
                        continue;
                }
                        $mc_log[help][$key]['40'] = $mc_log[help][$key]['40'] + $_REQUEST['foodnum'];
                        $logyes = 1;
                        break;
改为:
                if ( !( $_SGLOBAL['timestamp'] < $key + 1800 ) && !( $value[uid] == $_SGLOBAL['supe_uid'] ) )
                {
                        continue;
                }else{ //  这里解决的也不是我们说的bug,而是你可能根本没发现的日志中数字错误
                        $mc_log[help][$key]['40'] = $mc_log[help][$key]['40'] + $_REQUEST['foodnum'];
                        $logyes = 1;
                        break;
                }

-----------------------------------------------------------------

说明:第<2>、<4>部分是重点解决突然不能加草、生产、偷蛋的关键。另外几个错误,也都是致命的php硬伤。大家可以仔细对照,如果还没有弄,那就赶紧修复吧(膜?)

【郑重声明】 本人没有测试过什么所谓的本地版牧场,也没有任何相关文件,本人只有这一个文件,是一个坚决拒绝采访的网友发给我的,本人的修复,不基于任何测试,但绝对是正确!可用!的,因为这都是基本的php错误。至于那什么版权、盗版之类的那个那个,与我无关。
406656345 发表于 2009-10-30 16:23:40 | 显示全部楼层
帮顶了啊~!
回复

使用道具 举报

anont 发表于 2009-10-30 16:29:58 | 显示全部楼层
好样的,支持了!
回复

使用道具 举报

x-kai 发表于 2009-10-30 16:51:00 | 显示全部楼层
不错不错,试试看,谢谢了阿
回复

使用道具 举报

kufun 发表于 2009-10-30 16:51:45 | 显示全部楼层
正好碰上这个问题,试试看,感谢楼主.
回复

使用道具 举报

kufun 发表于 2009-10-30 17:01:08 | 显示全部楼层
foreach ( $mc_log['help'] as $key => $value )
找不到
回复

使用道具 举报

guoyingchao 发表于 2009-10-30 17:04:13 | 显示全部楼层
ding yi ge  ding yi ge
回复

使用道具 举报

kufun 发表于 2009-10-30 17:05:21 | 显示全部楼层
foreach ( $mc_log['scrounge'] as $key => $value )
也找不到.
回复

使用道具 举报

 楼主| 我是来注册的啊 发表于 2009-10-30 17:09:53 | 显示全部楼层
去掉方括号中的两个 “ ' ”
回复

使用道具 举报

kufun 发表于 2009-10-30 17:22:50 | 显示全部楼层
这五处修改好了,买草不扣钱的BUG要怎么修改呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-9-22 13:25 , Processed in 0.113180 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表