1
This commit is contained in:
parent
c0a87b34bf
commit
a1482b9c0e
@ -348,15 +348,18 @@ class FormulaService extends BaseService {
|
||||
//表现分=f(个人存活时间排名TopX/4)*50%+f(队伍排名TopY)*50% f(TopX) = ROUND(1-(X-1)/9,2)
|
||||
$expreScore = (ROUND(1-($ranked/4-1)/9,2))*0.5+ROUND(1-($teamRank-1)/9,2)*0.5;
|
||||
|
||||
$rankMeta = mt\Rank::getRankById($userDb['rank']);
|
||||
//不同段位的及格分 = ROUND(1-(大段位排名-1)/(MAX(10)-1),2)
|
||||
$topRanking = mt\Rank::getRankById($userDb['rank'])?mt\Rank::getRankById($userDb['rank'])['rank_order']:0; //************** rankRank 参数表获取 ************
|
||||
$topRanking = $rankMeta['rank_order']; //************** rankRank 参数表获取 ************
|
||||
$rankPint = mt\Parameter::getVal('rank_pass_point',0); //************** parameter 参数表获取 ************
|
||||
$rankPintArr = explode('|',$rankPint);
|
||||
$askedScore = $rankPintArr[$topRanking-1];
|
||||
//一个玩家的赛后积分 = 赛前积分+K*(胜负率-总胜率)+2K*(表现分-段位要求的及格分)
|
||||
//一个玩家的赛后积分 = 赛前积分+K/2*(MAX(胜负率-总胜率,0))+K*(表现分-段位要求的及格分) 新
|
||||
$K = mt\Parameter::getVal('rank_k',40); //************** parameter 参数表获取 ************
|
||||
$battleAfterScore = $userDb['score'] + $K/2 * max(($winRate-$winRateSum),0) + ($K) * ($expreScore-$askedScore);
|
||||
//一个玩家的赛后积分 = 赛前积分+K/2*(MAX(胜负率-总胜率,0))+K*(表现分-段位要求的及格分)
|
||||
//一个玩家的赛后积分 = 赛前积分+K/2*(MAX(胜负率-0.5,0))+K/2*(表现分-段位要求的及格分) 新
|
||||
$kArr = explode('|',mt\Parameter::getVal('rank_k',0)); //************** parameter 参数表获取 ************
|
||||
$K = $kArr[$rankMeta['rank_order2']-1];
|
||||
$battleAfterScore = $userDb['score'] + $K/2 * max(($winRate-0.5),0) + ($K/2) * ($expreScore-$askedScore);
|
||||
return round($battleAfterScore);
|
||||
}
|
||||
|
||||
@ -368,7 +371,9 @@ class FormulaService extends BaseService {
|
||||
$winRate = 1-($ranked-1)/($maxRanked-1);
|
||||
//总胜率=70%*P(个人ELO值-敌队平均ELO值)+30%*P(己队平均ELO值-敌队平均ELO值) --> P(D)=1/(1+10^(-D/400))
|
||||
$winRateSum = $winningPro;
|
||||
$K = mt\Parameter::getVal('rank_k',40); //************** parameter 参数表获取 ************
|
||||
$rankMeta = mt\Rank::getRankById($userDb['rank']);
|
||||
$kArr = explode('|',mt\Parameter::getVal('rank_k',0)); //************** parameter 参数表获取 ************
|
||||
$K = $kArr[$rankMeta['rank_order2']-1];
|
||||
return round(max($userDb['elo']+$K*($winRate-$winRateSum),150));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user