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

 找回密码
 立即注册
搜索

===开心农场===花束、猫子坐、巧克力卷之类设定失效时间~~

[复制链接]
liuzhly 发表于 2009-12-23 15:59:59 | 显示全部楼层 |阅读模式
本帖最后由 liuzhly 于 2009-12-24 11:14 编辑

2009年12月24日最新修改:请注意,修改为:花(2个月小花束(1-4)、4个月中花瓶(5-8)、6个月大花篮(9-12))、4个月 神秘种子、6个月 F币购买南瓜猫系列 摆放时间!!

种花的太多了,赠送不少,每个人的屋子里基本满了,但是SAM的农场没有自动消失时间,只能自己删除,如果每个人都自觉就好说了,但是不可能所有人都很自觉,所以增加自动过期判断!


$tudiarr = array(
                                "6" => array( "level" => 5, "money" => 10000 ),
                                "7" => array( "level" => 7, "money" => 20000 ),
                                "8" => array( "level" => 9, "money" => 30000 ),
                                "9" => array( "level" => 11, "money" => 50000 ),
                                "10" => array( "level" => 13, "money" => 70000 ),
                                "11" => array( "level" => 15, "money" => 90000 ),
                                "12" => array( "level" => 17, "money" => 120000 ),
                                "13" => array( "level" => 19, "money" => 150000 ),
                                "14" => array( "level" => 21, "money" => 180000 ),
                                "15" => array( "level" => 23, "money" => 230000 ),
                                "16" => array( "level" => 25, "money" => 300000 ),
                                "17" => array( "level" => 27, "money" => 500000 )
);

下方或者上方,增加如下红色:

$timeout = array( "1" => array("1" => 5184000, "2" => 5184000, "3" => 5184000, "4" => 5184000, "5" => 10368000, "6" => 10368000, "7" => 10368000, "8" => 10368000, "9" => 15552000, "10" => 15552000, "11" => 15552000, "0" => 15552000 ), "2" => array( "1" =>10368000), "3" => array( "1" =>15552000) );  // 花(2个月小花束(1-4)、4个月中花瓶(5-8)、6个月大花篮(9-12))、4个月、6个月 摆放时间


说明:时间自己修改吧,一般 花束:2个月摆放时间  神秘种子结果的东西,4个月,南瓜猫使用F币买的6个月!

然后找到:

if ( $_REQUEST['mod'] == "user" && $_REQUEST['act'] == "run" )
..............省略代码若干.................
                                                                foreach ( $message->e as $key => $value )
                                                                {
                                                                                                if ( $value->status == 2 )
                                                                                                {
                                                                                                                                if ( 3000 < $value->formulaId )
                                                                                                                                {
                                                                                                                                                                $type = 3;
                                                                                                                                }
                                                                                                                                else if ( 2000 < $value->formulaId && $value->formulaId < 3000 )
                                                                                                                                {
                                                                                                                                                                $type = 2;
                                                                                                                                }
                                                                                                                                else
                                                                                                                                {
                                                                                                                                                                $type = 1;
                                                                                                                                }
                                                                                                                               $top[] = "{\"id\":".$value->id.",\"formulaId\":\"".$value->formulaId."\",\"type\":".$type.",\"friendId\":\"".$value->friendId."\",\"fName\":\"".$value->fName."\",\"charm\":".$value->charm.",\"msg\":\"".$value->msg."\",\"show\":\"1\",\"x\":\"".$value->x."\",\"y\":\"".$value->y."\",\"z\":\"".$value->z."\"}";//注意修改后去掉
                                                                                                }
                                                                }

