public static function get_language_error_assoc($arrPhrase) { $arrContent = array(); $phrases = array(); foreach ($arrPhrase as $phrase_id) { if (isset(self::$_languages[$phrase_id])) { $arrContent[$phrase_id] = self::$_languages[$phrase_id]; } else { $phrases[$phrase_id] = $phrase_id; } } if (!empty($phrases)) { $arrLanguages = Cache_Language::getInstance()->get_language($phrases, 1); foreach ($phrases as $phrase_id) { if (isset($arrLanguages[$phrase_id])) { $arrContent[$phrase_id] = $arrLanguages[$phrase_id]['phrase_value']; self::$_languages[$phrase_id] = $arrLanguages[$phrase_id]['phrase_value']; if ($arrLanguages[$phrase_id]['guide_type']) { self::$_guides[$phrase_id] = $arrLanguages[$phrase_id]['guide_type']; } self::$_types[$phrase_id] = $arrLanguages[$phrase_id]['show_type']; } else { $arrContent[$phrase_id] = $phrase_id; self::$_languages[$phrase_id] = $phrase_id; } } } return $arrContent; }
public function get_language_list() { $lists = Cache_Language::getInstance()->get_language_info(); $out = array(); if (!empty($lists)) { foreach ($lists as $val) { $out[] = array('code' => $val['code'], 'txt' => array('symbol' => $val['type'], 'value' => $val['content'], 'size' => $val['size'], 'color' => $val['color'], 'pos' => $val['pos'], 'offset' => $val['offset'])); } } return array(0 => $out); }
TenYear::getInstance(); $strTenYearUrl = MAIN_DOMAIN_URL; $webUrl = SERVER_DOMAIN . '/web'; if (isset($_POST["act"]) && isset($_POST["name"]) && isset($_POST["character"])) { $bAjax = isset($_POST["ajax"]) ? true : false; $player_id = $_SESSION['player_id']; $strUserAccount = isset($_SESSION["account"]) ? $_SESSION["account"] : ""; $strAdInfo = isset($_SESSION["ad_Info"]) ? $_SESSION["ad_Info"] : 0; $strIp = isset($_SESSION["client_ip"]) ? $_SESSION["client_ip"] : ""; $serverId = isset($_SESSION['server_id']) ? $_SESSION['server_id'] : 0; $session_id = isset($_SESSION['sid']) ? $_SESSION['sid'] : ''; $adult_flag = isset($_SESSION['adult_flag']) ? $_SESSION['adult_flag'] : 0; $name = $_POST["name"]; $character = $_POST["character"]; // $arrLanguage = Language_Error::get_language_error_assoc(array('10214','10215','10216','10217','10218')); $arrLanguage = Cache_Language::getInstance()->get_language_info(array('10213', '10214', '10215', '10216', '10217', '10218')); $account_info = TenYear::getInstance('Data_Player')->get_player_info($_SESSION['player_id'], array('level')); #判断session里面player_id是否已经激活过了 if ($account_info['level'] > 1) { exit("result=0&msg=" . $arrLanguage["10213"]['content']); } if (!$strUserAccount) { if ($bAjax) { exit("result=1&msg=" . $strTenYearUrl . "?error=-1"); } else { Com_System::url_redirect($strTenYearUrl . "?error=-1"); } } $nknamePattern = "/[^\\x{4e00}-\\x{9fa5}A-Za-z0-9]+/u"; $nkCharset = mb_detect_encoding($name, array('UTF-8', 'GB2312')); if ($nkCharset != "UTF-8") {
/** * 赞好友动态 * 单条与一键 */ public function like_friend_news($player_id, $news_ids, $is_key = 0, $page = 1) { $is_key = intval($is_key); $page = intval($page) < 1 ? 1 : intval($page); if (empty($player_id) || empty($news_ids)) { $this->throw_error('10101'); //参数不全 } //加锁 if (!Com_Lock::lock('lock|like_friend_news|player_id=' . $player_id)) { //系统繁忙 $this->throw_error('170501'); } $player_id = intval($player_id); $arr_news_ids = array(intval($news_ids)); $objplayer = $this->get_data('Player'); $player_basic_info = $objplayer->get_player_info($player_id, array("privilege_level", 'ticket', 'level', 'gold', 'vip', 'level_exp', 'name')); $like_max_times = $this->like_default_times; if (intval($player_basic_info['vip']) > 0) { $vip_set = Cache_VipLevelLimit::getInstance()->get_limit_info($player_basic_info['vip'], 10069); $like_max_times = $this->like_default_times + $vip_set['max_times']; } //一键点赞扣2钻石 $ticket = 0; $arr_consume = array(); $price = $cost_gold = 10; if ($is_key) { if ($player_basic_info['ticket'] > 0) { if ($player_basic_info['ticket'] >= $cost_gold) { $this->get_data('Player')->check_player_resource($player_id, $player_basic_info, '-', 'ticket', $cost_gold); $ticket = $cost_gold; $cost_gold = 0; } else { $ticket = $player_basic_info['ticket']; $cost_gold = $cost_gold - $player_basic_info['ticket']; $this->get_data('Player')->check_player_resource($player_id, $player_basic_info, '-', 'ticket', $player_basic_info['ticket']); } } $this->get_data('Player')->check_player_resource($player_id, $player_basic_info, "-", "gold", $cost_gold); $arr_consume = array('price' => $price, 'gold' => $cost_gold, 'ticket' => $ticket, 'count' => 1); #数据中心推送 $arr_news_ids = $this->get_no_like_newsid($player_id); if (!$arr_news_ids) { $this->throw_error('72201'); } //不存在未赞过 } $objfrined = $this->get_data('PlayerFriend'); $ret_news_ids = array(); //成功点赞动态ID $ret_error_msg = ''; $error_msg = ''; $sum_add_exp = 0; $sum_add_silver = 0; $add_exp = 0; $player_data = $objfrined->get_player_friend($player_id, array('follow', 'like_news', 'like_times')); if ($player_data['like_times']['today_like_friend_times'] + $player_data['like_times']['today_times'] >= $like_max_times) { $error_msg = '70120'; //今日点赞已达到上线 } else { //一次性获取动态信息 $news_data = $objfrined->get_news_info(implode(",", $arr_news_ids)); if (empty($news_data)) { $this->throw_error('10104'); } //不存在这条动态 foreach ($news_data as $key => $val) { $news_info[$val['news_id']] = $val; } foreach ($arr_news_ids as $news_id) { if ($error_msg) { $ret_error_msg = $error_msg; } //这条动态信息 $error_msg = ''; $friend_id = intval($news_info[$news_id]['player_id']); if ($player_data['like_times']['today_like_friend_times'] + $player_data['like_times']['today_times'] >= $like_max_times) { $error_msg = '70120'; //今日点赞已达到上线 break; } if (!isset($player_data['follow']['info'][$friend_id])) { $error_msg = '70107'; //未关注 continue; } #已赞过 if (isset($player_data['like_news'][$news_id])) { $error_msg = '71604'; continue; } if (count($player_data['like_news']) > 200) { //删除老数据避免存储太多 asort($player_data['like_news']); foreach ($player_data['like_news'] as $like_id => $news_time) { if ($news_time > time() - 86400 * 2) { break; } unset($player_data['like_news'][$like_id]); } } //异步更新好友数据 $sys_ret = $this->sys_update_like_friend_data($player_id, $friend_id, $news_id, $player_basic_info['name']); if ($sys_ret) { $player_data['like_news'][$news_id] = $news_info[$news_id]['create_time']; $player_data['like_times']['upts'] = time(); $player_data['like_times']['today_like_friend_times'] += 1; $player_add_exp = $this->add_default_exp; $ret_news_ids[] = $news_id; $sum_add_exp += $player_add_exp; $sum_add_silver += $this->add_default_silver; } else { $error_msg = '10104'; } } } $out_msg = ""; if (empty($ret_news_ids)) { if ($ret_error_msg) { $code = $ret_error_msg; } else { if ($error_msg) { $code = $error_msg; } else { $code = '10101'; } } $language_config = Cache_Language::getInstance()->get_language_info($code); $out_msg = $language_config['content']; } else { $this->start_trans(); //我赞的奖励 if ($is_key) { //一键点赞扣钻石 $this->get_data('Player')->update_player_resource($player_id, $player_basic_info, 716, array(), $arr_consume); } unset($player_data['follow']); //不参与更新,以上判断$news_id合法性 $player_ret = $objfrined->update_player_friend($player_id, $player_data); $reward = array(); $reward[] = array('type' => Cache_FbLoot::getInstance()->get_item_key(1), 'item_id' => 1, 'item_num' => $sum_add_exp); #$reward[] = array('type'=>Cache_FbLoot::getInstance()->get_item_key(3),'item_id'=>3,'item_num'=>$sum_add_silver); $ret_reward = $this->get_game('Reward')->send_reward($player_id, $reward, array('cmd_id' => '102')); unset($player_basic_info['gold']); unset($player_basic_info['ticket']); $ret_player_basic = $this->get_data('Player')->update_player_info($player_id, $player_basic_info); if ($player_ret && $ret_player_basic) { $this->commit(); $this->get_game('Reward')->add_reward_log(); // Protocol_Player::p2c_part_update($player_id,array('gold'=>'','ticket'=>'')); #数据中心推送 // if($cost_gold > 0){ // $params['act'] = 102; // $params['price'] = $cost_gold; // $params['gold'] = $cost_gold; // $params['black_gold'] = 0; // $params['count'] = 1; // $params['time'] = time(); // Com_DataCenter::getInstance()->publish_data($player_id,'prop',$params); // } } else { $this->rollback(); $out_msg = '10104'; } } $today_like_friend = intval($player_data['like_times']['today_like_friend_times']) + intval($player_data['like_times']['today_times']); $out = array(); $out['player_id'] = $player_id; $out['page'] = $page; $out['is_key'] = $is_key; $out['today_like_player'] = $like_max_times; //被赞过 $out['today_like_friend'] = $today_like_friend; //赞过+被赞过 $out['news_ids'] = $ret_news_ids; $out['add_silver'] = $sum_add_silver; $out['add_exp'] = $sum_add_exp; $out['like_max_times'] = $like_max_times; $out['error_msg'] = $out_msg; return $out; }
public function run() { $rurl = MAIN_DOMAIN_URL; $arrData = $this->_parseData; $strUserAccount = isset($arrData["account"]) ? trim($arrData["account"]) : ""; $iAdultFlag = isset($arrData["adult_flag"]) ? $arrData["adult_flag"] : 0; $iAdultGameTime = isset($arrData["game_time"]) ? $arrData["game_time"] : 0; $strClientIp = isset($arrData["ip"]) ? $arrData["ip"] : ""; $strAdInfo = isset($arrData["ad_info"]) ? trim($arrData["ad_info"]) : ""; $strTocken = isset($arrData['tocken']) ? $arrData['tocken'] : ""; $serverId = isset($arrData['sid']) ? $arrData['sid'] : 0; $active_type = isset($arrData['active_type']) ? $arrData['active_type'] : 1; if ($iAdultFlag == 0 && $iAdultGameTime >= 3 * 3600) { $msg = Cache_Language::getInstance()->get_language_info(10306); Com_System::url_msg_redirect($msg['content'], $rurl); exit; } $account_info = $this->get_data('Account')->get_account_info($strUserAccount); if (!$account_info || empty($account_info['name'])) { $_SESSION = array(); $_SESSION['sid'] = session_id(); $_SESSION["account"] = $strUserAccount; $_SESSION['client_ip'] = $strClientIp; $_SESSION['ad_Info'] = $strAdInfo; $_SESSION['server_id'] = $serverId; $_SESSION['vip'] = 0; $_SESSION['level'] = 0; $ad_info = $strAdInfo > 0 ? 1 : 0; if (isset($account_info['player_id']) && $account_info['player_id']) { $playerid = $account_info['player_id']; Com_DataCenter::getInstance()->publish_data($playerid, 'login', array('ad_info' => $ad_info, 'status' => 'on', 'keep_time' => 0, 'time' => $this->current_time)); } else { $playerid = $this->get_data('Account')->add_account($strUserAccount, '', $serverId, $strAdInfo); $log_data = array('player_id' => $playerid, 'channel' => 2, 'user_account' => $strUserAccount, 'ad_info' => $strAdInfo, 'client_ip' => $strClientIp, 'reg_time' => $this->current_time, 'type' => 0, 'add_time' => $this->current_time); Log_Common::getInstance()->add_log($log_data); Com_DataCenter::getInstance()->publish_data($playerid, 'est', array('ad_info' => $ad_info, 'step' => 'get', 'time' => $this->current_time)); } $_SESSION['player_id'] = $playerid; $_SESSION['name'] = ''; #zhe shi hou hai mei ming zi $_SESSION['career_type'] = ''; #zhe shi hou hai mei ming zi $_SESSION['active_type'] = $active_type; $_SESSION['adult_flag'] = $iAdultFlag; $this->get_game('Online')->write_session(); $arr_cache = array('player_id' => $playerid, 'name' => '', 'user_account' => $strUserAccount, 'ad_info' => $strAdInfo, 'reg_time' => 0, 'career_type' => 0, 'first_load' => 0); $this->get_data('Player')->set_rookie_loading_cache($playerid, $arr_cache); # -------------------------------------------------------------------- # 活动日志记录 # -------------------------------------------------------------------- /** $event_log_info = array( 'log_type' => 'login', 'player_id' => $_SESSION['player_id'], 'login_time' => $this->current_time, 'logout_time' => 0, ); $this->get_game('Event')->async_deal_event_log($event_log_info); **/ if ($iAdultFlag == 0) { $this->get_game('Adlut')->add_timer($playerid); #放沉迷定时器 } Com_System::url_redirect(SERVER_DOMAIN . '/index.php'); } else { if ($iAdultFlag == 0) { $flag = $this->get_data('Online')->get_adlut_ban($account_info['player_id']); if (!$flag) { $this->get_game('Adlut')->add_timer($account_info['player_id']); #放沉迷定时器 } if ($flag) { $msg = Cache_Language::getInstance()->get_language_info(10306); Com_System::url_msg_redirect($msg['content'], $rurl); exit; } } $client_ip = Com_System::get_client_ip(); $this->get_game('DailySign')->async_trigger_login_times($account_info['player_id']); $objPlayerData = $this->get_data('Player'); if ($account_info['player_id'] == $_SESSION['player_id']) { // Com_Log::log("account:{$account_info['player_id']} session:{$_SESSION['player_id']} sid:{$_SESSION['']}",'login_test',1); $up_arr = array('session_id' => $_SESSION['sid'], 'adult_flag' => $iAdultFlag, 'client_ip' => $client_ip); //上一次离线时长计算 $pinfo = $objPlayerData->get_player_info($account_info['player_id'], array('logout_time', 'heart_time', 'offline_reward_time')); $logout_time = max($pinfo['logout_time'], $pinfo['heart_time'], $pinfo['offline_reward_time']); $last_offline_time = $this->current_time - $logout_time; $up_arr['last_offline_time'] = $last_offline_time; $up_arr['offline_reward_time'] = $this->current_time; if ($last_offline_time >= 3600) { //1小时以上给奖励 $up_arr['offline_reward_status'] = 1; } else { $up_arr['offline_reward_status'] = 0; } //已经登录 $objPlayerData->update_player_info($account_info['player_id'], $up_arr); Com_System::url_redirect(SERVER_DOMAIN . '/index.php'); exit; } $arrUser = $objPlayerData->get_player_info($account_info['player_id']); if ($arrUser['is_ban'] == 3) { #封号了 Com_System::url_msg_redirect("亲爱的魔法师,由于您的账号数据存在异常,魔法管理员已暂时将您的账号封停,如有疑问可联系客服咨询。", $rurl); exit; } if (empty($arrData['nologin']) && $arrUser['ban_time'] > $this->current_time) { Com_System::url_redirect(SERVER_DOMAIN . '/index.php' . "?ecode=-15"); } $oldPlayerId = isset($_SESSION['player_id']) ? $_SESSION['player_id'] : 0; if ($oldPlayerId) { //如果有老的playerid 则生成新的session_id // session_regenerate_id(); } $_SESSION = array(); $_SESSION['sid'] = session_id(); $_SESSION["player_id"] = $arrUser["player_id"]; $_SESSION['active_type'] = 0; $_SESSION['name'] = $arrUser["name"]; $_SESSION["account"] = $strUserAccount; $_SESSION['career_type'] = $arrUser['career_type']; $_SESSION['adult_flag'] = $iAdultFlag; $_SESSION['ad_Info'] = $arrUser['ad_Info']; $_SESSION['client_ip'] = $strClientIp; $_SESSION['server_id'] = $serverId; $_SESSION['vip'] = $arrUser['vip']; $_SESSION['level'] = $arrUser['level']; $objOnline = $this->get_game('Online'); $objOnline->write_session(); $up_arr = array('session_id' => $_SESSION['sid'], 'adult_flag' => $iAdultFlag, 'client_ip' => $client_ip); //上一次离线时长计算 $logout_time = max($arrUser['logout_time'], $arrUser['heart_time'], $arrUser['offline_reward_time']); $last_offline_time = $this->current_time - $logout_time; $up_arr['last_offline_time'] = $last_offline_time; $up_arr['offline_reward_time'] = $this->current_time; if ($last_offline_time >= 3600) { //1个小时以上给奖励 $up_arr['offline_reward_status'] = 1; } else { $up_arr['offline_reward_status'] = 0; } $objPlayerData->update_player_info($arrUser["player_id"], $up_arr); //更新下session $log_data = array('player_id' => $arrUser["player_id"], 'channel' => 1, 'client_ip' => $strClientIp, 'game_client_ip' => $client_ip, 'reg_time' => $arrUser['reg_time'], 'ad_info' => $arrUser['ad_Info'], 'player_level' => $arrUser['level'], 'vip_level' => $arrUser['vip'], 'vip_special_level' => $arrUser['privilege_level']); #Log_Login::getInstance()->add_log($log_data); Log_Common::getInstance()->add_log($log_data, 'day'); $arr_cache = array('player_id' => $arrUser["player_id"], 'name' => $arrUser["name"], 'user_account' => $strUserAccount, 'ad_info' => $arrUser['ad_Info'], 'reg_time' => $arrUser['reg_time'], 'career_type' => $arrUser['career_type'], 'first_load' => $arrUser['first_load']); $this->get_data('Player')->set_rookie_loading_cache($arrUser["player_id"], $arr_cache); $ad_info = $strAdInfo > 0 ? 1 : 0; Com_DataCenter::getInstance()->publish_data($arrUser["player_id"], 'login', array('ad_info' => $ad_info, 'status' => 'on', 'keep_time' => 0, 'time' => $this->current_time)); if ($ad_info == 1) { #广告系统用户推送每天首次登陆 if (date('Ymd', $arrUser["reg_time"]) != date('Ymd') && date('Ymd') != date('Ymd', $arrUser["login_time"])) { $activelog = Com_System::send_request(array('user_account' => $arrUser['user_account']), 'login'); } } #记录登陆登出信息 $this->get_data('Online')->set_online_list($arrUser["player_id"], array('login_time' => $this->current_time, 'logout_time' => $arrUser['logout_time'])); // Com_Log::log("arrUser:{$arrUser["player_id"]} session:{$_SESSION['player_id']} sid:{$_SESSION['sid']}",'login_test',1); # -------------------------------------------------------------------- # 活动日志记录 # -------------------------------------------------------------------- /** $event_log_info = array( 'log_type' => 'login', 'player_id' => $_SESSION['player_id'], 'login_time' => $this->current_time, 'logout_time' => 0, ); $this->get_game('Event')->async_deal_event_log($event_log_info); **/ Com_System::url_redirect(SERVER_DOMAIN . '/index.php'); } }
/** * 格式化参数扩展 * @param $params * @param $code * @return array */ public static function format_param_ex($params, $code) { $out = array(); if (!empty($params)) { #获取错误语言配置表 $language_table = Cache_Language::getInstance()->get_language_info($code); if ($language_table['params']) { $language_params = self::format_table_field($language_table['params']); } foreach ($params as $param) { if (Com_Array::is_arr2($param)) { $p = array(); foreach ($param as $val) { if ($language_params[$val['txt']]) { $val['txt'] = $language_params[$val['txt']]; } $tmp = array('txt' => $val['txt'], 'rep_type' => $val['rep_type'], 'rep_val' => '', 'rep_param' => '', 'underLine' => '', 'color' => '', 'size' => ''); if ($val['rep_type'] == 1) { if (!empty($val['rep_val'])) { $tmp['rep_val'] = $val['rep_val']; $tmp['rep_param'] = $val['rep_chapter'] . "," . $val['rep_task_id']; } } elseif ($val['rep_type'] == 2) { if (!empty($val['rep_val'])) { $tmp['rep_val'] = $val['rep_val']; $tmp['rep_param'] = $val['rep_num'] . "," . $val['rep_player_id'] . "," . $val['rep_pid']; } } elseif ($val['rep_type'] == 3) { if (!empty($val['rep_pid'])) { $tmp['rep_val'] = $val['rep_val']; $tmp['rep_param'] = "1," . $val['rep_player_id'] . "," . $val['rep_pid']; } } elseif ($val['rep_type'] == 4) { if (!empty($val['rep_pid'])) { $tmp['rep_val'] = $val['rep_val']; $tmp['rep_param'] = "1," . $val['rep_player_id'] . "," . $val['rep_pid']; } } elseif ($val['rep_type'] == 10 || $val['rep_type'] == 9 || $val['rep_type'] == 12) { if (!empty($val['rep_val'])) { $tmp['rep_val'] = $val['rep_val']; if (Com_Array::is_good_arr($val['rep_param'])) { foreach ($val['rep_param'] as $rp) { if (!is_int($rp)) { $rp = '$' . $rp; } $tmp['rep_param'] .= ($tmp['rep_param'] ? "," : "") . $rp; } } else { $tmp['rep_param'] = $val['rep_num'] . "," . $val['rep_player_id'] . "," . $val['rep_pid']; } } } else { if (!empty($val['rep_val'])) { $tmp['rep_val'] = $val['rep_val']; if (isset($val['rep_color'])) { $val['rep_color'] = ""; $tmp['color'] = $val['rep_color']; } } } $p[] = $tmp; } $out[] = $p; } else { $p = array(); if ($language_params[$param['txt']]) { $param['txt'] = $language_params[$param['txt']]; } if ($param['rep_type'] == 1) { $rep = array('txt' => strval($param['txt']), 'rep_type' => $param['rep_type'], 'rep_val' => $param['rep_val'], 'rep_param' => ''); if (isset($param['rep_map_id'])) { $rep['rep_param'] = $param['rep_chapter'] . "," . $param['rep_map_id']; $rep['underline'] = $param['rep_underline']; $param['rep_color'] = ""; $rep['color'] = $param['rep_color']; } $p[] = $rep; } elseif ($param['rep_type'] == 2) { $p[] = array('txt' => strval($param['txt']), 'rep_type' => $param['rep_type'], 'value' => $param['rep_val'], 'rep_param' => $param['rep_num'] . "," . $param['rep_player_id'] . "," . $param['rep_pid']); } elseif ($param['rep_type'] == 3) { $p[] = array('txt' => strval($param['txt']), 'rep_type' => $param['rep_type'], 'value' => $param['rep_val'], 'rep_param' => "1," . $param['rep_player_id'] . "," . $param['rep_pid']); } elseif ($param['rep_type'] == 4) { $p[] = array('txt' => strval($param['txt']), 'rep_type' => $param['rep_type'], 'value' => $param['rep_val'], 'rep_param' => "1," . $param['rep_player_id'] . "," . $param['rep_pid']); } elseif ($param['rep_type'] == 0) { $param['rep_color'] = ""; $p[] = array('txt' => strval($param['txt']), 'rep_type' => $param['rep_type'], 'value' => $param['rep_val'], 'rep_param' => '', 'underline' => '1', 'color' => $param['rep_color']); } elseif ($param['rep_type'] == 10 || $param['rep_type'] == 9 || $param['rep_type'] == 12) { if (!empty($param['rep_val'])) { if (Com_Array::is_good_arr($param['rep_param'])) { foreach ($param['rep_param'] as $rp) { if (!is_int($rp)) { $rp = '$' . $rp; } $rep_param .= ($rep_param ? "," : "") . $rp; } } } $param['rep_color'] = ""; $p[] = array('txt' => strval($param['txt']), 'rep_type' => $param['rep_type'], 'value' => $param['rep_val'], 'rep_param' => $rep_param, 'underline' => '1', 'color' => $param['rep_color']); } else { $param['rep_color'] = ""; $p[] = array('txt' => strval($param['txt']), 'rep_type' => $param['rep_type'], 'value' => $param['rep_val'], 'rep_param' => '', 'underline' => '', 'color' => $param['rep_color']); } $out[] = $p; } } } return $out; }
public function get_title_finish_progress($player_id, $title_id) { $title_config = Cache_TitleConfig::getInstance()->get_title_config_by_id($title_id); $finish_title_ids = $this->get_data('PlayerAchieveCounter')->get_player_achieve_counter_info($player_id, 'finish_title_ids'); $title_state = 0; if (isset($finish_title_ids[$title_id])) { $title_state = 1; //激活 } $item = array(); $item['title_id'] = $title_config['title_id']; $item['title_state'] = isset($finish_title_ids[$title_id]) ? 1 : 0; $item['icon'] = $title_config['icon']; $item['title_name'] = $title_config['title_name']; $item['reward'] = $this->get_format_achieve_attr($title_config['reward']); $item['achieve_finish_num'] = $item['title_state']; $item['achieve_total_num'] = 1; $item['show_reward'] = 0; $item['target_info'] = ''; $item['target_tips'] = ''; $item['tag'] = intval($title_config['tag']); $item['resource_type'] = intval($title_config['resource_type']); if ($title_config['tag'] == 2 && $title_state == 0) { $language_config = Cache_Language::getInstance()->get_language_info(760001); $item['target_info'] = $language_config['content']; } if (empty($item['target_info'])) { $achieveConfig = Cache_AchieveConfig::getInstance()->get_achieve_config_by_titleid($title_id); $achieve_task_info = $this->get_data('PlayerAchieve')->get_player_achieve_info($player_id, $title_id); $item['target_info'] = $achieveConfig[0]['target_info']; if ($title_state == 0) { $item['target_tips'] = str_replace("%s", intval($achieve_task_info[$achieveConfig[0]['achieve_id']]['val']), $achieveConfig[0]['target_tips']); } } return $item; }