1
This commit is contained in:
parent
4d7637e575
commit
43a916c235
@ -500,40 +500,22 @@ class BattleDataService extends BaseService {
|
||||
$heroFragmentNum = FragmentPool::getHeroNum();
|
||||
$gunFragmentNum = FragmentPool::getGunNum();
|
||||
|
||||
$rankedTopX= getXVal($params, 'ranked_topx');
|
||||
$meta = mt\FormulaPvp::getByRanked($rankedTopX);
|
||||
if (!$meta) {
|
||||
return;
|
||||
}
|
||||
|
||||
$heroProbability = min($heroFragmentNum / $onlineNum *
|
||||
5 *
|
||||
(
|
||||
0.5*$meta['ranked_topx'] +
|
||||
0.25*$meta['kills_topx'] +
|
||||
0.15*$meta['hero_topx'] +
|
||||
0.05*$meta['weapon_topx']
|
||||
) *
|
||||
pow(2, ($todayPvpBattleTimes % 10) - 1), 1);
|
||||
$gunProbability = min($gunFragmentNum / $onlineNum *
|
||||
5 *
|
||||
(
|
||||
0.5*$meta['ranked_topx'] +
|
||||
0.25*$meta['kills_topx'] +
|
||||
0.15*$meta['hero_topx'] +
|
||||
0.05*$meta['weapon_topx']
|
||||
) *
|
||||
pow(2, ($todayPvpBattleTimes % 10) - 1), 1);
|
||||
$heroProbability = FormulaService::calcHeroFragmentProbabilityPvp
|
||||
($_REQUEST,
|
||||
$onlineNum,
|
||||
$heroFragmentNum,
|
||||
$todayPvpBattleTimes);
|
||||
$gunProbability = FormulaService::calcGunFragmentProbabilityPvp
|
||||
($_REQUEST,
|
||||
$onlineNum,
|
||||
$gunFragmentNum,
|
||||
$todayPvpBattleTimes);
|
||||
|
||||
$heroProbability = max($heroProbability, 0);
|
||||
$gunProbability = max($gunProbability, 0);
|
||||
$emptyProbability = max(1 - $heroProbability - $gunProbability, 0);
|
||||
|
||||
$dropIdx = $this->randWeight(array($heroProbability, $gunProbability, $emptyProbability));
|
||||
if ($dropIdx < 0 || $dropIdx == 2) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($dropIdx == 0) {
|
||||
$itemId = FragmentPool::dropHero();
|
||||
if ($itemId) {
|
||||
|
@ -20,7 +20,7 @@ class FormulaService extends BaseService {
|
||||
$kills = getXVal($params, 'kills');
|
||||
$aliveTime = getXVal($params, 'alive_time');
|
||||
|
||||
$rankedTopX= getXVal($params, 'ranked_topx');
|
||||
$rankedTopX = getXVal($params, 'ranked_topx');
|
||||
$killsTopX = getXVal($params, 'kills_topx');
|
||||
$heroTopX = getXVal($params, 'hero_topx');
|
||||
$weaponTopX = getXVal($params, 'weapon_topx');
|
||||
@ -96,6 +96,56 @@ class FormulaService extends BaseService {
|
||||
return round(ceg);
|
||||
}
|
||||
|
||||
public static function calcHeroFragmentProbabilityPvp($params,
|
||||
$onlineNum,
|
||||
$heroFragmentNum,
|
||||
$todayPvpBattleTimes)
|
||||
{
|
||||
$rankedTopX = getXVal($params, 'ranked_topx');
|
||||
$killsTopX = getXVal($params, 'kills_topx');
|
||||
$heroTopX = getXVal($params, 'hero_topx');
|
||||
$weaponTopX = getXVal($params, 'weapon_topx');
|
||||
$meta = mt\FormulaPvp::getByRanked($rankedTopX);
|
||||
if (!$meta) {
|
||||
return 0;
|
||||
}
|
||||
$heroProbability = min($heroFragmentNum / $onlineNum *
|
||||
5 *
|
||||
(
|
||||
0.5 * $rankedTopX * $meta['ranked_topx'] +
|
||||
0.25 * $killsTopX * $meta['kills_topx'] +
|
||||
0.15 * $heroTopX * $meta['hero_topx'] +
|
||||
0.05 * $weaponTopX * $meta['weapon_topx']
|
||||
) *
|
||||
pow(2, ($todayPvpBattleTimes % 10) - 1), 1);
|
||||
return $heroProbability;
|
||||
}
|
||||
|
||||
public static function calcWeaponFragmentProbabilityPvp($params,
|
||||
$onlineNum,
|
||||
$weaponFragmentNum,
|
||||
$todayPvpBattleTimes)
|
||||
{
|
||||
$rankedTopX = getXVal($params, 'ranked_topx');
|
||||
$killsTopX = getXVal($params, 'kills_topx');
|
||||
$heroTopX = getXVal($params, 'hero_topx');
|
||||
$weaponTopX = getXVal($params, 'weapon_topx');
|
||||
$meta = mt\FormulaPvp::getByRanked($rankedTopX);
|
||||
if (!$meta) {
|
||||
return 0;
|
||||
}
|
||||
$weaponProbability = min($FragmentNum / $onlineNum *
|
||||
5 *
|
||||
(
|
||||
0.5 * $rankedTopX * $meta['ranked_topx'] +
|
||||
0.25 * $killsTopX * $meta['kills_topx'] +
|
||||
0.15 * $heroTopX * $meta['hero_topx'] +
|
||||
0.05 * $weaponTopX * $meta['weapon_topx']
|
||||
) *
|
||||
pow(2, ($todayPvpBattleTimes % 10) - 1), 1);
|
||||
return $weaponProbability;
|
||||
}
|
||||
|
||||
public static function getHeroPvpTiliTotalValue($heroDb)
|
||||
{
|
||||
//ROUND((0.0241*角色NFT阶数^3-0.5675*角色NFT阶数^2+7.1798*角色NFT阶数+2.4114)+(0.0161*角色幸运值^3-1.2943*角色幸运值^2+36.5664*角色幸运值-336.144),0)+系统参数
|
||||
|
Loading…
x
Reference in New Issue
Block a user