1
This commit is contained in:
parent
bfc1a57ea8
commit
93a100e893
@ -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);
|
||||
|
@ -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),
|
||||
|
Loading…
x
Reference in New Issue
Block a user