修改为:红色为增加的,橘黄色实际上是下面移动位置了!
                $executesql=false;
                foreach ( $message->e as $key => $value ){
                        if ( $value->status == 2 ){
                                if ( 3000 < $value->formulaId ){
                                        $type = 3;
                                        $Rid = 1;
                                }else if ( 2000 < $value->formulaId && $value->formulaId < 3000 ){
                                        $type = 2;
                                        $Rid = 1;
                                }else{
                                        $type = 1;
                                        $Rid = $value->formulaId % 12;
                                }
                               if($value->validTime == 0){
                                        if( $_SGLOBAL['timestamp'] - $value->sendTime > $timeout[$type][$Rid]){
                                                $executesql=true;
                                                unset( $message->e[$key] );
                                        }else{
                                                $top[] = "{\"id\":".$value->id.",\"formulaId\":\"".$value->formulaId."\",\"type\":".$type.",\"friendId\":\"".$value->friendId."\",\"fName\":\"".$value->fName."\",\"charm\":".$value->charm.",\"msg\":\"".$value->msg."\",\"show\":\"1\",\"x\":\"".$value->x."\",\"y\":\"".$value->y."\",\"z\":\"".$value->z."\"}";
                                        }
                                }else{
                                        if($_SGLOBAL['timestamp'] > $value->validTime){
                                                $executesql=true;
                                                unset( $message->e[$key] );
                                        }else{
                                                $top[] = "{\"id\":".$value->id.",\"formulaId\":\"".$value->formulaId."\",\"type\":".$type.",\"friendId\":\"".$value->friendId."\",\"fName\":\"".$value->fName."\",\"charm\":".$value->charm.",\"msg\":\"".$value->msg."\",\"show\":\"1\",\"x\":\"".$value->x."\",\"y\":\"".$value->y."\",\"z\":\"".$value->z."\"}";
                                        }
                                }
                        }
                }


然后继续找:
        if ( $top == "" )
        {
            $top = "null";
        }
在其下面增加:

                if($executesql){
                        $message = json_encode( $message );
                        $message = preg_replace( "'\"[0-9]+\":{'", "{", $message );
                        $message = str_ireplace( "\"e\":{{", "\"e\":[{", $message );
                        $message = str_ireplace( "}}}", "}]}", $message );
                        $message = str_replace( "\\u", "\\\\u", $message );
                        $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set message='".$message."' where uid=".intval( $_REQUEST['ownerId'] ) );
                }



上面那个事更新好友的!
继续找到第二个,下面是显示更新自己的:

        foreach ( $message->e as $key => $value )
        {
            if ( $value->status == 2 )
            {
                if ( 3000 < $value->formulaId )
                {
                    $type = 3;
                }
                else if ( 2000 < $value->formulaId && $value->formulaId < 3000 )
                {
                    $type = 2;
                }
                else
                {
                    $type = 1;
                }
                $top[] = "{\"id\":".$value->id.",\"formulaId\":\"".$value->formulaId."\",\"type\":".$type.",\"friendId\":\"".$value->friendId."\",\"fName\":\"".$value->fName."\",\"charm\":".$value->charm.",\"msg\":\"".$value->msg."\",\"show\":\"1\",\"x\":\"".$value->x."\",\"y\":\"".$value->y."\",\"z\":\"".$value->z."\"}";//注意修改后去掉
            }
            if ( $value->status == 0 )
            {
                $c++;
     }
    }

