getDailyMissions() as $mission) { $meta = self::get($mission['mission_id']); if ($meta) { array_push($metaList, $meta); } } } break; case self::DAILY_MISSON_TYPE : { foreach ($missionService->getDailyMissions() as $mission) { $meta = self::get($mission['mission_id']); if ($meta) { array_push($metaList, $meta); } } foreach (self::getMetaList() as $meta) { if ($meta['type'] == self::DAILY_MISSON_TYPE && in_array($meta['subtype'], array( self::DAILY_ACTIVE_VALUE_MISSON_SUBTYPE, self::WEAKLY_ACTIVE_VALUE_MISSON_SUBTYPE ))) { array_push($metaList, $meta); } } } break; case self::OFFER_REWARD_MISSION_CUSTOM_TYPE:{ foreach ($missionService->getOfferRewardMissions() as $mission) { $meta = self::get($mission['mission_id']); if ($meta && $meta['type'] == self::OFFER_REWARD_MISSON_TYPE) { array_push($metaList, $meta); } } } break; case self::NEW_USER_MISSON_TYPE:{ foreach (self::getMetaList() as $meta) { if ($meta['type'] == self::NEW_USER_MISSON_TYPE) { array_push($metaList, $meta); } } } break; } return $metaList; } public static function isOfferRewardMission($meta) { return $meta['type'] == self::OFFER_REWARD_MISSION_CUSTOM_TYPE; } public static function getOfferRewardMissions($excludeMetas) { $maxHeroQuality = myself()->_getV(TN_HERO_MAX_QUALITY, 0, 1); $metas = array(); foreach (self::getMetaList() as $meta) { if ($meta['type'] == self::OFFER_REWARD_MISSON_TYPE) { if ( $meta['param1'] <= $maxHeroQuality) { if (!array_find($excludeMetas, function($val) use($meta) { return $val['mission_id'] == $meta['id']; })) { array_push($metas, $meta); } } } } return $metas; } public static function getDaildyMission() { $metas = array(); foreach (self::getMetaList() as $meta) { if ($meta['type'] == self::DAILY_MISSON_TYPE) { if (!in_array($meta['subtype'], array( self::DAILY_ACTIVE_VALUE_MISSON_SUBTYPE, self::WEAKLY_ACTIVE_VALUE_MISSON_SUBTYPE ))) { array_push($metas, $meta); } } } return $metas; } public static function getDaildyMissionCount() { if (is_null(self::$dailyMissionCount)) { self::$dailyMissionCount = 0; foreach (self::getMetaList() as $meta) { if ($meta['type'] == self::DAILY_MISSON_TYPE) { if ($meta['subtype'] != self::WEAKLY_ACTIVE_VALUE_MISSON_SUBTYPE) { ++self::$dailyMissionCount; } } } } return self::$dailyMissionCount; } protected static function getMetaList() { if (!self::$metaList) { self::$metaList = getMetaTable('task@task.php'); } return self::$metaList; } protected static $metaList; protected static $dailyMissionCount = null; }