getOfferRewardMissions() as $mission) { $meta = self::get($mission['mission_id']); if ($meta && $meta['type'] == self::OFFER_REWARD_MISSON_TYPE) { array_push($metaList, $meta); } } } else { foreach (self::getMetaList() as $meta) { switch ($type) { case self::DAILY_MISSION_CUSTOM_TYPE: { if ($meta['type'] == self::DAILY_MISSON_TYPE) { array_push($metaList, $meta); } } break; case self::SEASON_WEEKLY_MISSION_CUSTOM_TYPE: { if ($meta['type'] == self::SEASONCARD_MISSON_TYPE && $meta['subtype'] == self::SEASON_WEAKLY_MISSON_SUBTYPE) { array_push($metaList, $meta); } } break; default: { } 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 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; }