pvp 公式

This commit is contained in:
hujiabin 2022-09-30 11:46:28 +08:00
parent 5c23fcf3d1
commit 38030d862f
2 changed files with 29 additions and 31 deletions

View File

@ -523,13 +523,14 @@ class BattleDataService extends BaseService {
$ranked = getReqVal('ranked', 0); $ranked = getReqVal('ranked', 0);
$kills = getReqVal('kills', 0); $kills = getReqVal('kills', 0);
$aliveTime = getReqVal('alive_time', 0); $aliveTime = getReqVal('alive_time', 0);
$cond = (1 - ($ranked >= 30 ? 1 : 0)) * $cond = (1 - ($ranked > 30 ? 1 : 0) *
($kills >= 1 ? 1 : 0) * ($kills < 1 ? 1 : 0) *
($aliveTime >= 30 ? 1 : 0); ($aliveTime < 30 ? 1 : 0));
if (!$cond) { if (!$cond) {
return; return;
} }
} }
//print_r($this->reward);die;
$todayPveGetFragmentNum = myself()->_getDailyV(TN_DAILY_PVE_GET_FRAGMENT_NUM, 0); $todayPveGetFragmentNum = myself()->_getDailyV(TN_DAILY_PVE_GET_FRAGMENT_NUM, 0);
$todayPvpGetFragmentNum = myself()->_getDailyV(TN_DAILY_PVP_GET_FRAGMENT_NUM, 0); $todayPvpGetFragmentNum = myself()->_getDailyV(TN_DAILY_PVP_GET_FRAGMENT_NUM, 0);
@ -620,9 +621,9 @@ class BattleDataService extends BaseService {
'match_mode' => getReqVal('match_mode', 0), 'match_mode' => getReqVal('match_mode', 0),
'room_uuid' => getReqVal('room_uuid', 0), 'room_uuid' => getReqVal('room_uuid', 0),
]; ];
$cond = (1 - ($ranked > 30 ? 1 : 0)) * $cond = (1 - ($ranked > 30 ? 1 : 0) *
($kills < 1 ? 1 : 0) * ($kills < 1 ? 1 : 0) *
($aliveTime < 30 ? 1 : 0); ($aliveTime < 30 ? 1 : 0));
if (!$cond) { if (!$cond) {
return; return;
} }

View File

