1
This commit is contained in:
parent
bfc1a57ea8
commit
93a100e893
@ -235,14 +235,17 @@ class BattleController extends BaseAuthedController {
|
|||||||
$roomBattleDataService->maxAlive = max($roomBattleDataService->maxAlive,$aliveTime);
|
$roomBattleDataService->maxAlive = max($roomBattleDataService->maxAlive,$aliveTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$totalScore = 0;
|
$realUserNum = 0;
|
||||||
$totalNum = 0;
|
if ($roomBattleDataService->mapMode == mt\MapMode::BET_MODE){
|
||||||
foreach ($input["team_list"] as $teamData){
|
foreach ($input["team_list"] as $teamData){
|
||||||
$roomBattleDataService->teamData = $teamData;
|
foreach ($teamData['members'] as $member){
|
||||||
$roomBattleDataService->calTotalBattleScore($totalScore,$totalNum);
|
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){
|
foreach ($input["team_list"] as $teamData){
|
||||||
$battle_uuid = getXVal($teamData,'battle_uuid', 0);
|
$battle_uuid = getXVal($teamData,'battle_uuid', 0);
|
||||||
$battleSettlementDb = BattleSettlement::findTeam($battle_uuid,$room_uuid);
|
$battleSettlementDb = BattleSettlement::findTeam($battle_uuid,$room_uuid);
|
||||||
|
@ -34,30 +34,20 @@ class RoomBattleDataService extends BaseService {
|
|||||||
public $maxRecover= 0;
|
public $maxRecover= 0;
|
||||||
public $maxLevel= 0;
|
public $maxLevel= 0;
|
||||||
public $maxAlive= 0;
|
public $maxAlive= 0;
|
||||||
public $scoreAvg= 0;
|
public $realUserCount= 0;
|
||||||
public $logData = array();
|
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(){
|
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);
|
// $paramMeta = mt\Parameter::getVal('performance_score_range',0);
|
||||||
// $scoreParam = explode("|",$paramMeta);
|
// $scoreParam = explode("|",$paramMeta);
|
||||||
// if (count($paramMeta) < 2){
|
// if (count($paramMeta) < 2){
|
||||||
@ -133,7 +123,7 @@ class RoomBattleDataService extends BaseService {
|
|||||||
$userDb = myself()->_getOrmUserInfo();
|
$userDb = myself()->_getOrmUserInfo();
|
||||||
$heroDb = Hero::find(getXVal($member,'hero_uniid', 0));
|
$heroDb = Hero::find(getXVal($member,'hero_uniid', 0));
|
||||||
if ($userDb && $heroDb){
|
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);
|
myself()->_addItems($member['reward'], $awardService,$propertyChgService);
|
||||||
|
|
||||||
$battleSingleDb = BattleSettlement::findSingle($this->battleSettlementDb['battle_uuid']);
|
$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);
|
$mapModeMeta = mt\MapMode::findByMapMode($this->mapMode);
|
||||||
$teamRank = getXVal($this->teamData,'pvp_team_rank', 0);
|
$teamRank = getXVal($this->teamData,'pvp_team_rank', 0);
|
||||||
if ($mapModeMeta){
|
if ($mapModeMeta){
|
||||||
@ -191,8 +181,12 @@ class RoomBattleDataService extends BaseService {
|
|||||||
// $strArr = explode("|",$rewardMeta['goldParam']);
|
// $strArr = explode("|",$rewardMeta['goldParam']);
|
||||||
$coefficientArr = explode(";",$rewardMeta['goldParam']);
|
$coefficientArr = explode(";",$rewardMeta['goldParam']);
|
||||||
$coefficient = isset($coefficientArr[$teamRank-1]) ? $coefficientArr[$teamRank-1] : 0;
|
$coefficient = isset($coefficientArr[$teamRank-1]) ? $coefficientArr[$teamRank-1] : 0;
|
||||||
$avg = $this->scoreAvg > 0 ? $battleScore / $this->scoreAvg : 0;
|
if ($this->mapMode == mt\MapMode::GOLD_MODE){
|
||||||
$gold = $gold * $coefficient * $avg;
|
$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);
|
$computeMaxEffect = mt\Parameter::getVal('economy_account_compute_E',0);
|
||||||
$gold = $gold * ($totalCompute / ($totalCompute + $computeParam) * $computeMaxEffect + 1);
|
$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(
|
error_log("BattleRewardsInfo:".json_encode(array(
|
||||||
'goldLootIndex' => $rewardMeta['goldLoot'],
|
'goldLootIndex' => $rewardMeta['goldLoot'],
|
||||||
|
'map_mode' => $this->mapMode,
|
||||||
'*baseGold*' => $baseGold,
|
'*baseGold*' => $baseGold,
|
||||||
'teamRank' => $teamRank,
|
'teamRank' => $teamRank,
|
||||||
'*ranking*' => isset($coefficient) ? $coefficient : '空',
|
'*ranking*' => isset($coefficient) ? $coefficient : '空',
|
||||||
'battleScore' => $battleScore,
|
'battleScore' => $battleScore,
|
||||||
'roomScoreAvg' => $this->scoreAvg,
|
'realUserCount' => $this->realUserCount,
|
||||||
'*score*' => isset($avg) ? $avg : '空',
|
'teamScoreTotal' => $teamScore,
|
||||||
|
'teamScoreAvg' => $teamScoreAvg,
|
||||||
|
'*score*' => '=========',
|
||||||
'wealthK' => $wealthK,
|
'wealthK' => $wealthK,
|
||||||
'wealthE' => $wealthE,
|
'wealthE' => $wealthE,
|
||||||
'wealthValue' => Hero::getHeroWealth($heroDb),
|
'wealthValue' => Hero::getHeroWealth($heroDb),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user