示例#1
0
 private function get_task_num($task, $player_info, $hero_info, $equit_info, $skill_info, $sid, $p_info)
 {
     $res = 0;
     switch ($task['task_type']) {
         case 1000:
             #等级达到
             #return 30;
             return $player_info['level'];
             break;
         case 1001:
             #总战力
             return $player_info['sum_fpower'];
             break;
         case 1002:
             #好友个数
             $friends = $this->get_data('PlayerFriend')->get_player_friend($player_info['player_id'], "follow");
             return count($friends['info']);
             break;
         case 1003:
             #加入公会
             return $player_info['union_id'];
             break;
         case 1004:
             #登录天数
             return $player_info['login_date'];
             break;
         case 1005:
             #声望等级
             return $player_info['fame_level'];
             break;
         case 2000:
             #装备强化达到级
             return $equit_info['max_intensive_lv'];
             break;
         case 2001:
             #装备镶嵌的宝石达到级
             return $equit_info['min_inlay_gem_lv'];
             break;
         case 2002:
             #技能达到级别
             return $skill_info['max_lv_skill'];
             break;
         case 2003:
             #符文达到级别
             return $skill_info['max_lv_rune'];
             break;
         case 2004:
             #天赋达到级别
             return $skill_info['max_lv_dower'];
             break;
         case 2005:
             #女神达到级别
             return $hero_info['fairy_level_max'];
             break;
         case 2006:
             #英雄达到级别
             return $hero_info['hero_level_max'];
             break;
         case 2007:
             #英雄潜能达到
             return $hero_info['potential_level_max'];
             break;
         case 2008:
             #英雄星级达到级别
             return $hero_info['star_max'];
             break;
         case 2009:
             #装备翅膀数量
             return $hero_info['wing_equip'];
             break;
         case 2010:
             #翅膀达到级别
             return $hero_info['wing_level_max'];
             break;
         case 2011:
             #圣器达到级别
             return $skill_info['max_rank_train'];
             break;
         case 2012:
             #任意装备镶嵌一个x级宝石
             return $equit_info['max_inlay_gem_lv'];
             break;
         case 2013:
             return $skill_info['max_dower_num'];
             break;
         case 2014:
             #二个女神到达x级
             return 0 + $this->get_game('Fairy')->get_fairy_level_min($player_info['player_id']);
             break;
         case 2015:
             #一个橙色英雄等级达到
             return $this->get_game('Hero')->get_hero_level_max($player_info['player_id'], 1, 4);
             break;
         case 2016:
             #橙色英雄合体达到
             return $this->get_game('Hero')->get_hero_level_max($player_info['player_id'], 4, 4);
             break;
         case 2017:
             #任意一个英雄成长值达到 X
             return $this->get_game('Hero')->get_hero_level_max($player_info['player_id'], 6, 0);
             break;
         case 2018:
             #任意一件翅膀的装备羽炼等级到达 X
             return $this->get_game('PlayerWing')->get_wing_equip_level_max($player_info['player_id'], 1);
             break;
         case 2019:
             #任意一件装备属性完美度洗练达到 X
             return intval($equit_info['max_attr_perfection_avg'] / 100);
             break;
         case 2020:
             #暗影之翼翅膀进阶到第{0}阶
             return $this->get_game('PlayerWing')->get_wing_level($player_info['player_id'], 8);
             break;
         case 2021:
             #任意女神强化等级 {0}
             return $this->get_game('Fairy')->get_fairy_train_level_max($player_info['player_id'], 1);
             break;
         case 2022:
             #任意英雄合体达到
             return $this->get_game('Hero')->get_hero_level_max($player_info['player_id'], 4);
             break;
         case 2023:
             #任意两件装备强化至{0}级
             $num = $this->get_game('EquipIntensifier')->cal_prop_num_for_specific_intensive_lv($player_info['player_id'], $task['task_param2']);
             return $num;
             break;
         case 2024:
             #5个技能到 x 阶
             return $this->get_game('PlayerSkill')->get_skill_num_by_level($player_info['player_id'], $task['task_param2']);
             break;
         case 2025:
             #装备镶嵌 x 颗 y 级宝石
             $num = $this->get_game('EquipIntensifier')->get_max_gem_inlay_num_by_gem_lv($player_info['player_id'], $task['task_param2']);
             return $num;
             break;
         case 3000:
             #主线副本已通关章
             return $hero_info['pass_chapter_max'];
             break;
         case 3001:
             #通关挑战关数
             $chapter_list = json_decode($p_info['chapter_info'], true);
             $chapter_id = 0;
             if (!empty($p_info)) {
                 $chapter_id = $p_info['chapter_id'];
             }
             if ($chapter_id > 0) {
                 $init_list = Cache_PlayerPve::getInstance()->get_pve_list($chapter_id);
                 if (!empty($chapter_list) && !empty($init_list)) {
                     $_flag = true;
                     foreach ($init_list as $v) {
                         $flag = false;
                         foreach ($chapter_list as $val) {
                             if ($v['sid'] == $val['sid'] && $val['passed'] > 0) {
                                 $flag = true;
                             }
                         }
                         if ($flag === false) {
                             $_flag = false;
                             break;
                         }
                     }
                     if (!$_flag) {
                         $chapter_id = $chapter_id - 1;
                     }
                 }
             }
             if ($chapter_id < 0) {
                 $chapter_id = 0;
             }
             return $chapter_id;
             break;
         case 3002:
             #竞技场段位达到
             $dw = $this->get_game('KFArena')->get_dw($player_info['player_id']);
             if ($dw['dw'] > $task['task_time'] || $dw['dw_lv'] >= $task['task_param2'] && $dw['dw'] == $task['task_time']) {
                 return $dw['dw'];
             } else {
                 return 0;
             }
             break;
         case 3011:
             #通关挑战副本第{0}章{1}
             if (empty($p_info)) {
                 return 0;
             }
             $chapter_list = json_decode($p_info['chapter_info'], true);
             if (!empty($chapter_list)) {
                 foreach ($chapter_list as $val) {
                     if ($task['task_param2'] == $val['sid'] && $val['passed'] > 0) {
                         return $task['task_time'];
                     }
                 }
             } else {
                 return 0;
             }
             break;
     }
     return $res;
 }
