Example #1
0
 /**
  * 获取玩家基本信息
  *
  * @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;
 }
Example #2
0
 /**
  * 获取声望升级等级
  * @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);
         }
     }
 }
Example #3
0
 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;
 }
Example #4
0
 /**
  * @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);
 }