diff --git a/webapp/controller/HeroController.class.php b/webapp/controller/HeroController.class.php index 3b16fb7c..e02d1cd4 100644 --- a/webapp/controller/HeroController.class.php +++ b/webapp/controller/HeroController.class.php @@ -169,15 +169,21 @@ class HeroController extends BaseAuthedController { $propertyChgService->addHeroChg(); $propertyChgService->addBagChg(); $propertyChgService->addUserChg(); - Hero::update($heroUniId, - array( - 'hero_lv' => $heroDb['hero_lv'] + 1, - 'lock_type' => 0, - 'unlock_time' => 0, - ) - ); - $rankActivityService = new services\RankActivityService(); - $rankActivityService->heroUpgradeLevel($heroDb['hero_lv'] + 1); + $currLevelMeta = mt\HeroLevel::getByQualityLevel($heroDb['quality'], $heroDb['hero_lv']); + if ($currLevelMeta) { + $nextLevelMeta = mt\HeroLevel::getByQualityLevel($heroDb['quality'], $heroDb['hero_lv'] + 1); + if ($nextLevelMeta) { + Hero::update($heroUniId, + array( + 'hero_lv' => $heroDb['hero_lv'] + 1, + 'lock_type' => 0, + 'unlock_time' => 0, + ) + ); + $rankActivityService = new services\RankActivityService(); + $rankActivityService->heroUpgradeLevel($heroDb['hero_lv'] + 1); + } + } $this->_rspData(array( 'property_chg' => $propertyChgService->toDto(), )); @@ -204,15 +210,21 @@ class HeroController extends BaseAuthedController { $propertyChgService->addHeroChg(); $propertyChgService->addBagChg(); $propertyChgService->addUserChg(); - Hero::update($heroUniId, - array( - 'quality' => $heroDb['quality'] + 1, - 'lock_type' => 0, - 'unlock_time' => 0, - ) - ); - $rankActivityService = new services\RankActivityService(); - $rankActivityService->heroUpgradeLevel($heroDb['quality'] + 1); + $currQualityMeta = mt\HeroQuality::getByQuality($heroDb['quality']); + if ($currQualityMeta) { + $nextQualityMeta = mt\HeroQuality::getByQuality($heroDb['quality'] + 1); + if ($nextQualityMeta) { + Hero::update($heroUniId, + array( + 'quality' => $heroDb['quality'] + 1, + 'lock_type' => 0, + 'unlock_time' => 0, + ) + ); + $rankActivityService = new services\RankActivityService(); + $rankActivityService->heroUpgradeLevel($heroDb['quality'] + 1); + } + } $this->_rspData(array( 'property_chg' => $propertyChgService->toDto(), ));