本帖最后由 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 时间,那么过期参照 本身过期时间,如果没设置,参照程序代码中设置时间~~~ |