_switchIsOpen('bigEventBoxDrop')) { return 0; } $boxNum = 0; $currPhase = self::getCurrentPhase(); $allocableNum = self::getDailyPhaseAllocNum($currPhase, myself()->_getNowDaySeconds()); $alreadyAllocNum = self::getDailyPhaseAlreadyAllocNum($currPhase, myself()->_getNowDaySeconds()); if ($allocNum > 0) { $lstVal = mt\Parameter::getListValue('battle_event_loot_per_game'); if ($allocableNum <= 0 || empty($lstVal) || count($lstVal) < 2) { myself()->_rspData(array( 'box_num' => 0 )); return; } $rnd = rand($lstVal[0], $lstVal[1]); if ($rnd <= 0) { myself()->_rspData(array( 'box_num' => 0 )); return; } $boxNum = min($rnd, $allocableNum); } return $boxNum; } public static function getCurrentPhase() { return 0; } private static function getDailyPhaseDropLastTime($phase, $time) { $key = self::DAILY_PHASE_DROP_LAST_TIME_KEY . $phase . ':' . $time; $r = $this->_getRedis($key); $lastTime = $r->get($key); return empty($lastTime) ? 0 : $lastTime; } private static function getDailyPhaseDropTotalNum($phase, $time) { $key = self::DAILY_PHASE_DROP_TOTAL_KEY . $phase . ':' . $time; $r = $this->_getRedis($key); $num = $r->get($key); return empty($num) ? 0 : $num; } private static function getDailyPhaseAllocNum($phase, $time) { $key = self::DAILY_PHASE_ALLOC_NUM_KEY . $phase . ':' . $time; $r = $this->_getRedis($key); $num = $r->get($key); return empty($num) ? 0 : $num; } private static function getDailyPhaseAlreadyAllocNum($phase, $time) { $key = self::DAILY_PHASE_ALREADY_ALLOC_NUM_KEY . $phase . ':' . $time; $r = $this->_getRedis($key); $num = $r->get($key); return empty($num) ? 0 : $num; } private static function incAlreadyTodayAllocBoxNum($val) { $key = 'box_daily_already_alloc_num:' . myself()->_getNowDaySeconds(); $r = $this->_getRedis($key); $num = intval($r->get($key)); if (empty($num)) { $r->setPx($key, $val, 1000 * 3600 * 24 * 7); } else { $r->setPx($key, $num + $val, 1000 * 3600 * 24 * 7); } } }