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

 找回密码
 立即注册
搜索

[已解决] 【开心农场】悄悄发布一个大家需要的开心农场成果功能修复(更新:X1修补)

[复制链接]
fbean 发表于 2009-11-3 00:48:52 | 显示全部楼层 |阅读模式
UCHome插件
语言编码: GBK简体 
插件名称: me
插件作者: me
适用版本: UCHome 2.0
本帖最后由 fbean 于 2009-11-3 10:52 编辑

附:之前修补的一些东西
【开心农场】安装后页面白屏解决方案(添加空方法无效者可看)
【开心农场】牧场 留言功能修复
【开心农场】牧场日志和留言清空功能修复
【开心农场】农场系统日志修复【偷、浇、草、虫、狗、售】

======================================================
X1修补(观看他人成果有误):X1发布之前修补的用户请将
  1. $repertory = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT repertory FROM ".tname( "plug_newfarm" )." where uid=".intval( $_SGLOBAL['supe_uid']) ), 0 );
复制代码
替换为
  1. $repertory = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT repertory FROM ".tname( "plug_newfarm" )." where uid=".$_REQUEST['uId'] ), 0 );
复制代码
======================================================

顺便对文件修补做一点解释,PHP服务器端脚本文件都是在服务器上执行之后返回纯html代码才下载到本地,所以一些修补中,看似加入了不少代码,其实返回到客户端的东西大小是没什么差别的,不会因为说PHP文件增加了100KB,则下载数就增加100KB,这点大家打开页面之后另存为比较就很容易明白。由于flash架构的限制,导致自己所写的脚本处理程序代码的重用性不高,如果不要求比较详细的功能,大家可以删除一些细节处理代码。

费了一晚上,完成了牧场“成果”功能修复。这回可真累死我了,可能也是自己笨,没法截取输出数据结构,逼得解开他的swf源,慢慢分析AS代码,最后提取出的结构~我不介意大家把这个补丁整合到你们的包里,反而我很希望大家都能用上,哈哈哈

先上图


开始:

第一步,新增字段,我新加了一个repertory字段用于存储成果数据,执行以下语句:
  1. ALTER TABLE `uchome_plug_newfarm` ADD COLUMN `repertory` TEXT NOT NULL
复制代码
第二步,修改newfarm/newmc.php文件
A、查找代码(只有1处哦)
  1. $totalCome += $value->totalCome;
