_switchIsOpen('bigEventBoxDrop')) { return 0; } $boxNum = 0; $currPhase = self::getCurrentPhase(); $allocableNum = self::getDailyPhaseAllocNum($currPhase, myself()->_getNowDaySeconds()); $alreadyAllocNum = self::getDailyPhaseAlreadyAllocNum($currPhase, myself()->_getNowDaySeconds()); if ($allocableNum > 0) { $lstVal = mt\Parameter::getListValue('battle_event_loot_per_game'); if (!($allocableNum <= 0 || empty($lstVal) || count($lstVal) < 2)) { $rnd = rand($lstVal[0], $lstVal[1]); if ($rnd > 0) { $boxNum = min($rnd, $allocableNum); } } } if ($boxNum > 0) { SqlHelper::insert( $this->_getSelfMysql(), 't_box_alloc', array( 'room_uuid' => $roomUuid, 'account_id' => myself()->_getAccountId(), 'box_num' => $boxNum, 'createtime' => myself()->_getNowTime(), 'modifytime' => myself()->_getNowTime(), ) ); } 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 incAlreadyAllocNum($phase, $time, $val) { $key = self::DAILY_PHASE_ALREADY_ALLOC_NUM_KEY . $phase . ':' . $time; $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); } } }