This commit is contained in:
aozhiwei 2022-05-25 23:20:56 +08:00
parent 5cf43a7e50
commit 0b7ce1e64f
2 changed files with 54 additions and 7 deletions

View File

@ -11,6 +11,18 @@ class FormulaPvp {
return array_key_exists($id, self::getMetaList()) ? self::getMetaList()[$id] : null;
}
public static function getByRanked($rankedTopX)
{
$lastMeta = null;
foreach (self::getMetaList() as $meta) {
$lastMeta = $meta;
if ($rankedTopX <= $meta['top']) {
return $meta;
}
}
return $lastMeta;
}
protected static function getMetaList()
{
if (!self::$metaList) {

View File

@ -2,6 +2,10 @@
namespace services;
require_once('mt/FormulaPvp.php');
use mt;
class FormulaService extends BaseService {
public static function getHeroPvpDailyCegUpLimit($heroDb)
@ -18,12 +22,24 @@ class FormulaService extends BaseService {
{
//PVP角色NFT每日获得极限*(50%*[每局排名TopX%对应比例]+25%*[每局PK人数排名TopX%对应比例]+15%*[每局英雄属性排名TopX%对应比例]+5%*[每局武器属性排名TopX%对应比例]+5%*[每局存活时间排名TopX%对应比例])
$upLimit = getXVal($params, 'uplimit');
$ranked = getXVal($params, 'ranked');
$killsRanked = getXVal($params, 'kills_ranked');
$heroRanked = getXVal($params, 'hero_ranked');
$weaponRanked = getXVal($params, 'weapon_ranked');
$aliveRanked = getXVal($params, 'alive_ranked');
return 0;
$rankedTopX= getXVal($params, 'ranked_topx');
$killsTopX = getXVal($params, 'kills_topx');
$heroTopX = getXVal($params, 'hero_topx');
$weaponTopX = getXVal($params, 'weapon_topx');
$survivalTopX = getXVal($params, 'survival_topx');
$meta = mt\FormulaPvp::getByRanked($rankedTopX);
if (!$meta) {
return 0;
}
$ceg = $upLimit *
(
(0.5 * $rankedTopx * $meta['ranked_topx']) +
(0.25 * $killsTopx * $meta['kills_topx']) +
(0.15 * $killsTopx * $meta['hero_topx']) +
(0.5 * $weaponTopx * $meta['weapon_topx']) +
(0.5 * $survivalTopx * $meta['survival_topx'])
);
return $ceg;
}
public static function calcHeroPveCeg($heroDb, $uplimit)
@ -43,7 +59,26 @@ class FormulaService extends BaseService {
public static function calcWeaponPvpCeg($weaponDb)
{
return 0;
//PVP武器NFT每日获得极限*(50%*[每局排名TopX%对应比例]+25%*[每局PK人数排名TopX%对应比例]+15%*[每局英雄属性排名TopX%对应比例]+5%*[每局武器属性排名TopX%对应比例]+5%*[每局存活时间排名TopX%对应比例])
$upLimit = getXVal($params, 'uplimit');
$rankedTopX= getXVal($params, 'ranked_topx');
$killsTopX = getXVal($params, 'kills_topx');
$heroTopX = getXVal($params, 'hero_topx');
$weaponTopX = getXVal($params, 'weapon_topx');
$survivalTopX = getXVal($params, 'survival_topx');
$meta = mt\FormulaPvp::getByRanked($rankedTopX);
if (!$meta) {
return 0;
}
$ceg = $upLimit *
(
(0.5 * $rankedTopx * $meta['ranked_topx']) +
(0.25 * $killsTopx * $meta['kills_topx']) +
(0.15 * $killsTopx * $meta['hero_topx']) +
(0.5 * $weaponTopx * $meta['weapon_topx']) +
(0.5 * $survivalTopx * $meta['survival_topx'])
);
return $ceg;
}
public static function calcWeaponPveCeg($weaponDb)