/** * 获取玩家基本信息 * * @param array $objDataInfo * @return unknown */ public function get_userInfo($objDataInfo) { $page = $objDataInfo['page'] ? $objDataInfo['page'] : '1'; $page_size = $objDataInfo['page_size'] ? $objDataInfo['page_size'] : '10'; $server_id = $objDataInfo['server_id']; $player_id = $objDataInfo['player_id']; $user_account = $objDataInfo['user_account']; $name = $objDataInfo['name']; $gm = $objDataInfo['gm']; $created_at = $objDataInfo['created_at']; $cash = $objDataInfo['cash']; $vip = $objDataInfo['vip']; $level = $objDataInfo['level']; $serverId = $objDataInfo['serverId']; $condition = ''; if ($player_id) { $condition .= " player_id like '%" . $player_id . "%' AND"; } if ($user_account) { $condition .= " user_account like '%" . $user_account . "%' AND"; } if (is_numeric($gm)) { $condition .= " gm =" . $gm . " AND"; } if ($name) { $condition .= " name like '%" . $name . "%' AND"; } if ($created_at[0]) { $condition .= " reg_time >= " . strtotime($created_at[0]) . " AND"; } if ($created_at[1]) { $condition .= " reg_time <= " . strtotime($created_at[1]) . " AND"; } if ($level[0]) { $condition .= " level >= " . $level[0] . " AND"; } if ($level[1]) { $condition .= " level <= " . $level[1] . " AND"; } if ($vip[0]) { $condition .= " vip >= " . $vip[0] . " AND"; } if ($vip[1]) { $condition .= " vip <= " . $vip[1] . " AND"; } if ($condition) { $condition = 'where ' . $condition; $condition = substr($condition, 0, -3); } $page_total_num_sql = 'select count(`player_id`) as total from player ' . $condition; $page_total_num = $this->get_one($page_total_num_sql, null); $page_num = ceil($page_total_num['total'] / $page_size); $page_num_sql = 'select * from player ' . $condition . ' limit ' . ($page * $page_size - $page_size) . ',' . $page_size; $userInfoData = $this->select_all($page_num_sql); foreach ($userInfoData as $k => $v) { $data_player = $this->get_data('Player'); $player_info = $data_player->get_player_info($v['player_id']); if (!$player_info) { continue; } foreach ($player_info as $field => $val) { if (!array_key_exists($field, $v)) { continue; } if ($field == "reg_time") { $userInfoData[$k]['reg_time'] = date('Y-m-d H:i:s', $player_info['reg_time']); } elseif ($field == "login_time") { $userInfoData[$k]['login_time'] = date('Y-m-d H:i:s', $player_info['login_time']); } else { $userInfoData[$k][$field] = $val; } } /* $userInfoData[$k]['reg_time'] = date('Y-m-d H:i:s',$player_info['reg_time']); $userInfoData[$k]['login_time'] = date('Y-m-d H:i:s',$player_info['login_time']); unset($player_info['reg_time'],$player_info['login_time']); $userInfoData[$k] = $userInfoData[$k] + $player_info; */ //获取声望等级 if (isset($v['fame_level'])) { $fame_level = isset($player_info['fame_level']) ? $player_info['fame_level'] : $v['fame_level']; $fameInfo = Cache_PlayerFame::getInstance()->get_player_fame_info($fame_level); if (!empty($fameInfo)) { $userInfoData[$k]['fame_level'] = $fameInfo['title']; } else { $userInfoData[$k]['fame_level'] = '无名'; } } //VIP特权 $vip_special_info = $this->get_data('VipSpecial')->get_vip_special_info($v['player_id']); $privilege_left_date = 0; $privilege_level = 0; if (!empty($vip_special_info)) { $privilege_level = $vip_special_info['vip_special_level']; $privilege_left_date = $vip_special_info['left_date']; } $userInfoData[$k]['privilege_level'] = $privilege_level; $userInfoData[$k]['privilege_left_date'] = $privilege_left_date; //获取公会贡献值 if (!empty($player_info['union_id'])) { $gh_con = $this->get_data('UnionPlayer')->get_union_player_info($player_info['union_id'], $v['player_id']); $userInfoData[$k]['gh_con'] = $gh_con['total_dedicate']; } else { $userInfoData[$k]['gh_con'] = 0; } } $dbConfig = TenYear::get_val("dbConfig"); $tableFieldsSql = "SELECT COLUMN_NAME as `field`, COLUMN_COMMENT as `comment` FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'player' AND TABLE_SCHEMA = '" . $dbConfig["game"]["name"] . "'"; $tableFields = $this->get_list($tableFieldsSql); $fields = array(); if (!empty($tableFields)) { foreach ($tableFields as $comments) { $fields[$comments['field']] = $comments['comment']; } $fields['gh_con'] = "公会贡献值"; } $userInfoData['all_page'] = $page_total_num['total']; $userInfoData['fields'] = $fields; return $userInfoData; }
/** * 获取声望升级等级 * @param $level * @param $exp */ public function get_update_fame_level($fame_level, $fame, &$logs) { for ($i = 0; $i < 30; $i++) { $level_config = Cache_PlayerFame::getInstance()->get_player_fame_info($fame_level + 1); $upgradeLevelExp = $level_config['exp']; if (empty($level_config)) { $upgradeLevelExp = 999999999; return array('fame_level' => $fame_level, 'fame' => $fame, 'fame_level_exp' => $upgradeLevelExp); } if ($fame >= $upgradeLevelExp) { $old_level = $fame_level; $fame_level++; $old_fame = $fame; $fame -= $upgradeLevelExp; $logs[] = array('type' => 2, 'item_id' => 14, 'item_num' => $upgradeLevelExp, 'amount' => $old_fame, 'front_attr' => $old_level, 'after_attr' => $fame_level, 'is_async' => 0); } else { return array('fame_level' => $fame_level, 'fame' => $fame, 'fame_level_exp' => $upgradeLevelExp); } } }
public function player_fame_info($player_id) { $objPlayerData = $this->get_data('Player'); $playerInfo = $objPlayerData->get_player_info($player_id, array("fame", "fame_level")); $out['fame'] = intval($playerInfo['fame']); $out['fame_level'] = intval($playerInfo['fame_level']) ? $playerInfo['fame_level'] : 1; $out['fame_list'] = array(); $fame_list = Cache_PlayerFame::getInstance()->get_player_fame_info(); if ($fame_list) { foreach ($fame_list as $item) { $hero_list = $item['hero_sid'] ? explode("|", $item['hero_sid']) : array(); $level = $item['lvl']; $data['lvl'] = $level; $data['fame'] = $item['exp']; $data['atk_min'] = $item['atk_min']; $data['max_hp'] = $item['max_hp']; $data['arm'] = $item['arm']; $data['wing_lvl'] = intval($item['wing_lvl']); $data['fairy_lvl'] = intval($item['fairy_lvl']); $data['hero_list'] = $hero_list; $data['title'] = $item['title']; $out['fame_list'][] = $data; } } return $out; }
/** * @Purpose: * 获取精灵升级信息 * @Method Name: get_fairy_upgrade_info() * @Parameter: $player_id 玩家ID * @Parameter: $fairy_id 精灵ID * @Return: mixed 精灵升级信息 */ public function get_fairy_upgrade_info($player_id, $fairy_id) { $player_id = intval($player_id); //获取玩家精灵数据 $obj_player_fairy_data = $this->get_data('Fairy'); $data = $obj_player_fairy_data->get_player_fairy_info($fairy_id); if (!$data) { $this->throw_error('10112'); } //获取指定类型精灵配置表数据 $fairy_list_table = $this->get_fairy_table_data_by_type($data['type']); if (!$fairy_list_table[0]['change_name_expend']) { $this->throw_error('10109'); //配置表读取错误 } $data['grow'] = $obj_player_fairy_data->get_fairy_grow($fairy_id, 'grow'); //是否满级 $is_level = $this->is_next_level($data, false); if ($is_level === true) { $rtn_data['next_level'] = $data['level']; $rtn_data['next_star'] = 0; $rtn_data['fairy_code'] = $data['fairy_code']; return Struct_Fairy::get_fairy_upgrade_panel_struct($rtn_data); } else { if ($is_level !== false) { return $is_level; } } //获取下级精灵数据 $get_fairy_res = $this->get_next_fairy_data($data, $fairy_data, false); if ($get_fairy_res !== true) { $this->throw_error($get_fairy_res); } //获取消耗道具数据 $get_item_res = $this->get_item_data($data['fairy_code'], $data['star'], $item_data); if ($get_item_res !== true) { $this->throw_error($get_item_res); } //获取玩家背包道具信息 $obj_prop_game = $this->get_game('Prop'); $item_list = $obj_prop_game->get_prop_list_by_prop_id($player_id, $item_data['item']); //格式化数据结构 $rtn_data['item_box'] = Struct_Prop::get_item_box_struct($item_list[0]); //获取精灵属性数据 $rtn_data['next_level'] = $fairy_data['lvl']; $rtn_data['grow_value'] = $data['grow']; $rtn_data['shield_limit'] = $fairy_data['shield_lvl']; $rtn_data['Attr_id'] = $fairy_data['attribute']; $rtn_data['open_hole'] = $fairy_data['skill_hole']; $rtn_data['next_star'] = $fairy_data['star']; $rtn_data['fairy_code'] = $data['fairy_code']; $rtn_data['auto_buy'] = $data['auto_buy']; //获取下一级精灵配置表ID $fairy_other_table = $this->get_fairy_table_data_Multiple($data['type'], $data['level'] + 1); $rtn_data['next_fairy_code'] = $fairy_other_table['sid']; //获取成长值过期时间 $rtn_data['expire_time'] = $obj_player_fairy_data->get_fairy_grow_expire($fairy_id); $rtn_data['expire_time'] = $rtn_data['expire_time'] > 0 && $rtn_data['expire_time'] <= 86400 ? $rtn_data['expire_time'] : 0; $fairy_level_table = $this->get_fairy_lvl_tabel_data($data['fairy_code'], $data['star']); if (!$fairy_level_table) { $this->throw_error('10109'); //配置表读取错误 } /* #获取玩家声望等级 $player_fame_level = $this->get_data('Player')->get_player_info($player_id, 'fame_level'); $fame_table = Cache_PlayerFame::getInstance()->get_player_fame_info($player_fame_level); $rtn_data['cur_fame_level'] = $fame_table['title']; */ if ($fairy_level_table['fame'] > 0) { $fame_table = Cache_PlayerFame::getInstance()->get_player_fame_info($fairy_level_table['fame']); if (!$fame_table) { $this->throw_error('10109'); //配置表读取错误 } $rtn_data['need_fame_level'] = $fame_table['title']; } return Struct_Fairy::get_fairy_upgrade_panel_struct($rtn_data); }