arr['server']->redis_pool->get(); $mysql_conn = $this->arr['server']->mysql_pool->get(); $tmp_user_info = $this->arr['server']->get_user_by_fd($this->arr['fd']); if($tmp_user_info['uid']) {//如果用户登陆正常 $uid = $tmp_user_info['uid']; //用户属性 $user_prop = get_game_user_prop($uid,$mysql_conn,$redis_conn); $return_arr = array( "ga" => 'init_info', "code" => 1, "gd" => array( 'have_gold' => round($user_prop['have_gold']), 'grade' => $user_prop['grade'], 'exp' => round($user_prop['exp']), 'upgrade_exp'=> round($GLOBALS["SYS_FLOWER_MEMBER_2"][$user_prop['grade']]['next_exp']) ) ); $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; }else{ echo("用户不在线:fd=".$this->arr['fd']."||uid=".$tmp_user_info['uid']); } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); return true; } //获取玩家的花田数据 public function init_field(){ $redis_conn = $this->arr['server']->redis_pool->get(); $mysql_conn = $this->arr['server']->mysql_pool->get(); $tmp_user_info = $this->arr['server']->get_user_by_fd($this->arr['fd']); if($tmp_user_info['uid']) {//如果用户登陆正常 $uid = $tmp_user_info['uid']; //花田数据 $user_flower_field = get_game_user_field($uid,$mysql_conn,$redis_conn); $return_arr = array( "ga" => 'init_field', "code" => 1, "gd" => $user_flower_field ); $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; }else{ echo("用户不在线:fd=".$this->arr['fd']."||uid=".$tmp_user_info['uid']); } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); return true; } //花卉种子列表 public function init_seed_list(){ $redis_conn = $this->arr['server']->redis_pool->get(); $mysql_conn = $this->arr['server']->mysql_pool->get(); $tmp_user_info = $this->arr['server']->get_user_by_fd($this->arr['fd']); if($tmp_user_info['uid']) {//如果用户登陆正常 $uid = $tmp_user_info['uid']; $seed_data = $GLOBALS["SYS_FLOWER_PLANTS"]; $fat_data = $GLOBALS["SYS_FLOWER_COMPOSTED"]; if($seed_data){ foreach($seed_data as $k => $v ){ $tmp_data[] = array( 'id' => $v[1]['id'], //'花卉ID', 'name' => $v[1]['name'], //'花卉名称', 'grade' => round($v[1]['grade']), //'花卉等级', 'grade2'=> round($v[1]['grade2']), //'要求用户最底等级', 'grade3'=> round($v[1]['grade3']), //'要求用户最高等级', 'gold' => round($v[1]['gold']), //'种子价格', 'pic' => $v[1]['pic'], //'花卉种子图片', 'ain' => $v[1]['ain'] //'花卉种子动画', ); } foreach($fat_data as $k => $v ){ $tmp_sf_data[] = array( 'id' => $v[1]['id'], //'施肥ID', 'num' => round($v[1]['num3']), //'施肥价格', 'pic' => $v[1]['pic'], //'施肥图片', 'ain' => $v[1]['ain'] //'施肥动画', ); } $return_arr = array( "ga" => 'init_seed_list', "code" => 1, "gd" => array( "seed_data" => $tmp_data,//种子数据 "fat_data" => $tmp_sf_data //施肥 ) ); }else{ $return_arr = array( "ga" => 'game_fail_tip', "code" => 1, "gd" => array( 'uid'=>0, 'msg'=>"获取失败!!" ) ); } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; }else{ echo("用户不在线:fd=".$this->arr['fd']."||uid=".$tmp_user_info['uid']); } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); return true; } //花田升级/扩建 public function init_flower_grade(){ $return_arr = array( "ga" => 'game_txt_tip', "code" => 1, "gd" => array( 'uid'=>0, 'msg'=>"fail" ) ); $redis_conn = $this->arr['server']->redis_pool->get(); $mysql_conn = $this->arr['server']->mysql_pool->get(); $tmp_user_info = $this->arr['server']->get_user_by_fd($this->arr['fd']); if($tmp_user_info['uid']) {//如果用户登陆正常 $uid = $tmp_user_info['uid']; $ip = $this->arr['ip']; $ff_id = $this->arr['d']["ff_id"]; //花田id $type = intval($this->arr['d']["type"]);////1升级 2扩建 $type = $type?$type:1; if(empty($ff_id)){ $return_arr["gd"]["msg"] = "花田数据不能为空"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $user_prop = get_game_user_prop($uid,$mysql_conn,$redis_conn);//用户属性 //获取用户花田数据 $user_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); if(!$user_field_info){ $return_arr["gd"]["msg"] = "没有该花田数据"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $field_data = $GLOBALS["SYS_FLOWER_FIELD"][$ff_id]; $tol_field = count($field_data);//花田总级数 if($type==2){//扩建 if($user_field_info['ff_vip']>1){ $return_arr["gd"]["msg"] = "花田已扩建"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } //获取用户的等级数据 $tmp_grade_data = $GLOBALS["SYS_FLOWER_MEMBER_2"][$user_prop['grade']]; //统计已开的花田数量 $field_tol = $mysql_conn->NumRows( $mysql_conn->Query("SELECT * FROM ".get_table("game_flower_field")." WHERE uid='".$uid."' and ff_vip>1 ") ); $next_tmp_ht = $field_tol+1;//下一级花田id //此等级可扩建花田数量 if($field_tol>=$tmp_grade_data['field']){ foreach($GLOBALS["SYS_FLOWER_MEMBER_2"] as $k=>$v){ if($v['field']==$next_tmp_ht){ $next_open_field_id = $k; break; } } $return_arr["gd"]["msg"] = "达到".$next_open_field_id."级可扩建该花田"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } //限制 按顺序升级 $tmp_ht_name = $next_tmp_ht>=10?("ht".$next_tmp_ht):("ht0".$next_tmp_ht); if($ff_id != $tmp_ht_name){ $return_arr["gd"]["msg"] = "请先扩建第".$next_tmp_ht."块花田"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } //获取花田数据 $field_grade_data = $field_data[$user_field_info['ff_vip']]; if($field_grade_data){ if($user_prop['have_gold']<$field_grade_data['unlocknum']){ sys_log_write_content( '用户宝石:'.json_encode($user_prop).",所需宝石".$field_grade_data['unlocknum'] ,"error_log","member_have_gold_sql"); $return_arr["gd"]["msg"] = "金币不足!"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $arr_up = array( 'ff_vip' => $user_field_info['ff_vip']+1 ); $info = update_game_user_field($uid,$ff_id,$arr_up,$mysql_conn,$redis_conn); if($info){ //宝石扣除 if($field_grade_data['unlocknum']>0){ $u_gold = $field_grade_data['unlocknum']; //改变的宝石数 $u_type = 2; //改变类型(1增加宝石,2减少宝石) $u_info = $ff_id.'花田,扩建'; // 说明 $tmp_data1 = update_user_have_gold( $uid, $u_gold, $u_type, $u_info, $ip, $mysql_conn, $redis_conn); } //经验值增加 if($field_grade_data['exp2']>0){ $exp_exp = $field_grade_data['exp2'];//改变的经验数 $exp_info = $ff_id.'花田,扩建获得';//经验说明 update_user_exp($uid,$exp_exp,$exp_info,$ip,$mysql_conn,$redis_conn); } //扩建后的等级 $new_ff_vip = $user_field_info['ff_vip']+1; //添加用户花田扩建日志 $add_arr = array( 'uid' => $uid, 'ff_id' => $ff_id, 'type' => 2, 'before_vip' => $user_field_info['ff_vip'], 'after_vip' => $new_ff_vip, 'exp' => 0, 'gold' => $field_grade_data['unlocknum'], 'add_time' => date("Y-m-d H:i:s", time()), 'info' => $ff_id.'花田扩建' ); add_member_flower_field_log($add_arr,$mysql_conn,$redis_conn); //输出信息 $next_flower_field = $field_data[$new_ff_vip];//下一级花田的数据 //更新后的花田信息 $new_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); //当前生长加速 $seed = 100 + $GLOBALS["SYS_FLOWER_FIELD"][$ff_id][$new_field_info['ff_vip']-1]['speed']; //已扩建的花田总数 $tmp_flower_tol = count($GLOBALS["SYS_FLOWER_FIELD"]);//花田总数 $field_tol = $mysql_conn->NumRows( $mysql_conn->Query("SELECT * FROM ".get_table("game_flower_field")." WHERE `uid`='".$uid."' and `ff_vip`>1 ") ); $next_tmp_ht = $field_tol+1;//下一块花田id $tmp_ht_name = $next_tmp_ht>=10?("ht".$next_tmp_ht):("ht0".$next_tmp_ht); $tmp_ht_name = $next_tmp_ht>$tmp_flower_tol?'':$tmp_ht_name; $return_arr = array( "ga" => 'init_flower_grade', "code" => 1, "gd" => array( 'type' => $type, 'ff_id' => $ff_id, 'seed' => $seed,//花田生长加速百分比 'next_seed' => round($next_flower_field['speed']),//下一级花田生长加速百分比 'max_grade' => ($tol_field+1),//花田的最高等级 'ff_vip' => round($new_ff_vip), //1未开锁,2等级一,3等级二,4等级三 5等级四 6等级五 'ff_exp' => round($new_field_info['ff_exp']), //'花田当前的经验值' 'next_ht_lock' => $tmp_ht_name,//可以扩建的下一块花田id 'next_exp' => $new_ff_vip>1 ? round($next_flower_field['exp']) : 0 , //'花田的升下一级经验值' 'ff_id_unlocknum' => $new_ff_vip>1 ? 0 : round($field_grade_data['unlocknum']), //'扩建所需宝石' 'next_ff_id_glod' => $new_ff_vip>1 ? round($next_flower_field['num2']) : 0, //'下一级升级所需宝石' 'pic' => $next_flower_field['pic'], //'花田正常图片', 'ain' => $next_flower_field['ain'], //'花田正常动画', 'msg' => '扩建成功'.($field_grade_data['exp2']>0?(",经验+".$field_grade_data['exp2']):"") ) ); }else{ $return_arr["gd"]["msg"] = "扩建失败"; } }else{ $return_arr["gd"]["msg"] = "没有该花田"; } }else{//升级 if( ($user_field_info['ff_vip']) >= $tol_field){ $return_arr["gd"]["msg"] = "花田已是最高等级"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if($user_field_info['ff_vip']<2){ $return_arr["gd"]["msg"] = "花田还没扩建"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $field_grade_data = $GLOBALS["SYS_FLOWER_FIELD"][$ff_id][$user_field_info['ff_vip']]; if($field_grade_data){ if( $user_field_info['ff_exp'] < $field_grade_data['exp'] ){ $return_arr["gd"]["msg"] = "花田经验不足,请多多种植吧"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if($user_prop['have_gold']<$field_grade_data['num2']){ sys_log_write_content( '用户宝石:'.json_encode($user_prop).",所需宝石".$field_grade_data['num2'] ,"error_log","member_have_gold_sql"); $return_arr["gd"]["msg"] = "金币不足!"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $arr_up = array( //'ff_exp' => 'ff_exp-'.$field_grade_data['exp'],//当前花田经验值减去 'ff_exp' => 0,//当前花田经验值重置为0,下一级重新累积 'ff_vip' => $user_field_info['ff_vip']+1 ); $info = update_game_user_field($uid,$ff_id,$arr_up,$mysql_conn,$redis_conn); if($info){ //宝石扣除 if($field_grade_data['num2']>0){ $u_gold = $field_grade_data['num2']; //改变的宝石数 $u_type = 2; //改变类型(1增加宝石,2减少宝石) $u_info = $ff_id.'花田升级'; // 说明 update_user_have_gold( $uid, $u_gold, $u_type, $u_info, $ip, $mysql_conn, $redis_conn ); } //经验值增加 if($field_grade_data['exp2']>0){ $exp_exp = $field_grade_data['exp2'];//改变的经验数 $exp_info = $ff_id.'花田,升级获得';//经验说明 update_user_exp($uid,$exp_exp,$exp_info,$ip,$mysql_conn,$redis_conn); } //升级后的等级 $new_ff_vip = $user_field_info['ff_vip']+1; //添加用户花田升级日志 $add_arr = array( 'uid' => $uid, 'ff_id' => $ff_id, 'type' => 1, 'before_vip' => $user_field_info['ff_vip'], 'after_vip' => $new_ff_vip, 'exp' => $user_field_info['ff_exp'],//$field_grade_data['exp'], 'gold' => $field_grade_data['num2'], 'add_time' => date("Y-m-d H:i:s", time()), 'info' => $ff_id.'花田升级' ); add_member_flower_field_log($add_arr,$mysql_conn,$redis_conn); //输出信息 $next_flower_field = $field_data[$new_ff_vip];//下一级花田的数据 //更新后的花田信息 $new_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); //当前生长加速 $seed = 100 + $GLOBALS["SYS_FLOWER_FIELD"][$ff_id][$new_field_info['ff_vip']-1]['speed']; //已扩建的花田总数 $tmp_flower_tol = count($GLOBALS["SYS_FLOWER_FIELD"]);//花田总数 $field_tol = $mysql_conn->NumRows( $mysql_conn->Query("SELECT * FROM ".get_table("game_flower_field")." WHERE `uid`='".$uid."' and `ff_vip`>1 ") ); $next_tmp_ht = $field_tol+1;//下一块花田id $tmp_ht_name = $next_tmp_ht>=10?("ht".$next_tmp_ht):("ht0".$next_tmp_ht); $tmp_ht_name = $next_tmp_ht>$tmp_flower_tol?'':$tmp_ht_name; $return_arr = array( "ga" => 'init_flower_grade', "code" => 1, "gd" => array( 'type' => $type, 'ff_id' => $ff_id, 'seed' => $seed,//花田生长加速百分比 'next_seed' => round($next_flower_field['speed']),//下一级花田生长加速百分比 'max_grade' => ($tol_field),//花田的最高等级 'ff_vip' => round($new_ff_vip), //1未开锁,2等级一,3等级二,4等级三 5等级四 6等级五 'ff_exp' => round($new_field_info['ff_exp']), //'花田当前的经验值' 'next_ht_lock' => $tmp_ht_name,//可以扩建的下一块花田id 'next_exp' => $new_ff_vip>1 ? round($next_flower_field['exp']) : 0, //'花田的升下一级经验值' 'ff_id_unlocknum' => $new_ff_vip>1 ? 0 : round($field_grade_data['unlocknum']), //'扩建所需宝石' 'next_ff_id_glod' => $new_ff_vip>1 ? round($next_flower_field['num2']) : 0, //'下一级升级所需宝石' 'pic' => $next_flower_field['pic'], //'花田正常图片', 'ain' => $next_flower_field['ain'], //'花田正常动画', 'msg' => '花田升级成功!'.($field_grade_data['exp2']>0?("经验+".$field_grade_data['exp2']):"") ) ); }else{ $return_arr["gd"]["msg"] = "升级失败"; } }else{ $return_arr["gd"]["msg"] = "没有该花田"; } } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; }else{ echo("用户不在线:fd=".$this->arr['fd']."||uid=".$tmp_user_info['uid']); } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); return true; } //种植花卉 public function init_plant_flower(){ $return_arr = array( "ga" => 'game_txt_tip', "code" => 1, "gd" => array( 'uid'=>0, 'msg'=>"fail" ) ); $redis_conn = $this->arr['server']->redis_pool->get(); $mysql_conn = $this->arr['server']->mysql_pool->get(); $tmp_user_info = $this->arr['server']->get_user_by_fd($this->arr['fd']); if($tmp_user_info['uid']) {//如果用户登陆正常 $uid = $tmp_user_info['uid']; $ip = $this->arr['ip']; $ff_id = $this->arr['d']["ff_id"]; //花田id $seed_num = $this->arr['d']["seed_num"]; //花卉编号 if(empty($ff_id)){ $return_arr["gd"]["msg"] = "花田数据不能为空"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } if(empty($seed_num)){ $return_arr["gd"]["msg"] = "花卉数据不能为空"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } // $user_prop = get_game_user_prop($uid,$mysql_conn,$redis_conn);//用户属性 //用户花田 $user_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); if(!$user_field_info){ $return_arr["gd"]["msg"] = "没有该花田数据"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } if($user_field_info['ff_vip']==1){ $return_arr["gd"]["msg"] = "该花田还没扩建"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } if($user_field_info['seed_num']){ $return_arr["gd"]["msg"] = "该花田已种植花卉!"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } //种子数据 $seed_data = $GLOBALS["SYS_FLOWER_PLANTS"][$seed_num][1]; if(!$seed_data){ $return_arr["gd"]["msg"] = "没有该花卉"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } if($user_prop['have_gold']<$seed_data['gold']){ sys_log_write_content( '用户宝石:'.json_encode($user_prop).",所需宝石".$seed_data['gold'] ,"error_log","member_have_gold_sql"); $return_arr["gd"]["msg"] = "该花种需消耗".$seed_data['gold']."金币!"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } //判断用户等级 if( $user_prop['grade'] < $seed_data['grade2'] ){ $return_arr["gd"]["msg"] = "达到".$seed_data['grade2']."级可种植".$seed_data['name']; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } $tmp_time = time(); $sf_data = $GLOBALS["SYS_FLOWER_COMPOSTED"]['sf01'][1];//施肥数据 if( strtotime($user_field_info['fat_time'])-$tmp_time>0 ){//如果施肥还有效 $seed_sf = $sf_data['num2'];//施肥加速 $speed = $seed_data['speed'] + $GLOBALS["SYS_FLOWER_FIELD"][$ff_id][$user_field_info['ff_vip']-1]['speed']+$seed_sf;//生长速度 }else{ $speed = $seed_data['speed'] + $GLOBALS["SYS_FLOWER_FIELD"][$ff_id][$user_field_info['ff_vip']-1]['speed'];//生长速度 } $w_js_time = round( $tmp_time + round(($seed_data['time2'])/2) / $speed); $ger_time = round( $tmp_time + round( $seed_data['time2'] ) / $speed); $grow_time = round( $tmp_time + round( ($seed_data['time2']+$seed_data['time3']) ) / $speed); $bud_time = round( $tmp_time + round( $seed_data['t'] ) / $speed); $mature_time = round( $tmp_time + round( $seed_data['t'] ) / $speed); $arr_up = array( 'seed_num' => $seed_data['id'], 'w_js_time' => date( "Y-m-d H:i:s", $w_js_time ), 'ger_time' => date( "Y-m-d H:i:s", $ger_time), 'grow_time' => date( "Y-m-d H:i:s", $grow_time), 'bud_time' => date( "Y-m-d H:i:s", $bud_time), 'mature_time' => date( "Y-m-d H:i:s", $mature_time ), 'grow_static' => 1 ); $info = update_game_user_field($uid,$ff_id,$arr_up,$mysql_conn,$redis_conn); if($info){ //宝石扣除 if($seed_data['gold']>0){ $u_gold = $seed_data['gold']; //改变的宝石数 $u_type = 2; //改变类型(1增加宝石,2减少宝石) $u_info = $seed_data['name'].'种植'; // 说明 update_user_have_gold( $uid, $u_gold, $u_type, $u_info, $ip, $mysql_conn, $redis_conn); } //添加用户花田种植日志 $add_arr = array( 'uid' => $uid, 'ff_id' => $ff_id, 'ff_vip' => $user_field_info['ff_vip'], 'gold' => $seed_data['gold'], 'seed_num' => $seed_num,//'花卉编号' 'add_time' => date("Y-m-d H:i:s", time()), 'info' => $seed_data['name'].'种植' ); add_member_flower_plant_log($add_arr,$mysql_conn,$redis_conn); $new_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); //花卉数据 $flower_seed_data = get_flower_data($uid,$new_field_info,$mysql_conn,$redis_conn); $return_arr = array( "ga" => 'init_plant_flower', "code" => 1, "gd" => array( 'ff_id' => $ff_id, 'fat_time' => strtotime($new_field_info['fat_time'])-$tmp_time>0?strtotime($new_field_info['fat_time'])-$tmp_time:0, //'当前施肥时间' 'fat_time_tol' => strtotime($new_field_info['fat_time'])-$tmp_time>0? $sf_data['t'] : 0, //施肥总时间 'ff_exp' => round($new_field_info['ff_exp']),//'花田当前的经验值' 'seed_data' => $flower_seed_data, 'msg' => '已播种'.$seed_data['name'] ) ); }else{ $return_arr["gd"]["msg"] = "种植".$seed_data['name']."失败"; } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; }else{ echo("用户不在线:fd=".$this->arr['fd']."||uid=".$tmp_user_info['uid']); } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); return true; } //花卉生长 public function init_grow_flower(){ $return_arr = array( "ga" => 'game_txt_tip', "code" => 1, "gd" => array( 'uid'=>0, 'msg'=>"fail" ) ); $redis_conn = $this->arr['server']->redis_pool->get(); $mysql_conn = $this->arr['server']->mysql_pool->get(); $tmp_user_info = $this->arr['server']->get_user_by_fd($this->arr['fd']); if($tmp_user_info['uid']) {//如果用户登陆正常 $uid = $tmp_user_info['uid']; $ip = $this->arr['ip']; $ff_id = $this->arr['d']["ff_id"]; //花田id if(empty($ff_id)){ $return_arr["gd"]["msg"] = "花田数据不能为空"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } //用户花田 $user_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); if(!$user_field_info){ $return_arr["gd"]["msg"] = "没有该花田数据"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if($user_field_info['ff_vip']==1){ $return_arr["gd"]["msg"] = "该花田还没扩建"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if(!$user_field_info['seed_num']){ $return_arr["gd"]["msg"] = "该花田没有种植花卉"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } //花卉数据 $flower_seed_data = get_flower_data($uid,$user_field_info,$mysql_conn,$redis_conn); $sf_data = $GLOBALS["SYS_FLOWER_COMPOSTED"]['sf01'][1];//施肥数据 $return_arr = array( "ga" => 'init_grow_flower', "code" => 1, "gd" => array( 'ff_id' => $ff_id, 'fat_time' => strtotime($user_field_info['fat_time'])-time()>0?strtotime($user_field_info['fat_time'])-time():0, //'当前施肥时间' 'fat_time_tol' => strtotime($user_field_info['fat_time'])-time()>0? $sf_data['t'] : 0, //施肥总时间 'ff_exp' => round($user_field_info['ff_exp']),//'花田当前的经验值' 'seed_data' => $flower_seed_data, 'msg' => '成长成功' ) ); $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; }else{ echo("用户不在线:fd=".$this->arr['fd']."||uid=".$tmp_user_info['uid']); } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); return true; } //花卉浇水 public function init_flower_water(){ $return_arr = array( "ga" => 'game_txt_tip', "code" => 1, "gd" => array( 'uid'=>0, 'msg'=>"fail" ) ); $redis_conn = $this->arr['server']->redis_pool->get(); $mysql_conn = $this->arr['server']->mysql_pool->get(); $tmp_user_info = $this->arr['server']->get_user_by_fd($this->arr['fd']); if($tmp_user_info['uid']) {//如果用户登陆正常 $uid = $tmp_user_info['uid']; $ip = $this->arr['ip']; $ff_id = $this->arr['d']["ff_id"]; //花田id $f_uid = $this->arr['d']["f_uid"]; //好友id $sf_data = $GLOBALS["SYS_FLOWER_COMPOSTED"]['sf01'][1];//施肥数据 if(empty($ff_id)){ $return_arr["gd"]["msg"] = "花田数据不能为空"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } //用户花田 $user_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); if(!$user_field_info){ $return_arr["gd"]["msg"] = "没有该花田数据"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if($user_field_info['ff_vip']==1){ $return_arr["gd"]["msg"] = "该花田还没扩建"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if(!$user_field_info['seed_num']){ $return_arr["gd"]["msg"] = "该花田没有种植花卉"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if($user_field_info['grow_static']==4 || strtotime($user_field_info['mature_time'])-time()<1){ //获取更新后的花田数据 $new_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); //花卉数据 $flower_seed_data = get_flower_data($uid,$new_field_info,$mysql_conn,$redis_conn); $return_arr = array( "ga" => 'init_flower_water', "code" => 1, "gd" => array( 'ff_id' => $ff_id,//'花田id' 'fat_time' => strtotime($new_field_info['fat_time'])-time()>0?strtotime($new_field_info['fat_time'])-time():0, //'当前施肥时间' 'fat_time_tol' => strtotime($new_field_info['fat_time'])-time()>0? $sf_data['t'] : 0, //施肥总时间 'ff_exp' => $new_field_info['ff_exp'],//'花田当前的经验值' 'seed_data' => $flower_seed_data, 'msg' => '花卉已成熟' ) ); $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $js_data = $GLOBALS["SYS_FLOWER_WATER"]['js01'][1]; if(!$js_data){ $return_arr["gd"]["msg"] = "浇水出错了"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $user_prop = get_game_user_prop($uid,$mysql_conn,$redis_conn);//用户属性 //是否需要宝石 if($js_data['num']>0){ if($user_prop['have_gold']<$js_data['num']){ sys_log_write_content( '用户宝石:'.json_encode($user_prop).",所需宝石".$js_data['num'] ,"error_log","member_have_gold_sql"); $return_arr["gd"]["msg"] = "金币不足!"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } } //是否可以浇水 if( strtotime($user_field_info['w_js_time'])-time()>0 ){ $return_arr["gd"]["msg"] = "不可浇水"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $flower_plants = $GLOBALS["SYS_FLOWER_PLANTS"][$user_field_info['seed_num']][1];//花卉数据 $ger_time = strtotime($user_field_info['ger_time']);//发芽时间 $grow_time = strtotime($user_field_info['grow_time']);//生长时间 $bud_time = strtotime($user_field_info['bud_time']);//花苞时间 $mature_time = strtotime($user_field_info['mature_time']);//成熟时间 //发芽时间 if(strtotime($user_field_info['ger_time'])-time()<0 || $user_field_info['grow_static']==1){ $ger_time = strtotime($user_field_info['ger_time'])-$flower_plants['num2']; $grow_time = strtotime($user_field_info['grow_time'])-$flower_plants['num2']; $bud_time = strtotime($user_field_info['bud_time'])-$flower_plants['num2']; $mature_time = strtotime($user_field_info['mature_time'])-$flower_plants['num2']; //$w_js_time = strtotime($user_field_info['w_js_time']); $w_js_time = $grow_time- round(($grow_time-time())/2); } //生长时间 if(strtotime($user_field_info['grow_time'])-time()<0 || $user_field_info['grow_static']==2){ $grow_time = strtotime($user_field_info['grow_time'])-$flower_plants['num2']; $bud_time = strtotime($user_field_info['bud_time'])-$flower_plants['num2']; $mature_time = strtotime($user_field_info['mature_time'])-$flower_plants['num2']; $w_js_time = $grow_time- round(($grow_time-time())/2); } //花苞时间 if(strtotime($user_field_info['bud_time'])-time()<0 || $user_field_info['grow_static']==3){ $bud_time = strtotime($user_field_info['bud_time'])-$flower_plants['num2']; $mature_time = strtotime($user_field_info['mature_time'])-$flower_plants['num2']; $w_js_time = $bud_time- round(($bud_time-time())/2); } //成熟时间 if(strtotime($user_field_info['mature_time'])-time()<0 || $user_field_info['grow_static']==4){ $mature_time = strtotime($user_field_info['mature_time'])-$flower_plants['num2']; $w_js_time = strtotime("0000-00-00 00:00:00"); } $ger_time = date("Y-m-d H:i:s",$ger_time);//发芽时间 $grow_time = date("Y-m-d H:i:s",$grow_time);//生长时间 $bud_time = date("Y-m-d H:i:s",$bud_time);//生长时间 $mature_time = date("Y-m-d H:i:s",$mature_time);//成熟时间 $w_js_time = date("Y-m-d H:i:s",$w_js_time);//下次可浇水的时间 $arr_up = array( 'ff_exp' => 'ff_exp+'.$js_data['exp'], //花田的经验值 'w_uid' => $f_uid?$f_uid:$uid,//浇水ID 'w_time' => $flower_plants['num2'],//浇水总节省时间 'w_produce' => 0,//浇水增加的产量 'w_rate' => 0, //浇水增加的产量百份比 'ger_time' => $ger_time,//发芽时间 'grow_time' => $grow_time,//生长时间 'bud_time' => $bud_time,//花苞时间 'mature_time' => $mature_time,//成熟时间 'w_js_time' => $w_js_time//下次可浇水的时间 ); $info = update_game_user_field($uid,$ff_id,$arr_up,$mysql_conn,$redis_conn); if($info){ //经验值增加 if($js_data['exp2']>0){ $exp_exp = $js_data['exp2'];//改变的经验数 $exp_info = $ff_id.'花田,浇水获得';//经验说明 update_user_exp($uid,$exp_exp,$exp_info,$ip,$mysql_conn,$redis_conn); } //宝石扣除 if($js_data['num']>0){ $u_gold = $js_data['num']; //改变的宝石数 $u_type = 2; //改变类型(1增加宝石,2减少宝石) $u_info = $ff_id.'花田,浇水扣除'; // 说明 update_user_have_gold( $uid, $u_gold, $u_type, $u_info, $ip, $mysql_conn, $redis_conn ); } //浇水日志 $add_arr = array( 'uid' => $uid, 'w_uid' => $f_uid?$f_uid:$uid, 'ff_id' => $ff_id, 'w_id' => $js_data['id'], 'w_vip' => $js_data['grade'], 'w_exp' => $js_data['exp'], 'w_exp2'=> $js_data['exp2'], 'w_t' => $flower_plants['num2'], 'add_time'=> date("Y-m-d H:i:s", time()), 'info' => '花卉浇水' ); add_member_flower_water_log($add_arr,$mysql_conn,$redis_conn); //获取更新后的花田数据 $new_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); //花卉数据 $flower_seed_data = get_flower_data($uid,$new_field_info,$mysql_conn,$redis_conn); $return_arr = array( "ga" => 'init_flower_water', "code" => 1, "gd" => array( 'ff_id' => $ff_id,//'花田id' 'fat_time' => strtotime($new_field_info['fat_time'])-time()>0?strtotime($new_field_info['fat_time'])-time():0, //'当前施肥时间' 'fat_time_tol' => strtotime($new_field_info['fat_time'])-time()>0? $sf_data['t'] : 0, //施肥总时间 'ff_exp' => $new_field_info['ff_exp'],//'花田当前的经验值' 'seed_data' => $flower_seed_data, 'exp_data'=>array( 'exp' => $js_data['exp'],//'增加花田经验数', 'exp2' => $js_data['exp2'],//'增加玩家经验数', 't' => $js_data['t'] //'施肥有效时长' ), 'msg' => '浇水成功'.($flower_plants['num2']>0?",生长时间-".$flower_plants['num2']."秒":"").($js_data['exp2']>0?",经验+".$js_data['exp2']:"") ) ); }else{ $return_arr["gd"]["msg"] = "浇水失败"; } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; }else{ echo("用户不在线:fd=".$this->arr['fd']."||uid=".$tmp_user_info['uid']); } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); return true; } //花卉施肥 public function init_flower_fertilize(){ $return_arr = array( "ga" => 'game_txt_tip', "code" => 1, "gd" => array( 'uid'=>0, 'msg'=>"fail" ) ); $redis_conn = $this->arr['server']->redis_pool->get(); $mysql_conn = $this->arr['server']->mysql_pool->get(); $tmp_user_info = $this->arr['server']->get_user_by_fd($this->arr['fd']); if($tmp_user_info['uid']) {//如果用户登陆正常 $uid = $tmp_user_info['uid']; $ip = $this->arr['ip']; $ff_id = $this->arr['d']["ff_id"]; //花田id $f_uid = $this->arr['d']["f_uid"]; //好友id $fat_id = $this->arr['d']["fat_id"]; //施肥id if(empty($ff_id)){ $return_arr["gd"]["msg"] = "花田数据不能为空"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } if(empty($fat_id)){ $return_arr["gd"]["msg"] = "施肥数据不能为空"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } //用户花田 $user_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); if(!$user_field_info){ $return_arr["gd"]["msg"] = "没有该花田数据"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if($user_field_info['ff_vip']==1){ $return_arr["gd"]["msg"] = "该花田还没扩建"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if(strtotime($user_field_info['fat_time'])-time()>0){ $return_arr["gd"]["msg"] = "该花田已施肥"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $sf_data = $GLOBALS["SYS_FLOWER_COMPOSTED"][$fat_id][1]; if(!$sf_data){ $return_arr["gd"]["msg"] = "施肥出错了"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $user_prop = get_game_user_prop($uid,$mysql_conn,$redis_conn);//用户属性 //是否需要宝石 if($sf_data['num3']>0){ if($user_prop['have_gold']<$sf_data['num3']){ sys_log_write_content( '用户宝石:'.json_encode($user_prop).",所需宝石".$sf_data['num3'] ,"error_log","member_have_gold_sql"); $return_arr["gd"]["msg"] = "金币不足!"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } } $tmp_time = time(); if($user_field_info['seed_num']){//如果有花卉数据 $seed_data = $GLOBALS["SYS_FLOWER_PLANTS"][$user_field_info['seed_num']][1];//种子数据 //原生长速度 $speed_raw = $seed_data['speed'] + $GLOBALS["SYS_FLOWER_FIELD"][$ff_id][$user_field_info['ff_vip']-1]['speed']; //施肥后的生长速度 $seed_sf = $sf_data['num2'];//施肥加速 $speed = $seed_data['speed'] + $GLOBALS["SYS_FLOWER_FIELD"][$ff_id][$user_field_info['ff_vip']-1]['speed']+$seed_sf; $tmp_ger_time = (strtotime($user_field_info['ger_time'])-$tmp_time); $sf_time_ger = strtotime($user_field_info['ger_time']) - (round($seed_data['time2']/$speed_raw)-round($seed_data['time2']/$speed)); $ger_time = $tmp_ger_time >0?$sf_time_ger:strtotime($user_field_info['ger_time']);//1 $tmp_grow_time = (strtotime($user_field_info['grow_time'])-$tmp_time); $sf_time_grow = strtotime($user_field_info['grow_time']) - (round(($seed_data['time2']+$seed_data['time3'])/$speed_raw)-round(($seed_data['time2']+$seed_data['time3'])/$speed)); $grow_time = $tmp_grow_time>0?$sf_time_grow:strtotime($user_field_info['grow_time']);//2 $tmp_bud_time = (strtotime($user_field_info['bud_time'])-$tmp_time); $sf_time_bud = strtotime($user_field_info['bud_time']) - (round($seed_data['t']/$speed_raw)-round($seed_data['t']/$speed)); $bud_time = $tmp_bud_time>0?$sf_time_bud:strtotime($user_field_info['bud_time']);//3 $tmp_mature_time = (strtotime($user_field_info['mature_time'])-$tmp_time); $sf_time_mature = strtotime($user_field_info['mature_time']) - (round($seed_data['t']/$speed_raw)-round($seed_data['t']/$speed)); $mature_time = $tmp_mature_time>0?$sf_time_mature:strtotime($user_field_info['mature_time']);//4 $arr_up = array( 'ff_exp' => 'ff_exp+'.$sf_data['exp'], //花田的经验值 'fat_uid' => $uid,//施肥ID 'fat_time' => date("Y-m-d H:i:s", $tmp_time+$sf_data['t']),//施肥时间 'fat_produce' => 0,//施肥增加的产量 'fat_rate' => 0,//施肥增加的产量百份 'ger_time' => date( "Y-m-d H:i:s", $ger_time), 'grow_time' => date( "Y-m-d H:i:s", $grow_time), 'bud_time' => date( "Y-m-d H:i:s", $bud_time), 'mature_time' => date( "Y-m-d H:i:s", $mature_time ) ); }else{ $arr_up = array( 'ff_exp' => 'ff_exp+'.$sf_data['exp'], //花田的经验值 'fat_uid' => $uid,//施肥ID 'fat_time' => date("Y-m-d H:i:s", $tmp_time+$sf_data['t']),//施肥时间 'fat_produce' => 0,//施肥增加的产量 'fat_rate' => 0 //施肥增加的产量百份 ); } $info = update_game_user_field($uid,$ff_id,$arr_up,$mysql_conn,$redis_conn); if($info){ //经验值增加 if($sf_data['exp2']>0){ $exp_exp = $sf_data['exp2'];//改变的经验数 $exp_info = $ff_id.'花田,施肥获得';//经验说明 update_user_exp($uid,$exp_exp,$exp_info,$ip,$mysql_conn,$redis_conn); } //宝石扣除 if($sf_data['num3']>0){ $u_gold = $sf_data['num3']; //改变的宝石数 $u_type = 2; //改变类型(1增加宝石,2减少宝石) $u_info = $ff_id.'花田,施肥扣除'; // 说明 update_user_have_gold( $uid, $u_gold, $u_type, $u_info, $ip, $mysql_conn, $redis_conn ); } //施肥日志 $add_arr = array( 'uid' => $uid, 'f_uid' => 0, 'ff_id' => $ff_id, 'f_id' => $sf_data['id'], 'f_vip' => $sf_data['grade'], 'f_num' => $sf_data['num'], 'f_num2'=> $sf_data['num2'], 'f_exp' => $sf_data['exp'], 'f_exp2'=> $sf_data['exp2'], 'f_t' => $sf_data['t'], 'add_time'=> date("Y-m-d H:i:s", $tmp_time), 'info' => '花卉施肥' ); add_member_flower_ferti_log($add_arr,$mysql_conn,$redis_conn); //获取更新后的花田数据 $new_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); //如果有种植花卉 $flower_seed_data = array(); if($new_field_info['seed_num']){ //花卉数据 $flower_seed_data = get_flower_data($uid,$new_field_info,$mysql_conn,$redis_conn); } $return_arr = array( "ga" => 'init_flower_fertilize', "code" => 1, "gd" => array( 'ff_id' => $ff_id,//'花田id' 'fat_time' => strtotime($new_field_info['fat_time'])-$tmp_time>0? strtotime($new_field_info['fat_time'])-$tmp_time:0, //'当前施肥时间' 'fat_time_tol' => strtotime($new_field_info['fat_time'])-$tmp_time>0? $sf_data['t'] : 0, //施肥总时间 'ff_exp' => round($new_field_info['ff_exp']),//'花田当前的经验值' 'seed_data' => $flower_seed_data, 'exp_data'=>array( 'exp' => $sf_data['exp'],//'增加花田经验数', 'exp2' => $sf_data['exp2'],//'增加玩家经验数', 't' => $sf_data['t'] //'施肥有效时长' ), 'msg' => '施肥成功'.($sf_data['exp2']>0?(",经验+".$sf_data['exp2']):"") ) ); }else{ $return_arr["gd"]["msg"] = "施肥失败"; } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; }else{ echo("用户不在线:fd=".$this->arr['fd']."||uid=".$tmp_user_info['uid']); } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); return true; } //花田施肥失效更新 public function init_flower_fat(){ $return_arr = array( "ga" => 'game_txt_tip', "code" => 1, "gd" => array( 'uid'=>0, 'msg'=>"fail" ) ); $redis_conn = $this->arr['server']->redis_pool->get(); $mysql_conn = $this->arr['server']->mysql_pool->get(); $tmp_user_info = $this->arr['server']->get_user_by_fd($this->arr['fd']); if($tmp_user_info['uid']) {//如果用户登陆正常 $uid = $tmp_user_info['uid']; $ip = $this->arr['ip']; $ff_id = $this->arr['d']["ff_id"]; //花田id $f_uid = $this->arr['d']["f_uid"]; //好友id if(empty($ff_id)){ $return_arr["gd"]["msg"] = "花田数据不能为空"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } //用户花田 $user_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); if(!$user_field_info){ $return_arr["gd"]["msg"] = "没有该花田数据"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if($user_field_info['ff_vip']==1){ $return_arr["gd"]["msg"] = "该花田还没扩建"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if(strtotime($user_field_info['fat_time'])-time()>0){ $return_arr["gd"]["msg"] = "当前施肥还有效"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if(!$user_field_info['fat_uid']){ $return_arr["gd"]["msg"] = "没有施肥数据"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $tmp_time = time(); if($user_field_info['seed_num']){//如果有花卉数据 $seed_data = $GLOBALS["SYS_FLOWER_PLANTS"][$user_field_info['seed_num']][1];//种子数据 $speed = $seed_data['speed'] + $GLOBALS["SYS_FLOWER_FIELD"][$ff_id][$user_field_info['ff_vip']-1]['speed'];//生长速度 $tmp_ger_time = (strtotime($user_field_info['ger_time'])-$tmp_time); $ger_time = $tmp_ger_time >0?round( $tmp_time + round( $seed_data['time2'] - $tmp_ger_time ) / $speed):strtotime($user_field_info['ger_time']);//1 $tmp_grow_time = (strtotime($user_field_info['grow_time'])-$tmp_time); $grow_time = $tmp_grow_time>0?round( $tmp_time + round( ($seed_data['time2']+$seed_data['time3'] - $tmp_grow_time ) ) / $speed):strtotime($user_field_info['grow_time']);//2 $tmp_bud_time = (strtotime($user_field_info['bud_time'])-$tmp_time); $bud_time = $tmp_bud_time>0?round( $tmp_time + round( $seed_data['t'] - $tmp_bud_time ) / $speed):strtotime($user_field_info['bud_time']);//3 $tmp_mature_time = (strtotime($user_field_info['mature_time'])-$tmp_time); $mature_time = $tmp_mature_time>0?round( $tmp_time + round( $seed_data['t'] - $tmp_mature_time ) / $speed):strtotime($user_field_info['mature_time']);//4 $arr_up = array( 'fat_uid' => "0",//施肥ID 'fat_time' => '0000-00-00 00:00:00',//施肥时间 'fat_produce' => 0,//施肥增加的产量 'fat_rate' => 0, //施肥增加的产量百份 'ger_time' => date( "Y-m-d H:i:s", $ger_time), 'grow_time' => date( "Y-m-d H:i:s", $grow_time), 'bud_time' => date( "Y-m-d H:i:s", $bud_time), 'mature_time' => date( "Y-m-d H:i:s", $mature_time ) ); }else{ $arr_up = array( 'fat_uid' => "0",//施肥ID 'fat_time' => '0000-00-00 00:00:00',//施肥时间 'fat_produce' => 0,//施肥增加的产量 'fat_rate' => 0 //施肥增加的产量百份 ); } $info = update_game_user_field($uid,$ff_id,$arr_up,$mysql_conn,$redis_conn); if($info){ //获取更新后的花田数据 $new_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); //如果有种植花卉 $flower_seed_data = array(); if($new_field_info['seed_num']){ $flower_seed_data = get_flower_data($uid,$new_field_info,$mysql_conn,$redis_conn); } $return_arr = array( "ga" => 'init_flower_fat', "code" => 1, "gd" => array( 'ff_id' => $ff_id,//'花田id' 'fat_time' => 0, //'当前施肥时间' 'fat_time_tol' => 0, //施肥总时间 'ff_exp' => round($new_field_info['ff_exp']),//'花田当前的经验值' 'seed_data' => $flower_seed_data, 'msg' => '更新成功' ) ); }else{ $return_arr["gd"]["msg"] = "更新失败"; } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; }else{ echo("用户不在线:fd=".$this->arr['fd']."||uid=".$tmp_user_info['uid']); } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); return true; } //收获花卉 public function init_collect_flower(){ $return_arr = array( "ga" => 'game_txt_tip', "code" => 1, "gd" => array( 'uid'=>0, 'msg'=>"fail" ) ); $redis_conn = $this->arr['server']->redis_pool->get(); $mysql_conn = $this->arr['server']->mysql_pool->get(); $tmp_user_info = $this->arr['server']->get_user_by_fd($this->arr['fd']); if($tmp_user_info['uid']) {//如果用户登陆正常 $uid = $tmp_user_info['uid']; $ip = $this->arr['ip']; $ff_id = $this->arr['d']["ff_id"]; //花田id $seed_num = $this->arr['d']["seed_num"];//花卉id if(empty($ff_id)){ $return_arr["gd"]["msg"] = "花田数据不能为空"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } $user_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); if(!$user_field_info){ $return_arr["gd"]["msg"] = "没有该花田数据"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if($user_field_info['ff_vip']==1){ $return_arr["gd"]["msg"] = "该花田还没扩建"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if(!$user_field_info['seed_num']){ $return_arr["gd"]["msg"] = "该花田没有种植花卉"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } if(strtotime($user_field_info['mature_time'])-time()>0){ $return_arr["gd"]["msg"] = "花卉还没成熟"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($user_field_info); var_dump($return_arr); echo($user_field_info['mature_time']); return true; } $sf_data = $GLOBALS["SYS_FLOWER_COMPOSTED"]['sf01'][1];//施肥数据 $seed_data = $GLOBALS["SYS_FLOWER_PLANTS"][$user_field_info['seed_num']][1]; if(!$seed_data){ $return_arr["gd"]["msg"] = "没有该花卉"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); var_dump($return_arr); return true; } //检测仓库 $is_goods_arr[] = array( 'good_id' => $user_field_info['seed_num'], 'num' => 1 ); $is_store = is_check_store($uid,$is_goods_arr,$mysql_conn,$redis_conn); if(!$is_store){ $return_arr["gd"]["msg"] = "仓库空间不足"; $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; } $arr_up = array( 'ff_exp' => 'ff_exp+'.$seed_data['exp'], //花田的经验值 'w_uid' => 0, //浇水ID 'w_time' => 0, //浇水总节省时间 'w_js_time' => '0000-00-00 00:00:00',// 可浇水时间 'w_produce' => 0, //浇水增加的产量 'w_rate' => 0, //浇水增加的产量百份比 'fat_uid' => strtotime($user_field_info['fat_time'])-time()>0?$user_field_info['fat_uid']:0,//施肥ID 'fat_time' => strtotime($user_field_info['fat_time'])-time()>0?$user_field_info['fat_time']:'0000-00-00 00:00:00',//施肥时间 'fat_produce' => strtotime($user_field_info['fat_time'])-time()>0?$user_field_info['fat_produce']:0,//施肥增加的产量 'fat_rate' => strtotime($user_field_info['fat_time'])-time()>0?$user_field_info['fat_rate']:0,//施肥增加的产量百份 'seed_num' => 0,//种子编号 'ger_time' => '0000-00-00 00:00:00',//发芽时间 'grow_time' => '0000-00-00 00:00:00',//生长时间 'bud_time' => '0000-00-00 00:00:00',//花苞时间 'mature_time' => '0000-00-00 00:00:00',//成熟时间 'grow_static' => 0 //生长状态 ); $info = update_game_user_field($uid,$ff_id,$arr_up,$mysql_conn,$redis_conn); if($info){ //经验值增加 if($seed_data['exp2']>0){ $exp_exp = $seed_data['exp2'];//改变的经验数 $exp_info = $ff_id.'花田,收获'.$seed_data['name'].'获得';//经验说明 update_user_exp($uid,$exp_exp,$exp_info,$ip,$mysql_conn,$redis_conn); } $count = mt_rand($seed_data['num'], $seed_data['num3']); //入仓库 $goods_arr = array( 'good_id' => $user_field_info['seed_num'], 'num' => $count ); store_good_data_save($uid,$goods_arr,$ip,$mysql_conn,$redis_conn); //更新用户完成种植的花卉总数 $num_arr = array( 'flower_num'=> 'flower_num+1', //种植的花卉总数 'up_time' => date("Y-m-d H:i:s",time()) //数据更新时间 ); update_game_num($uid,$num_arr,$mysql_conn,$redis_conn); //用户花田收获日志 $add_arr = array( 'uid' => $uid, 'ff_id' => $ff_id, 'ff_vip' => $user_field_info['ff_vip'], 'num' => $count, 'seed_num' => $user_field_info['seed_num'], 'add_time' => date("Y-m-d H:i:s",time()), 'info' => $seed_data['name'].'收获' ); add_member_flower_reward_log($add_arr,$mysql_conn,$redis_conn); //更新后的花田信息 $new_field_info = get_game_user_field_info($uid,$ff_id,array(),$mysql_conn,$redis_conn); $return_arr = array( "ga" => 'init_collect_flower', "code" => 1, "gd" => array( 'ff_id' => $ff_id,//'花田id' 'fat_time' => strtotime($new_field_info['fat_time'])-time()>0? strtotime($new_field_info['fat_time'])-time():0, //'当前施肥时间' 'fat_time_tol' => strtotime($new_field_info['fat_time'])-time()>0? $sf_data['t'] : 0, //施肥总时间 'ff_exp' => round($new_field_info['ff_exp']),//'花田当前的经验值' 'seed_data' => array(//花卉数据 'grow_time_tol' => 0,//strtotime($user_field_info['mature_time'])-time()>0? $seed_data['t']/$seed_data['speed'] : 0, //生长总时间 'mature_time' => 0,//strtotime($user_field_info['mature_time'])-time()>0? strtotime($user_field_info['mature_time'])-time():0, //当前花卉成熟时间 'next_mature_time' => 0,//下一阶段成长时间 'grow_static' => 0,//$user_field_info['grow_static'], //1发芽期、2生长期、3花苞期、4成熟期 'water_time' => 0, //可以浇水时间 'id' => '',//$seed_data['id'], //'花卉ID', 'name' => '',//$seed_data['name'], //'花卉名称', 'grade' => '',//$seed_data['grade'], //'花卉等级', 'pic' => $seed_data['pic6'], //'当前花卉图片', 'ain' => $seed_data['ain6'], //'当前花卉动画', ), 'exp_data'=>array( 'exp' => $seed_data['exp'],//'增加花田经验数', 'exp2' => $seed_data['exp2'],//'增加玩家经验数', 't' => 0 //'有效时长' ), 'msg' => '收获'.$seed_data['name'].($seed_data['exp2']>0?",经验+".$seed_data['exp2']:"") ) ); }else{ $return_arr["gd"]["msg"] = "收获失败"; } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); $this->arr['server']->send_user($this->arr['fd'],$return_arr); return true; }else{ echo("用户不在线:fd=".$this->arr['fd']."||uid=".$tmp_user_info['uid']); } $this->arr['server']->redis_pool->put($redis_conn); $this->arr['server']->mysql_pool->put($mysql_conn); return true; } }