This commit is contained in:
hujiabin 2024-04-22 21:10:32 +08:00
parent bfc1a57ea8
commit 93a100e893
2 changed files with 35 additions and 35 deletions

View File

@ -235,14 +235,17 @@ class BattleController extends BaseAuthedController {
$roomBattleDataService->maxAlive = max($roomBattleDataService->maxAlive,$aliveTime);
}
}
$totalScore = 0;
$totalNum = 0;
foreach ($input["team_list"] as $teamData){
$roomBattleDataService->teamData = $teamData;
$roomBattleDataService->calTotalBattleScore($totalScore,$totalNum);
$realUserNum = 0;
if ($roomBattleDataService->mapMode == mt\MapMode::BET_MODE){
foreach ($input["team_list"] as $teamData){
foreach ($teamData['members'] as $member){
if(!myself()->_isAndroidAccountId(getXVal($member,'account_id', 0))){
$realUserNum += 1;
}
}
}
}
TGLog::writeToLog("game_2006_api","battle_score",$roomBattleDataService->logData);
$roomBattleDataService->scoreAvg = $totalScore / $totalNum;
$roomBattleDataService->realUserCount = $realUserNum;
foreach ($input["team_list"] as $teamData){
$battle_uuid = getXVal($teamData,'battle_uuid', 0);
$battleSettlementDb = BattleSettlement::findTeam($battle_uuid,$room_uuid);

View File

@ -34,30 +34,20 @@ class RoomBattleDataService extends BaseService {
public $maxRecover= 0;
public $maxLevel= 0;
public $maxAlive= 0;
public $scoreAvg= 0;
public $realUserCount= 0;
public $logData = array();
public function calTotalBattleScore(&$totalScore,&$totalNum){
foreach ($this->teamData['members'] as $member){
$battleScore = $this->_calBattleScore($member);
array_push($this->logData,array(
'account_id' => getXVal($member, 'account_id', 0),
'kills' => getXVal($member, 'kills', 0),
'damage' => getXVal($member, 'damage_out', 0),
'assist' => getXVal($member, 'pvp_assist', 0),
'score' => $battleScore,
));
$totalScore += $battleScore;
if ($battleScore>0){
$totalNum += 1;
}
}
}
public function settlementReward(){
$realUserNum = 0;
$myTeamScore = 0;
foreach ($this->teamData['members'] as $member){
if(!myself()->_isAndroidAccountId(getXVal($member,'account_id', 0))){
$realUserNum += 1;
$myTeamScore += $this->_calBattleScore($member);
}
}
$myTeamScoreAvg = $myTeamScore / $realUserNum;
// $paramMeta = mt\Parameter::getVal('performance_score_range',0);
// $scoreParam = explode("|",$paramMeta);
// if (count($paramMeta) < 2){
@ -133,7 +123,7 @@ class RoomBattleDataService extends BaseService {
$userDb = myself()->_getOrmUserInfo();
$heroDb = Hero::find(getXVal($member,'hero_uniid', 0));
if ($userDb && $heroDb){
$this->_getBattleRewards($userDb,$heroDb,$battleScore,$member['reward']);
$this->_getBattleRewards($userDb,$heroDb,$battleScore,$myTeamScoreAvg,$myTeamScore,$member['reward']);
myself()->_addItems($member['reward'], $awardService,$propertyChgService);
$battleSingleDb = BattleSettlement::findSingle($this->battleSettlementDb['battle_uuid']);
@ -155,7 +145,7 @@ class RoomBattleDataService extends BaseService {
}
public function _getBattleRewards($userDb,$heroDb,$battleScore,&$reward){
public function _getBattleRewards($userDb,$heroDb,$battleScore,$teamScoreAvg,$teamScore,&$reward){
$mapModeMeta = mt\MapMode::findByMapMode($this->mapMode);
$teamRank = getXVal($this->teamData,'pvp_team_rank', 0);
if ($mapModeMeta){
@ -191,8 +181,12 @@ class RoomBattleDataService extends BaseService {
// $strArr = explode("|",$rewardMeta['goldParam']);
$coefficientArr = explode(";",$rewardMeta['goldParam']);
$coefficient = isset($coefficientArr[$teamRank-1]) ? $coefficientArr[$teamRank-1] : 0;
$avg = $this->scoreAvg > 0 ? $battleScore / $this->scoreAvg : 0;
$gold = $gold * $coefficient * $avg;
if ($this->mapMode == mt\MapMode::GOLD_MODE){
$gold = $gold * $coefficient * ($battleScore / $teamScoreAvg);
}
if ($this->mapMode == mt\MapMode::BET_MODE){
$gold = $gold * $this->realUserCount * $coefficient * ($battleScore / $teamScore);
}
}
@ -212,15 +206,18 @@ class RoomBattleDataService extends BaseService {
$computeMaxEffect = mt\Parameter::getVal('economy_account_compute_E',0);
$gold = $gold * ($totalCompute / ($totalCompute + $computeParam) * $computeMaxEffect + 1);
}
if ($userDb['account_id'] == "6513_2006_wzXEMuD5cXc68z0K20yTUIPY1U6GcLJo"){
if ($userDb['account_id'] == "6513_2006_ZsmnBnmQYcJ4XElLOmqTDBRySOrE66Kj"){
error_log("BattleRewardsInfo:".json_encode(array(
'goldLootIndex' => $rewardMeta['goldLoot'],
'map_mode' => $this->mapMode,
'*baseGold*' => $baseGold,
'teamRank' => $teamRank,
'*ranking*' => isset($coefficient) ? $coefficient : '空',
'battleScore' => $battleScore,
'roomScoreAvg' => $this->scoreAvg,
'*score*' => isset($avg) ? $avg : '空',
'realUserCount' => $this->realUserCount,
'teamScoreTotal' => $teamScore,
'teamScoreAvg' => $teamScoreAvg,
'*score*' => '=========',
'wealthK' => $wealthK,
'wealthE' => $wealthE,
'wealthValue' => Hero::getHeroWealth($heroDb),