From d035e260a555c4fddd46ccaaf97d4003ba4f9d23 Mon Sep 17 00:00:00 2001 From: hujiabin <519660157@qq.com> Date: Tue, 11 Jun 2024 14:49:41 +0800 Subject: [PATCH] 1 --- webapp/controller/UserController.class.php | 13 ++++++++++++- webapp/models/Hero.php | 7 +++++++ webapp/services/RoomBattleDataService.php | 14 +++++++++++--- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/webapp/controller/UserController.class.php b/webapp/controller/UserController.class.php index aabef46d..c9cc4fd7 100644 --- a/webapp/controller/UserController.class.php +++ b/webapp/controller/UserController.class.php @@ -18,6 +18,7 @@ require_once('mt/Rank.php'); require_once('mt/Item.php'); require_once('mt/Map.php'); require_once('mt/MapMode.php'); +require_once('mt/EconomyAttribute.php'); require_once('services/AwardService.php'); require_once('services/PropertyChgService.php'); @@ -1073,8 +1074,18 @@ class UserController extends BaseAuthedController { } public function getBattleGoldModeTimes(){ + $userInfo = $this->_getOrmUserInfo(); + $heroDb = Hero::findByAccountId(myself()->_getAccountId(), $userInfo['hero_id']); + if (!$heroDb){ + $this->_rspErr(1, 'battle hero does not exist'); + return; + } + $heroMeta = \mt\Item::get($heroDb['hero_id']); + $heroAtteMeta = mt\EconomyAttribute::findByGrade($heroMeta['relationship'],$heroDb['quality']); + $this->_rspData(array( - "num" => myself()->_getDailyV(TN_DAILY_GOLD_MODE_BATTLE_TIMES,0) + "current_times" => myself()->_getDailyV(TN_DAILY_GOLD_MODE_BATTLE_TIMES,0), + "total_times" => $heroAtteMeta['roundPerDay'], )); } diff --git a/webapp/models/Hero.php b/webapp/models/Hero.php index d41e008a..4229cc58 100644 --- a/webapp/models/Hero.php +++ b/webapp/models/Hero.php @@ -246,6 +246,8 @@ class Hero extends BaseModel { 'valid_time' => max(0, 86400 * $heroAtteMeta['validTime']), 'is_old' => $row['is_old'], + "current_times" => myself()->_getDailyV(TN_DAILY_GOLD_MODE_BATTLE_TIMES,0), + "total_times" => $heroAtteMeta['roundPerDay'], ); } @@ -290,6 +292,7 @@ class Hero extends BaseModel { $heroAtteMeta = \mt\EconomyAttribute::findByGrade($heroMeta['relationship'],$row['quality']); $unsealTime = $row['unseal_time'] ? $row['unseal_time'] : $row['activate_time']; $validTime = $unsealTime + 86400 * $heroAtteMeta['validTime'] ; + } $dto = array( 'idx' => $row['idx'], @@ -327,6 +330,8 @@ class Hero extends BaseModel { 'valid_time' => max(0, 86400 * $heroAtteMeta['validTime']), 'is_old' => $row['is_old'], + "current_times" => myself()->_getDailyV(TN_DAILY_GOLD_MODE_BATTLE_TIMES,0), + "total_times" => $heroAtteMeta['roundPerDay'], ); // $nft_address = ''; @@ -359,6 +364,8 @@ class Hero extends BaseModel { 'ability' => self::abilityInfo($row), 'valid_time' => max(0, 86400 * $heroAtteMeta['validTime']), + "current_times" => myself()->_getDailyV(TN_DAILY_GOLD_MODE_BATTLE_TIMES,0), + "total_times" => $heroAtteMeta['roundPerDay'], ); } diff --git a/webapp/services/RoomBattleDataService.php b/webapp/services/RoomBattleDataService.php index 848b44be..829bd9bb 100644 --- a/webapp/services/RoomBattleDataService.php +++ b/webapp/services/RoomBattleDataService.php @@ -9,6 +9,7 @@ require_once('models/Season.php'); require_once('mt/MapMode.php'); require_once('mt/Rank.php'); require_once('mt/RankSeason.php'); +require_once('mt/EconomyAttribute.php'); require_once('services/AwardService.php'); require_once('services/PropertyChgService.php'); @@ -142,6 +143,8 @@ class RoomBattleDataService extends BaseService { $battleSingleData['new_elo'] = $member['new_elo']; BattleSettlement::addSingle($battleSingleDb['battle_uuid'],$battleSingleDb['room_uuid'],$battleSingleData); } + }else{ + error_log('User :'.$account .' Error Or Hero Error'); } } @@ -168,13 +171,16 @@ class RoomBattleDataService extends BaseService { return ; } $goldModeTimes = myself()->_getDailyV(TN_DAILY_GOLD_MODE_BATTLE_TIMES,0); + $heroMeta = \mt\Item::get($heroDb['hero_id']); + $heroAtteMeta = mt\EconomyAttribute::findByGrade($heroMeta['relationship'],$heroDb['quality']); + $maxTimes = $heroAtteMeta['roundPerDay']; if ($this->mapMode == mt\MapMode::GOLD_MODE){ myself()->_incDailyV(TN_DAILY_GOLD_MODE_BATTLE_TIMES,0,1); } //金币模式检验 if ($this->mapMode == mt\MapMode::GOLD_MODE && // ($goldModeTimes >= $mapModeMeta['rewards_max_time'] )){ - (!Hero::verifyValid($heroDb) || $goldModeTimes >= $mapModeMeta['rewards_max_time'] )){ + (!Hero::verifyValid($heroDb) || $goldModeTimes >= $maxTimes )){ error_log("金币模式:出战英雄没有打金时间或每日打金场次上限"); }else{ if (!empty($rewardMeta['goldLoot'])){ @@ -259,8 +265,10 @@ class RoomBattleDataService extends BaseService { } //宝箱掉落 - if ($rewardMeta['chestLootProb'] > 0){ - $rand = $rewardMeta['chestLootProb'] * 100; + $chestLootProbArr = explode(";",$rewardMeta['chestLootProb']); + $rate = isset($chestLootProbArr[$teamRank-1]) ? $chestLootProbArr[$teamRank-1] : 0; + if ($rate > 0){ + $rand = $rate * 100; $rnd = rand(1,100); if ($rnd <= $rand){ $chestItems = LootService::dropOutItem($rewardMeta['chestLoot']);