This commit is contained in:
hujiabin 2024-06-11 14:49:41 +08:00
parent dd4b9056ea
commit d035e260a5
3 changed files with 30 additions and 4 deletions

View File

@ -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'],
));
}

View File

@ -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'],
);
}

View File

@ -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']);