修改为:
                $executesql=false;
                foreach ( $message->e as $key => $value ){
                        if ( $value->status == 0 ){
                                $c++;
                        }elseif ( $value->status == 2 ){
                                if ( 3000 < $value->formulaId ){
                                        $type = 3;
                                        $Rid = 1;
                                }else if ( 2000 < $value->formulaId && $value->formulaId < 3000 ){
                                        $type = 2;
                                        $Rid = 1;
                                }else{
                                        $type = 1;
                                        $Rid = $value->formulaId % 12;
                                }
                                if($value->validTime == 0){
                                        if( $_SGLOBAL['timestamp'] - $value->sendTime > $timeout[$type][$Rid]){
                                                $executesql=true;
                                                unset( $message->e[$key] );
                                        }else{
                                                $top[] = "{\"id\":".$value->id.",\"formulaId\":\"".$value->formulaId."\",\"type\":".$type.",\"friendId\":\"".$value->friendId."\",\"fName\":\"".$value->fName."\",\"charm\":".$value->charm.",\"msg\":\"".$value->msg."\",\"show\":\"1\",\"x\":\"".$value->x."\",\"y\":\"".$value->y."\",\"z\":\"".$value->z."\"}";
                                        }
                                }else{
                                        if($_SGLOBAL['timestamp'] > $value->validTime){
                                                $executesql=true;
                                                unset( $message->e[$key] );
                                        }else{
                                                $top[] = "{\"id\":".$value->id.",\"formulaId\":\"".$value->formulaId."\",\"type\":".$type.",\"friendId\":\"".$value->friendId."\",\"fName\":\"".$value->fName."\",\"charm\":".$value->charm.",\"msg\":\"".$value->msg."\",\"show\":\"1\",\"x\":\"".$value->x."\",\"y\":\"".$value->y."\",\"z\":\"".$value->z."\"}";
                                        }
                                }

                        }
                }


继续向下找到

                echo stripslashes( "{\"farmlandStatus\":".$farmlandstatusarr.",\"items\":{".$decorative_srt."},\"exp\":".$list[0][exp].",\"charm\":".$list[0][charm].",\"dog\":".$dogstr.",\"top\":".$top.",\"weather\":{\"weatherId\":1},\"serverTime\":{\"time\":".$_SGLOBAL['timestamp']."},\"user\":{\"uId\":\"".$_SGLOBAL['supe_uid']."\",\"userName\":\"".str_replace( "\\u", "\\\\u", unicode_encodegb( $space['name'] ) )."\",\"money\":".$list[0][money].",\"FB\":\"".$list[0][fb]."\",\"exp\":".$list[0][exp].",\"charm\":".$list[0][charm].",\"headPic\":\"".avatarfarm( $_SGLOBAL[supe_uid], "small", TRUE )."\"},\"a\":{$a},\"c\":".$c.",\"b\":{$b}".$taskid."}" );
exit( );

在其上方添加:

                if($executesql){
                        $message = json_encode( $message );
                        $message = preg_replace( "'\"[0-9]+\":{'", "{", $message );
                        $message = str_ireplace( "\"e\":{{", "\"e\":[{", $message );
                        $message = str_ireplace( "}}}", "}]}", $message );
                        $message = str_replace( "\\u", "\\\\u", $message );
                        $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set message='".$message."' where uid=".$_SGLOBAL['supe_uid'] );
                }



这样,用户打开农场,系统判断时间,如果超过设定时间,自动删除,节省空间,让其不再永久~~~

说明:
if($value->validTime == 0 ) 和 else 为了兼容以后应用,如果设定了  $value->validTime  时间,那么过期参照 本身过期时间,如果没设置,参照程序代码中设置时间~~~

评分

1

查看全部评分

回复

使用道具 举报

cjlyr 发表于 2009-12-23 16:20:59 | 显示全部楼层
沙发!好东西!希望楼主不断的出精品!
回复

使用道具 举报

 楼主| liuzhly 发表于 2009-12-23 16:51:55 | 显示全部楼层
本帖最后由 liuzhly 于 2009-12-24 17:29 编辑

为了考虑加载速度,房间里的摆设就不在加载判断清除了,打开房间的时候,系统再进行过期清除操作,能省点系统资源就省点吧~~~

红色为增加项:,橘黄色为原来的,移动地方了,如果原来有,删除!注意了

