From 31e9699eeac0897a35559b3ca0d0fd84d83c4578 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 17 Sep 2022 14:33:26 +0800 Subject: [PATCH] 1 --- webapp/mt/PveGeminiMode.php | 35 ++++++++++++++++++++++++ webapp/services/BattleDataService.php | 38 ++++++++++++++++++++++++++- 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 webapp/mt/PveGeminiMode.php diff --git a/webapp/mt/PveGeminiMode.php b/webapp/mt/PveGeminiMode.php new file mode 100644 index 00000000..19af938c --- /dev/null +++ b/webapp/mt/PveGeminiMode.php @@ -0,0 +1,35 @@ + $strs[i]) { + return i + 1; + } + } + return 0; + } + + protected static function getMetaList() + { + if (!self::$metaList) { + self::$metaList = getMetaTable('pveGeminiMode@pveGeminiMode.php'); + } + return self::$metaList; + } + + protected static $metaList; + +} diff --git a/webapp/services/BattleDataService.php b/webapp/services/BattleDataService.php index 9bcb432b..5191bab3 100644 --- a/webapp/services/BattleDataService.php +++ b/webapp/services/BattleDataService.php @@ -11,6 +11,8 @@ require_once('mt/KillReward.php'); require_once('mt/Parameter.php'); require_once('mt/HeroQuality.php'); require_once('mt/AttrHelper.php'); +require_once('mt/PveGemini.php'); +require_once('mt/PveGeminiMode.php'); require_once('models/Season.php'); require_once('models/Battle.php'); @@ -81,6 +83,8 @@ class BattleDataService extends BaseService { ); private $heroDto = null; private $rankActivityService = null; + private $pveGeminiMeta = null; + private $pveGeminiModeMeta = null; function __construct() { @@ -464,6 +468,7 @@ class BattleDataService extends BaseService { $onlineNum = $this->getOnlineNumber(); $instanceLevel = 0; $instanceRank = 0; + $instanceRankRate = $this->getInstanceRankRate(); $bossReward = getReqVal('pve_kill_boss', 0) ? 1 : 0; $todayPveBattleTimes = $this->_getDailyV(TN_DAILY_PVE_BATTLE_TIMES, 0); $todayPveGetFragmentNum = $this->_getDailyV(TN_DAILY_PVE_GET_FRAGMENT_NUM, 0); @@ -479,7 +484,7 @@ class BattleDataService extends BaseService { $gunProbability = max($gunProbability, 0); $emptyProbability = max(1 - $heroProbability - $gunProbability, 0); - $dropIdx = $this.randWeight(array($heroProbability, $gunProbability, $emptyProbability)); + $dropIdx = $this->randWeight(array($heroProbability, $gunProbability, $emptyProbability)); if ($dropIdx < 0 || $dropIdx == 2) { return; } @@ -507,4 +512,35 @@ class BattleDataService extends BaseService { } + private function getInstanceRankRate() + { + if ($this->pveGeminiModeMeta) { + $pveRankScore = getReqVal('pve_rank_score', 0); + $star = mt\PveGeminiMode::calcStar($this->pveGeminiModeMeta, $pveRankScore); + switch ($star) { + case 1: + { + return 0.8; + } + break; + case 2: + { + return 0.55; + } + break; + case 3: + { + return 0.3; + } + break; + default: + { + return 0; + } + break; + } + } + return 0; + } + }