示例#2
0
 public function check_go_into($player_id, $map_id)
 {
     $pinfo = $this->get_data('Player')->get_player_info($player_id, array('vip', 'privilege_level'));
     $vip_type = Cache_VipLevelLimit::getInstance()->get_limit_info_func_id(10009);
     if ($vip_type['fun_type'] == 1) {
         $vip = $pinfo['vip'];
     } elseif ($vip_type['fun_type'] == 2) {
         $vip = $pinfo['privilege_level'];
     }
     $c_set = Cache_PlayerPve::getInstance()->get_seting();
     $left_fight_num = $this->get_vip_times($vip) + $c_set[0]['sums'] - $this->get_data('PlayerDailyTime')->get_player_used_time($player_id, 'used_fight_num') + $this->get_data('PlayerDailyTime')->get_player_used_time($player_id, 'used_sell_num');
     #判断挑战次数是否用完
     if ($left_fight_num <= 0) {
         return false;
     }
     $f_info = $this->get_data('PlayerPve')->get_player_fb_info($player_id);
     //玩家最后通关信息
     $c_info = Cache_PlayerPve::getInstance()->get_pev_sid($map_id);
     //获取副本消息
     if (!empty($f_info)) {
         if ($f_info['chapter_id'] < $c_info[0]['chapter_id']) {
             return false;
         } else {
             if ($f_info['chapter_id'] == $c_info[0]['chapter_id']) {
                 $c_list = Cache_PlayerPve::getInstance()->get_pve_list($f_info['chapter_id']);
                 //挑战副本信息
                 $fb_info = $this->get_data('PlayerFB')->get_player_fb_info($player_id);
                 $type = $this->check_is_open($map_id, $f_info['chapter_info'], $c_list, $c_info[0]['map_sid'], $fb_info);
                 if ($type == 0) {
                     return false;
                 }
             }
         }
     }
     return true;
 }