@ -38,10 +38,7 @@ class FormulaService extends BaseService {
(0.15 * $meta_heroTopX) + (0.15 * $meta_heroTopX) +
(0.05 * $meta_weaponTopX) + (0.05 * $meta_weaponTopX) +
(0.05 * $meta_survivalTopX) (0.05 * $meta_survivalTopX)
) * );
(1 - ($ranked > 30 ? 1 : 0)) *
($kills < 1 ? 1 : 0) *
($aliveTime < 30 ? 1 : 0);
return cegFormat(($ceg)); return cegFormat(($ceg));
} }
@ -93,10 +90,7 @@ class FormulaService extends BaseService {
(0.15 * $meta_heroTopX) + (0.15 * $meta_heroTopX) +
(0.05 * $meta_weaponTopX) + (0.05 * $meta_weaponTopX) +
(0.05 * $meta_survivalTopX) (0.05 * $meta_survivalTopX)
) * ) ;
(1 - ($ranked > 30 ? 1 : 0)) *
($kills < 1 ? 1 : 0) *
($aliveTime < 30 ? 1 : 0);
return cegFormat(($ceg)); return cegFormat(($ceg));
} }
@ -123,18 +117,20 @@ class FormulaService extends BaseService {
$heroTopX = getXVal($params, 'hero_topx'); $heroTopX = getXVal($params, 'hero_topx');
$weaponTopX = getXVal($params, 'weapon_topx'); $weaponTopX = getXVal($params, 'weapon_topx');
$survivalTopX = getXVal($params, 'survival_topx'); $survivalTopX = getXVal($params, 'survival_topx');
$meta = mt\FormulaPvp::getByRanked($rankedTopX);
if (!$meta) { $meta_rankedTopX = mt\FormulaPvp::getByRanked($rankedTopX)?mt\FormulaPvp::getByRanked($rankedTopX)['ranked_topx']:0;
return 0; $meta_killsTopX = mt\FormulaPvp::getByRanked($killsTopX)?mt\FormulaPvp::getByRanked($killsTopX)['kills_topx']:0;
} $meta_heroTopX = mt\FormulaPvp::getByRanked($heroTopX)?mt\FormulaPvp::getByRanked($heroTopX)['hero_topx']:0;
$meta_weaponTopX = mt\FormulaPvp::getByRanked($weaponTopX)?mt\FormulaPvp::getByRanked($weaponTopX)['weapon_topx']:0;
$meta_survivalTopX = mt\FormulaPvp::getByRanked($survivalTopX)?mt\FormulaPvp::getByRanked($survivalTopX)['survival_topx']:0;
$heroProbability = min($heroFragmentNum / $onlineNum * $heroProbability = min($heroFragmentNum / $onlineNum *
5 * 5 *
( (
0.5 * $rankedTopX * $meta['ranked_topx'] + 0.5 * $meta_rankedTopX +
0.25 * $killsTopX * $meta['kills_topx'] + 0.25 * $meta_killsTopX +
0.15 * $heroTopX * $meta['hero_topx'] + 0.15 * $meta_heroTopX +
0.05 * $weaponTopX * $meta['weapon_topx'] + 0.05 * $meta_weaponTopX +
0.05 * $survivalTopX * $meta['survival_topx'] 0.05 * $meta_survivalTopX
) * ) *
pow(2, ($todayPvpBattleTimes % 10) - 1), 1); pow(2, ($todayPvpBattleTimes % 10) - 1), 1);
return max(0, $heroProbability); return max(0, $heroProbability);
@ -150,18 +146,19 @@ class FormulaService extends BaseService {
$heroTopX = getXVal($params, 'hero_topx'); $heroTopX = getXVal($params, 'hero_topx');
$weaponTopX = getXVal($params, 'weapon_topx'); $weaponTopX = getXVal($params, 'weapon_topx');
$survivalTopX = getXVal($params, 'survival_topx'); $survivalTopX = getXVal($params, 'survival_topx');
$meta = mt\FormulaPvp::getByRanked($rankedTopX); $meta_rankedTopX = mt\FormulaPvp::getByRanked($rankedTopX)?mt\FormulaPvp::getByRanked($rankedTopX)['ranked_topx']:0;
if (!$meta) { $meta_killsTopX = mt\FormulaPvp::getByRanked($killsTopX)?mt\FormulaPvp::getByRanked($killsTopX)['kills_topx']:0;
return 0; $meta_heroTopX = mt\FormulaPvp::getByRanked($heroTopX)?mt\FormulaPvp::getByRanked($heroTopX)['hero_topx']:0;
} $meta_weaponTopX = mt\FormulaPvp::getByRanked($weaponTopX)?mt\FormulaPvp::getByRanked($weaponTopX)['weapon_topx']:0;
$meta_survivalTopX = mt\FormulaPvp::getByRanked($survivalTopX)?mt\FormulaPvp::getByRanked($survivalTopX)['survival_topx']:0;
$weaponProbability = min($weaponFragmentNum / $onlineNum * $weaponProbability = min($weaponFragmentNum / $onlineNum *
5 * 5 *
( (
0.5 * $rankedTopX * $meta['ranked_topx'] + 0.5 * $meta_rankedTopX +
0.25 * $killsTopX * $meta['kills_topx'] + 0.25 * $meta_killsTopX +
0.15 * $heroTopX * $meta['hero_topx'] + 0.15 * $meta_heroTopX +
0.05 * $weaponTopX * $meta['weapon_topx'] + 0.05 * $meta_weaponTopX +
0.05 * $survivalTopX * $meta['survival_topx'] 0.05 * $meta_survivalTopX
) * ) *
pow(2, ($todayPvpBattleTimes % 10) - 1), 1); pow(2, ($todayPvpBattleTimes % 10) - 1), 1);
return max(0, $weaponProbability); return max(0, $weaponProbability);