找到  if ( $_REQUEST['mod'] == "Gift" && $_REQUEST['act'] == "getGift" )
............................

        $executesql = false;
        foreach ( $message->e as $key => $value ){
..................
if ( $value->status == 1 ){
                        if ( 3000 < $value->formulaId ){
                                $type = 3;
                                $Rid = 1;
                        }elseif ( 2000 < $value->formulaId && $value->formulaId < 3000 ){
                                $type = 2;
                                $Rid = 1;
                        }else{
                                $type = 1;
                                $Rid = $value->formulaId % 12;
                        }
                        if($value->validTime == 0){
                                if( $_SGLOBAL['timestamp'] - $value->sendTime > $timeout[$type][$Rid]){
                                        $executesql=true;
                                        unset( $message->e[$key] );
                                }else{
                                        $result[] = "{\"id\":".$value->id.",\"formulaId\":".$value->formulaId.",\"type\":".$type.",\"friendId\":\"".$value->friendId."\",\"fName\":\"".$value->fName."\",\"charm\":".$value->charm.",\"msg\":\"".$value->msg."\",\"show\":1,\"x\":".$value->x.",\"y\":".$value->y.",\"z\":".$value->z."}";
                                }
                        }else{
                                if($_SGLOBAL['timestamp'] > $value->validTime){
                                        $executesql=true;
                                        unset( $message->e[$key] );
                                }else{
                                        $result[] = "{\"id\":".$value->id.",\"formulaId\":".$value->formulaId.",\"type\":".$type.",\"friendId\":\"".$value->friendId."\",\"fName\":\"".$value->fName."\",\"charm\":".$value->charm.",\"msg\":\"".$value->msg."\",\"show\":1,\"x\":".$value->x.",\"y\":".$value->y.",\"z\":".$value->z."}";
                                }
                        }

                }

继续向下找到:

        echo stripslashes( str_ireplace( "[null]", "[]", $result ) );
        exit( );

再其上方添加如下:

        if($executesql){
                $message = json_encode( $message );
                $message = preg_replace( "'\"[0-9]+\":{'", "{", $message );
                $message = str_ireplace( "\"e\":{{", "\"e\":[{", $message );
                $message = str_ireplace( "}}}", "}]}", $message );
                $message = str_replace( "\\u", "\\\\u", $message );
                $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set message='".$message."' where uid=".intval( $_REQUEST['ownerId'] ) );
        }


实际上此楼功能完全可以通过1楼调整一下实现功能,但是本人还是感觉应该分开,如果不想分开判断的朋友,把1楼的稍微修改一下,就可以判断清除所有摆设!
回复

使用道具 举报

patiku 发表于 2009-12-24 00:07:38 | 显示全部楼层
哈哈!我又来顶楼主的帖子了!!
难得跟楼主一样同好,都觉得五分钟版较好玩!
期待你常常能出精品哦!

不知楼主对该帖的功能有否研究呢??
https://discuz.dismall.com/thread-1515812-1-1.html
回复

使用道具 举报

 楼主| liuzhly 发表于 2009-12-24 08:57:03 | 显示全部楼层
这个功能其实很简单  ,判断用户每天第一次登陆时候,随机物品增加,然后在消息里插入通知,与赠送花束差不多,回头我有空看看能否完成~~~别抱太大希望哈
回复

使用道具 举报

 楼主| liuzhly 发表于 2009-12-24 11:14:49 | 显示全部楼层
2009年12月24日最新修改:请注意,修改为:花(2个月小花束(1-4)、4个月中花瓶(5-8)、6个月大花篮(9-12))、4个月 神秘种子、6个月 F币购买南瓜猫系列 摆放时间!!
回复

使用道具 举报

kissmahao 发表于 2009-12-24 14:06:01 | 显示全部楼层
((em:09)) 感谢LZ分享
回复

使用道具 举报

s36376149 发表于 2009-12-24 14:37:27 | 显示全部楼层
好东西就要顶
回复

使用道具 举报

samfansi1 发表于 2009-12-24 14:42:06 | 显示全部楼层
惊天精品,
回复

使用道具 举报

蛊惑狼 发表于 2009-12-24 14:44:39 | 显示全部楼层
好东西!希望楼主不断的出精品!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-21 18:38 , Processed in 0.113393 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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