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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

====开心农场====牧场用户偷取不准、用户可操作乱显示的BUG...

[复制链接]
liuzhly 发表于 2010-1-19 15:01:09 | 显示全部楼层 |阅读模式
本帖最后由 liuzhly 于 2010-01-19 21:21 编辑

疑问贴:https://discuz.dismall.com/thread-1549407-1-1.html

经测试,可解决此BUG!

修改方法:

newmc.php

找到
if ( $_REQUEST['mod'] == "cgi_enter" || $_REQUEST['mod'] == "cgi_enter?" )
{
。。。。。。。。。代码省略。。。。。。。。。。。。
                                                                                                                                if ( $touarr[$value->cId] = 3 )
                                                                                                                                {
                                                                                                                                                                $touarr[$value->cId] = 3;
                                                                                                                                                                if ( stristr( $value->tou, ",".$_SGLOBAL['supe_uid']."," ) )
                                                                                                                                                                {
                                                                                                                                                                                                $touarr[$value->cId] = 2;
                                                                                                                                                                }
                                                        $value->cycle == '' && $value->cycle = 1;        //为了保正无缝转换,正式运行一周后可删除此行代码
                                                                                if ( $value->totalCome <= $shop[$value->cId][output] * $value->cycle / 2 + 1 )
                                                                                                                                                                {
                                                                                                                                                                                                $touarr[$value->cId] = 1;
                                                                                                                                                                }
                                                                                                                                }


然后 查找 所有的  $totalCome -= $shop[$value->cId][output];  ,在其前面加 //  ,成 //$totalCome -= $shop[$value->cId][output];


if ( $_REQUEST['mod'] == "cgi_get_Exp" )
{
。。。。。。。代码省略
                                if ( !stristr( $value_1->tou, ",".$_SGLOBAL['supe_uid'].","))
                                {
$value_1->cycle == '' && $value_1->cycle = 1;        //为了保正无缝转换,正式运行一周后可删除此行代码
                                        if ( $value_1->totalCome > $animaltype[$cId][output] * $value_1->cycle / 2 + 1)
                                        {
                                                $userflag[$value['uid']]["t"] = $value_1->postTime ;
                                        }
                                }


继续找到 购买动物:

if ( $_REQUEST['mod'] == "cgi_buy_animal" )
{
。。。。。。。。。。。。。。。。。。

                                foreach ( $animal[animal] as $key => $value )
                                {
                                                                if ( ( $value->cId == 0 ) && ( $number < $_REQUEST['number'] ) )
                                                                {
                                                                                                $value->buyTime = $_SGLOBAL['timestamp'];
                                                                                                $value->cId = $_REQUEST['cId'];
                        $value->cycle = 0;//购买时候,初始化产物生产次数
                                                                                                $value->tou = "";
                                                                                                ++$number;
                                                                                                $buyanimal[] = ( ( "{\"buyTime\":".$_SGLOBAL['timestamp'].",\"cId\":".$_REQUEST['cId'].",\"createTime\":0,\"feedTime\":".( $_SGLOBAL['timestamp'] - 14400 ) ).",\"growTime\":0,\"growTimeNext\":".( $animaltime[$_REQUEST['cId']][0] - 1 ) ).",\"postTime\":".$_SGLOBAL['timestamp'].",\"productNum\":0,\"serial\":".$key.",\"status\":1,\"statusNext\":2,\"totalCome\":0}";
                                                                }
                                }


找到 赶去生产函数:

if ( $_REQUEST['mod'] == "cgi_post_product" )
{
。。。。。。。。。。。。。。。。
                                $animal->animal[$_REQUEST['serial']]->postTime = $_SGLOBAL['timestamp'];
                                $animal->animal[$_REQUEST['serial']]->tou = "";
                                $animal->animal[$_REQUEST['serial']]->totalCome = $animal->animal[$_REQUEST['serial']]->totalCome + $shop[$animal->animal[$_REQUEST['serial']]->cId][output];
        $animal->animal[$_REQUEST['serial']]->cycle++;//每次生产,次数加一,用于偷取判断
                                $stranimal = json_encode( $animal );

继续寻找收获的地方:

if ( $_REQUEST['mod'] == "cgi_harvest_product" )
{
。。。。。。。。。。。。。。。
                                                        $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set repertory='".$mc_repertory."' where uid=".$_SGLOBAL['supe_uid'] );
                                                                                        //成果
                                                                                        $value->totalCome = 0;
                                                                                        $value->tou = "";
                                $value->cycle = 0;//次数置0

                                                                                        ++$exp;

。。。。。。。。。。。。。。。。
                                                                $animal[animal][$_REQUEST['serial']]->buyTime = 0;
                                                                $animal[animal][$_REQUEST['serial']]->cId = 0;
                                                                $animal[animal][$_REQUEST['serial']]->postTime = 0;
                                                                $animal[animal][$_REQUEST['serial']]->totalCome = 0;
                $animal[animal][$_REQUEST['serial']]->cycle = 0;
                                                                $animal[animal][$_REQUEST['serial']]->tou = "";

然后到偷取的地方:

if ( $_REQUEST['mod'] == "cgi_steal_product" )
{
。。。。。。。。。。。。。。。。。。。。
                                                if ( !stristr( $value->tou, ",".$_SGLOBAL['supe_uid']."," ) )
                                                {
                                                        $value->cycle == '' && $value->cycle = 1;        //为了保正无缝转换,正式运行一周后可删除此行代码
                                                        if ( $shop[$_REQUEST['type']][output]  * $value->cycle/ 2 +1< $value->totalCome )
                                                        {

评分

2

查看全部评分

 楼主| liuzhly 发表于 2010-1-19 15:01:25 | 显示全部楼层
本帖最后由 liuzhly 于 2010-01-19 15:11 编辑

上面代码可与牧场数据进行无缝转换,自动适应,程序正常运行必须等所有用户这批动物收取重新购买后就正常了!
最终表文件如下:红色代表生产次数,"totalCome":7 代表剩余产量

比如:1505 那个,产量是 12  ,产了3次,应该是 36 ,好友可偷取剩余量:  12 *3/2 +1 = 19 !这才正确!!经过测试,程序正常!
如果是原来程序,只要第一次好友偷到最低了,以后几次就没法偷了~~~


{"animalfood":87.4791666651,"animalfeedtime":"1263882597","item1":10111,"item2":10223,"item3":10332,"item4":10441,"animal":[
{"buyTime":"1263792867","cId":"1008","postTime":"1263864907","totalCome":7,"tou":",15,,336,,37,,64,,328,,127,","feedtime":"1263882597","cycle":1}
{"buyTime":"1263792867","cId":"1008","postTime":"1263864915","totalCome":7,"tou":",15,,336,,37,,64,,328,,127,","feedtime":"1263882597","cycle":1}
{"buyTime":"1263792867","cId":"1008","postTime":"1263864912","totalCome":7,"tou":",15,,336,,37,,64,,328,,127,","feedtime":"1263882597","cycle":1}
{"buyTime":"1263792867","cId":"1008","postTime":"1263864914","totalCome":7,"tou":",15,,336,,37,,64,,328,,127,","feedtime":"1263882597","cycle":1}
{"buyTime":"1263792867","cId":"1008","postTime":"1263864917","totalCome":7,"tou":",15,,336,,37,,64,,328,,127,","feedtime":"1263882597","cycle":1}
{"buyTime":"1263792867","cId":"1008","postTime":"1263864908","totalCome":7,"tou":",15,,336,,37,,64,,328,,127,","feedtime":"1263882597","cycle":1}
{"buyTime":"1263712231","cId":"1505","postTime":"1263851662","totalCome":19,"tou":",170,,4,,303,,36,,64,,278,","feedtime":"1263882597","cycle":3}
{"buyTime":"1263712231","cId":"1505","postTime":"1263851659","totalCome":19,"tou":",170,,4,,303,,36,,64,,278,","feedtime":"1263882597","cycle":3}
{"buyTime":"1263712231","cId":"1505","postTime":"1263851661","totalCome":19,"tou":",170,,4,,303,,36,,64,,278,","feedtime":"1263882597","cycle":3}
{"buyTime":0,"cId":0,"postTime":0,"totalCome":0,"tou":""}
{"buyTime":0,"cId":0,"postTime":0,"totalCome":0,"tou":""}
{"buyTime":0,"cId":0,"postTime":0,"totalCome":0,"tou":""}
{"buyTime":0,"cId":0,"postTime":0,"totalCome":0,"tou":""}
{"buyTime":0,"cId":0,"postTime":0,"totalCome":0,"tou":""}
{"buyTime":0,"cId":0,"postTime":0,"totalCome":0,"tou":""}
{"buyTime":0,"cId":0,"postTime":0,"totalCome":0,"tou":""}
{"buyTime":0,"cId":0,"postTime":0,"totalCome":0,"tou":""}
{"buyTime":0,"cId":0,"postTime":0,"totalCome":0,"tou":""}]}
回复

使用道具 举报

 楼主| liuzhly 发表于 2010-1-19 15:01:41 | 显示全部楼层
本帖最后由 liuzhly 于 2010-01-19 21:22 编辑

$value->cycle == '' && $value->cycle = 1;        //为了保正无缝转换,正式运行一周后可删除此行代码

这句话意思:因为原始数据表字段中没有 cycle ,是我们需要加上的,暂时不动数据表,让用户下次购买和偷取的时候自动更新数据表,达到无缝转换,一周后,基本所有用户动物都成熟收获了,重新购买的动物就OK了,就不需要 蓝色代码了,所以就可以删除了!!主要是为了转换数据使用的!不删除也不影响程序!!

说明:修改的东西不多,就是零散点~~~
回复

使用道具 举报

s36376149 发表于 2010-1-19 15:12:05 | 显示全部楼层
能不能把小小宇发的版本也优化一下
回复

使用道具 举报

s36376149 发表于 2010-1-19 15:12:22 | 显示全部楼层
能不能把小小宇发的版本也优化一下
回复

使用道具 举报

 楼主| liuzhly 发表于 2010-1-19 15:15:12 | 显示全部楼层
本帖最后由 liuzhly 于 2010-01-19 15:20 编辑

小小宇的农场没时间优化,我也没装小小宇的,只要我的内网开心农场修改BUG,我会同步到这里~~
回复

使用道具 举报

samfs 发表于 2010-1-19 18:48:40 | 显示全部楼层
感谢高手
回复

使用道具 举报

samfs 发表于 2010-1-19 20:42:58 | 显示全部楼层
求教高手,只要用以下三种任何代码就出现提示------“尊敬的用户:由于您网络不稳定,导致QQ牧场无法进入,请稍后重试

$value->cycle == '' && $value->cycle = 1        //为了保正无缝转换,正式运行一周后可删除此行代码
$value_1->cycle == '' && $value_1->cycle = 1        //为了保正无缝转换,正式运行一周后可删除此行代码
$value->cycle == '' && $value->cycle = 1        //为了保正无缝转换,正式运行一周后可删除此行代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

 楼主| liuzhly 发表于 2010-1-19 21:23:12 | 显示全部楼层
求教高手,只要用以下三种任何代码就出现提示------“尊敬的用户:由于您网络不稳定,导致QQ牧场无法进入, ...
samfs 发表于 2010-01-19 20:42



    兄弟,我的失误,应该在1后面加个半角的分号结束语句就对了!
$value->cycle == '' && $value->cycle = 1;

已经改正!!
回复

使用道具 举报

samfs 发表于 2010-1-19 21:58:49 | 显示全部楼层
太谢谢了,真伟大
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-19 03:24 , Processed in 0.077975 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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