flower_svr/class/init.class.php
2021-06-15 20:47:05 +08:00

1505 lines
60 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Created by PhpStorm.
* User: ddcai
* Date: 2018/6/11
* Time: 13:40
*/
class init extends gzhq_base{
//获取玩家的基本数据
public function init_info(){
$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_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;
}
}