复制代码
在下面加入代码:
  1. $mc_repertory = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT repertory FROM ".tname( "plug_newfarm" )." where uid=".intval( $_SGLOBAL['supe_uid']) ), 0 );
  2. $mc_repertory = json_decode( $mc_repertory);
  3. $flag=false;
  4. foreach($mc_repertory ->r as $key=>$val){
  5.         if($_REQUEST['type'] == $val->cId){
  6.                 $flag=true;
  7.                 $mc_repertory->r[$key]->harvest=$mc_repertory->r[$key]->harvest+$value->totalCome;
  8.         }
  9. }
  10. if(!$flag){
  11.         $cName="";
  12.         switch ($_REQUEST['type']) {
  13.                 case 1001:
  14.                         $cName="\\u9E21\\u86CB";
  15.                         break;
  16.                 case 1002:
  17.                         $cName="\\u5154\\u4ED4";
  18.                         break;
  19.                                                                         case 1003:
  20.                                                                                 $cName="\\u9E45\\u86CB";
  21.                                                                                 break;
  22.                                                                         case 1004:
  23.                                                                                 $cName="\\u5C0F\\u732B\\u4ED4";
  24.                                                                                 break;
  25.                                                                         case 1005:
  26.                                                                                 $cName="\\u5B54\\u96C0\\u86CB";
  27.                                                                                 break;
  28.                                                                         case 1006:
  29.                                                                                 $cName="\\u5C0F\\u4F01\\u9E45";
  30.                                                                                 break;
  31.                                                                         case 1007:
  32.                                                                                 $cName="\\u5c0f\\u4e4c\\u9f9f";
  33.                                                                                 break;
  34.                                                                         case 1501:
  35.                                                                                 $cName="\\u7F8A\\u6BDB";
  36.                                                                                 break;
  37.                                                                         case 1502:
  38.                                                                                 $cName="\\u725B\\u5976";
  39.                                                                                 break;
  40.                                                                         case 1503:
  41.                                                                                 $cName="\\u5C0F\\u7334\\u4ED4";
  42.                                                                                 break;
  43.                                                                         case 1504:
  44.                                                                                 $cName="\\u5C0F\\u888B\\u9F20";
  45.                                                                                 break;
  46.                                                                 }
  47.                                                                 $mc_repertory->r[] = "{"cId":".$_REQUEST['type'].","cName":"".$cName."","harvest":".$value->totalCome.","scrounge":0}";
  48.                                                         }
  49.                                                         $mc_repertory = json_encode( $mc_repertory );
  50.                                                         $mc_repertory = str_replace( ""{", "{", $mc_repertory );
  51.                                                         $mc_repertory = str_replace( "}"", "}", $mc_repertory );
  52.                                                         $mc_repertory = str_replace( "\\u", "\\\\u", $mc_repertory );
  53.                                                         $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set repertory='".$mc_repertory."' where uid=".$_SGLOBAL['supe_uid'] );
复制代码
B、查找代码:
  1. $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set animal='".$animal."',mc_exp=mc_exp+".$animalname[$cid][exp]
复制代码
在上面加入
  1. $mc_repertory = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT repertory FROM ".tname( "plug_newfarm" )." where uid=".intval( $_SGLOBAL['supe_uid']) ), 0 );
  2.                                                                                                                                                                 $mc_repertory = json_decode( $mc_repertory);
  3.                                                                                                                                                                         $flag=false;
  4.                                                                                                                                                                         foreach($mc_repertory ->r as $key=>$val){
  5.                                                                        
  6.                                                                                                                                                                                 if($cid == $val->cId){
  7.                                                                                                                                                                                         $flag=true;
  8.                                                                                                                                                                                         $mc_repertory->r[$key]->harvest=$mc_repertory->r[$key]->harvest+1;
  9.                                                                                                                                                                                 }
  10.                                                                                                                                                                         }
  11.                                                                                                                                                                
  12.                                                                                                                                                                 if(!$flag){
  13.                                                                                                                                                                         $cName="";
  14.                                                                                                                                                                         switch ($cid) {
  15.                                                                                                                                                                                 case 11001:
  16.                                                                                                                                                                                         $cName="\\u9E21";
  17.                                                                                                                                                                                         break;
  18.                                                                                                                                                                                 case 11002:
  19.                                                                                                                                                                                         $cName="\\u5154\\u5B50";
  20.                                                                                                                                                                                         break;
  21.                                                                                                                                                                                 case 11003:
  22.                                                                                                                                                                                         $cName="\\u9E45";
  23.                                                                                                                                                                                         break;
  24.                                                                                                                                                                                 case 11004:
  25.                                                                                                                                                                                         $cName="\\u732B";
  26.                                                                                                                                                                                         break;
  27.                                                                                                                                                                                 case 11005:
  28.                                                                                                                                                                                         $cName="\\u5B54\\u96C0";
  29.                                                                                                                                                                                         break;
  30.                                                                                                                                                                                 case 11006:
  31.                                                                                                                                                                                         $cName="\\u4F01\\u9E45";
  32.                                                                                                                                                                                         break;
  33.                                                                         case 11007:
  34.                                                                                 $cName="\\u4E4C\\u9F9F";
  35.                                                                                 break;                                                                                        case 11501:
  36.                                                                                                                                                                                         $cName="\\u7F8A";
  37.                                                                                                                                                                                         break;
  38.                                                                                                                                                                                 case 11502:
  39.                                                                                                                                                                                         $cName="\\u725B";
  40.                                                                                                                                                                                         break;
  41.                                                                                                                                                                                 case 11503:
  42.                                                                                                                                                                                         $cName="\\u7334\\u5B50";
  43.                                                                                                                                                                                         break;
  44.                                                                                                                                                                                 case 11504:
  45.                                                                                                                                                                                         $cName="\\u888B\\u9F20";
  46.                                                                                                                                                                                         break;
  47.                                                                                                                                                                         }
  48.                                                                                                                                                                         $mc_repertory->r[] = "{"cId":".$cid.","cName":"".$cName."","harvest":1,"scrounge":0}";
  49.                                                                                                                                                                 }
  50.                                                                                                                                                                 $mc_repertory = json_encode( $mc_repertory );
  51.                                                                                                                                                                 $mc_repertory = str_replace( ""{", "{", $mc_repertory );
  52.                                                                                                                                                                 $mc_repertory = str_replace( "}"", "}", $mc_repertory );
  53.                                                                                                                                                                 $mc_repertory = str_replace( "\\u", "\\\\u", $mc_repertory );
  54.                                                                                                                                                                 $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set repertory='".$mc_repertory."' where uid=".$_SGLOBAL['supe_uid'] );
复制代码
C、查找代码:
  1. $value->tou = $value->tou.",".$_SGLOBAL['supe_uid'].",";
复制代码
在下面加入代码
  1. $mc_repertory = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT repertory FROM ".tname( "plug_newfarm" )." where uid=".intval( $_SGLOBAL['supe_uid']) ), 0 );
  2.                                                                                                                                                                 $mc_repertory = json_decode( $mc_repertory);
  3.                                                                                                                                                                         $flag=false;
  4.                                                                                                                                                                         foreach($mc_repertory ->r as $key=>$val){
  5.                                                                                                                                                                                                                                                                                         if($_REQUEST['type'] == $val->cId){
  6.                                                                                                                                                                                         $flag=true;
  7.                                                                                                                                                                                         $mc_repertory->r[$key]->scrounge=$mc_repertory->r[$key]->scrounge+$tounum;
  8.                                                                                                                                                                                 }
  9.                                                                                                                                                                         }
  10.                                                                                                                                                                
  11.                                                                                                                                                                 if(!$flag){
  12.                                                                                                                                                                         $cName="";
  13.                                                                                                                                                                         switch ($_REQUEST['cId']) {
  14.                                                                                                                                                                                 case 1001:
  15.                                                                                                                                                                                         $cName="\\u9E21\\u86CB";
  16.                                                                                                                                                                                         break;
  17.                                                                                                                                                                                 case 1002:
  18.                                                                                                                                                                                         $cName="\\u5154\\u4ED4";
  19.                                                                                                                                                                                         break;
  20.                                                                                                                                                                                 case 1003:
  21.                                                                                                                                                                                         $cName="\\u9E45\\u86CB";
  22.                                                                                                                                                                                         break;
  23.                                                                                                                                                                                 case 1004:
  24.                                                                                                                                                                                         $cName="\\u5C0F\\u732B\\u4ED4";
  25.                                                                                                                                                                                         break;
  26.                                                                                                                                                                                 case 1005:
  27.                                                                                                                                                                                         $cName="\\u5B54\\u96C0\\u86CB";
  28.                                                                                                                                                                                         break;
  29.                                                                                                                                                                                 case 1006:
  30.                                                                                                                                                                                         $cName="\\u5C0F\\u4F01\\u9E45";
  31.                                                                                                                                                                                         break;
  32.                                                                         case 1007:
  33.                                                                                 $cName="\\u5c0f\\u4e4c\\u9f9f";
  34.                                                                                 break;                                                                                                         case 1501:                                                                                                        $cName="\\u7F8A\\u6BDB";
  35.                                                                                                                                                                                         break;
  36.                                                                                                                                                                                 case 1502:
  37.                                                                                                                                                                                         $cName="\\u725B\\u5976";
  38.                                                                                                                                                                                         break;
  39.                                                                                                                                                                                 case 1503:
  40.                                                                                                                                                                                         $cName="\\u5C0F\\u7334\\u4ED4";
  41.                                                                                                                                                                                         break;
  42.                                                                                                                                                                                 case 1504:
  43.                                                                                                                                                                                         $cName="\\u5C0F\\u888B\\u9F20";
  44.                                                                                                                                                                                         break;
  45.                                                                                                                                                                         }
  46.                                                                                                                                                                         $mc_repertory->r[] = "{"cId":".$_REQUEST['type'].","cName":"".$cName."","harvest":0,"scrounge":".$tounum."}";
  47.                                                                                                                                                                 }
  48.                                                                                                                                                                 $mc_repertory = json_encode( $mc_repertory );
  49.                                                                                                                                                                 $mc_repertory = str_replace( ""{", "{", $mc_repertory );
  50.                                                                                                                                                                 $mc_repertory = str_replace( "}"", "}", $mc_repertory );
  51.                                                                                                                                                                 $mc_repertory = str_replace( "\\u", "\\\\u", $mc_repertory );
  52.                                                                                                                                                                 $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set repertory='".$mc_repertory."' where uid=".$_SGLOBAL['supe_uid'] );
复制代码
D、查找代码
  1. echo "{"log":".$log."],"repertory":[],"user":{"homePage
复制代码
首先将这句换成
  1. echo "{"log":".$log."],"repertory":[".$tempecho."],"user":{"homePage
复制代码
然后在这句上面加入代码
  1. $tempecho="";
  2.                                 $repertory = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT repertory FROM ".tname( "plug_newfarm" )." where uid=".$_REQUEST['uId'] ), 0 );
  3.                                 $repertory = json_decode( $repertory );
  4.                                 $tempRep=$repertory->r;
  5.                                 foreach($tempRep as $val){
  6.                                         $tempecho=json_encode($val).",".$tempecho;
  7.                                 }
  8.                                 $tempecho=substr($tempecho,0,-1);
复制代码
======全剧终======

老规矩,不建议直接覆盖,可能会因为修补不同造成运行异常,不过还是给大家提供出来,覆盖之前先备份啊



下面这个和上面相同,有钱的捧个钱场,没钱的捧个人场,母哈哈哈哈

评分

3

查看全部评分

回复

使用道具 举报

1youcheng 发表于 2009-11-3 00:51:15 | 显示全部楼层
牛B,就冲你的免费,唯一的金币给你。哈哈
回复

使用道具 举报

凡军 发表于 2009-11-3 00:51:40 | 显示全部楼层
像雾像雨又像风
回复

使用道具 举报

恋之Q宠家族 发表于 2009-11-3 00:53:40 | 显示全部楼层
送你1金币 谢谢对本地农场事业的支持
回复

使用道具 举报

yawei74 发表于 2009-11-3 01:03:36 | 显示全部楼层
ding lou zhu
回复

使用道具 举报

jacky_sg 发表于 2009-11-3 01:30:22 | 显示全部楼层
支持中......
回复

使用道具 举报

dbangel 发表于 2009-11-3 01:36:51 | 显示全部楼层
默默耕耘.....才是王道阿.....
回复

使用道具 举报

philchu 发表于 2009-11-3 01:40:59 | 显示全部楼层
感谢楼主分享!!!
回复

使用道具 举报

Discuz8.0 发表于 2009-11-3 01:44:58 | 显示全部楼层
此主题已成功添加到收藏夹中。
回复

使用道具 举报

kufun 发表于 2009-11-3 02:17:33 | 显示全部楼层
已用上....只代码有些多了,我加了乌龟不知有没效果?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-12 06:09 , Processed in 0.123556 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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