1505 lines
60 KiB
PHP
1505 lines
60 KiB
PHP
<?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;
|
||
|
||
}
|
||
|
||
|
||
|
||
} |