Example #1
0
 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;
 }
Example #2
0
 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);
 }
Example #3
0
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") {
Example #4
0
 /**
  * 赞好友动态
  * 单条与一键
  */
 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;
 }
Example #5
0
 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');
     }
 }
Example #6
0
 /**
  * 格式化参数扩展
  * @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;
 }
Example #7
0
 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;
 }