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; }
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; }