From 6dc2a5257ad0f7699d9b59bb76cce433a10b19fc Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 20 Sep 2022 09:57:46 +0800 Subject: [PATCH 1/3] 1 --- webapp/mt/Item.php | 3 ++- webapp/services/BattleDataService.php | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/webapp/mt/Item.php b/webapp/mt/Item.php index 895015d1..f69e7e22 100644 --- a/webapp/mt/Item.php +++ b/webapp/mt/Item.php @@ -249,7 +249,8 @@ class Item { self::FUNC_TYPE, self::MATERIAL_TYPE, self::FRAGMENT_TYPE, - 14 + 14, + self::FRAGMENT_BOX_TYPE, )); } diff --git a/webapp/services/BattleDataService.php b/webapp/services/BattleDataService.php index da25bd42..20829ba5 100644 --- a/webapp/services/BattleDataService.php +++ b/webapp/services/BattleDataService.php @@ -25,8 +25,11 @@ require_once('models/RealtimeData.php'); require_once('services/RankActivityService.php'); require_once('services/FormulaService.php'); +require_once('services/AwardService.php'); +require_once('services/PropertyChgService.php'); use mt; +use services; use phpcommon\SqlHelper; use models\Season; use models\Battle; @@ -666,6 +669,7 @@ class BattleDataService extends BaseService { private function randWeight($items) { + error_log(json_encode($items)); $weights = array(); { $weight = 0; @@ -713,6 +717,8 @@ class BattleDataService extends BaseService { private function procDrop($dropIdx) { + $propertyChgService = new services\PropertyChgService(); + $awardService = new services\AwardService(); $matchMode = getReqVal('match_mode', 0); if ($dropIdx == 0) { $itemId = FragmentPool::dropHero(); @@ -722,6 +728,15 @@ class BattleDataService extends BaseService { 'item_id' => $itemId, 'item_num' => 1 )); + myself()->_addItems( + array( + array( + 'item_id' => $itemId, + 'item_num' => 1 + )), + $awardService, + $propertyChgService + ); if ($matchMode == self::MATCH_MODE_PVE) { myself()->_incDailyV(TN_DAILY_PVE_GET_FRAGMENT_NUM, 0, 1); } else { @@ -736,6 +751,15 @@ class BattleDataService extends BaseService { 'item_id' => $itemId, 'item_num' => 1 )); + myself()->_addItems( + array( + array( + 'item_id' => $itemId, + 'item_num' => 1 + )), + $awardService, + $propertyChgService + ); if ($matchMode == self::MATCH_MODE_PVE) { myself()->_incDailyV(TN_DAILY_PVE_GET_FRAGMENT_NUM, 0, 1); } else { From 0a1ac2342dc948a73857cd645755a4e529531da6 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 20 Sep 2022 10:04:34 +0800 Subject: [PATCH 2/3] 1 --- webapp/services/BattleDataService.php | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/webapp/services/BattleDataService.php b/webapp/services/BattleDataService.php index 20829ba5..cfaa9705 100644 --- a/webapp/services/BattleDataService.php +++ b/webapp/services/BattleDataService.php @@ -55,9 +55,21 @@ class BattleDataService extends BaseService { private $weapon2Dto = null; private $reward = array( - 'hero' => array(), - 'weapon1' => array(), - 'weapon2' => array(), + 'hero' => array( + 'hero_uniid' => '', + 'ceg_uplimit' => 0, + 'obtain_ceg' => 0, + ), + 'weapon1' => array( + 'gun_uniid' => '', + 'ceg_uplimit' => 0, + 'obtain_ceg' => 0, + ), + 'weapon2' => array( + 'gun_uniid' => '', + 'ceg_uplimit' => 0, + 'obtain_ceg' => 0, + ), 'items' => array() ); private $rankActivityService = null; @@ -136,7 +148,7 @@ class BattleDataService extends BaseService { case self::MATCH_MODE_PVE: { //pve - $this>updatePveData(); + $this->updatePveData(); if ($this->pveGeminiMeta && $this->pveGeminiMetaMode) { $this->rewardCegPve(); From 27f73b2c304a0c8fafad28d35effa06c9e4967e8 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 20 Sep 2022 10:19:28 +0800 Subject: [PATCH 3/3] 1 --- webapp/controller/BattleController.class.php | 10 ++++--- webapp/models/Hero.php | 2 +- webapp/services/BattleDataService.php | 29 ++++++++++++++++---- webapp/services/FormulaService.php | 6 ++-- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/webapp/controller/BattleController.class.php b/webapp/controller/BattleController.class.php index 4da151dc..800d650a 100644 --- a/webapp/controller/BattleController.class.php +++ b/webapp/controller/BattleController.class.php @@ -143,10 +143,12 @@ class BattleController extends BaseAuthedController { } { for ($i = 1; $i <= 2; ++$i) { - $gunDb = Gun::findByAccountId($member['account_id'], - $member['weapon_uniid' . $i]); - if ($gunDb) { - $info['weapon_dto' . $i] = Gun::toDto($gunDb); + if (isset($member['weapon_uniid' . $i])) { + $gunDb = Gun::findByAccountId($member['account_id'], + $member['weapon_uniid' . $i]); + if ($gunDb) { + $info['weapon_dto' . $i] = Gun::toDto($gunDb); + } } } } diff --git a/webapp/models/Hero.php b/webapp/models/Hero.php index c2a70119..f44eb300 100644 --- a/webapp/models/Hero.php +++ b/webapp/models/Hero.php @@ -391,7 +391,7 @@ class Hero extends BaseModel { return $finalyAddGold; } - public static function gainGoldPve($heroDto, $count) + public static function gainGoldPve($heroDto, $addGold) { $newGold = min($heroDto['pve_ceg_uplimit'], $heroDto['current_pve_get_ceg'] + $addGold); diff --git a/webapp/services/BattleDataService.php b/webapp/services/BattleDataService.php index cfaa9705..cc169029 100644 --- a/webapp/services/BattleDataService.php +++ b/webapp/services/BattleDataService.php @@ -492,15 +492,20 @@ class BattleDataService extends BaseService { $userInfo = myself()->_getOrmUserInfo(); $this->pveGeminiMeta = mt\PveGemini::get($instanceId); if ($this->pveGeminiMeta) { - if (!($userInfo['pve_instance_id'] == $instanceId || - $userInfo['pve_instance_id'] == $instanceId + 1)) { + if (!( + $instanceId == mt\PveGemini::FIRST_INSTANCE_ID || + $userInfo['pve_instance_id'] == $instanceId || + $userInfo['pve_instance_id'] == $instanceId + 1) + ) { $this->pveGeminiMeta = null; } } + error_log(json_encode($this->pveGeminiMeta)); $this->pveGeminiMetaMode = mt\PveGeminiMode::get($instanceMode); if ($this->pveGeminiModeMeta) { $this->instanceRank = mt\PveGeminiMode::calcStar($this->pveGeminiModeMeta, $pveRankScore); } + error_log(json_encode($this->pveGeminiMetaMode)); if (getReqVal('pve_kill_boss', 0) == 1) { if ($this->pveGeminiMeta) { myself()->_updateUserInfo(array( @@ -640,16 +645,28 @@ class BattleDataService extends BaseService { private function rewardCegPve() { $instanceLevel = $this->pveGeminiMeta['gemini_lv']; - $bossReward = getReqVal(pve_kill_boss) ? 1 : 0; + $bossReward = getReqVal('pve_kill_boss', 0) ? 1 : 0; - $heroPveCeg = FormulaService::calcHeroPveCeg($this->heroDto, $instanceLevel, $instanceRank, $bossReward); + $heroPveCeg = FormulaService::calcHeroPveCeg( + $this->heroDto, + $instanceLevel, + $this->instanceRank, + $bossReward); $weaponPveCeg1 = 0; $weaponPveCeg2 = 0; if ($this->weapon1Dto) { - $weaponPveCeg1 = FormulaService::calcWeaponPveCeg($this->weapon1Dto, $instanceLevel, $instanceRank, $bossReward); + $weaponPveCeg1 = FormulaService::calcWeaponPveCeg( + $this->weapon1Dto, + $instanceLevel, + $this->instanceRank, + $bossReward); } if ($this->weapon2Dto) { - $weaponPveCeg2 = FormulaService::calcWeaponPveCeg($this->weapon2Dto, $instanceLevel, $instanceRank, $bossReward); + $weaponPveCeg2 = FormulaService::calcWeaponPveCeg( + $this->weapon2Dto, + $instanceLevel, + $this->instanceRank, + $bossReward); } error_log(json_encode(array( 'heroPveCeg' => $heroPveCeg, diff --git a/webapp/services/FormulaService.php b/webapp/services/FormulaService.php index f93648ab..1f2660d4 100644 --- a/webapp/services/FormulaService.php +++ b/webapp/services/FormulaService.php @@ -53,7 +53,7 @@ class FormulaService extends BaseService { (0.8 - ($instanceRank - 1) * 0.25 + $bossReward * 0.2) * 1/10; - return round(ceg); + return round($ceg); } public static function calcWeaponPvpCeg($weaponDto, $params) @@ -153,7 +153,7 @@ class FormulaService extends BaseService { public static function calcHeroFragmentProbabilityPve($heroQuality, $onlineNum, $heroFragmentNum, - $todayPvpBattleTimes, + $todayPveBattleTimes, $instanceLevel, $instanceRank, $instanceRankRate, @@ -172,7 +172,7 @@ class FormulaService extends BaseService { public static function calcWeaponFragmentProbabilityPve($heroQuality, $onlineNum, $gunFragmentNum, - $todayPvpBattleTimes, + $todayPveBattleTimes, $instanceLevel, $instanceRank, $instanceRankRate,