修改 pvp 公式
This commit is contained in:
parent
46f3295980
commit
5c23fcf3d1
@ -29,7 +29,7 @@ class Battle(object):
|
|||||||
'params': [
|
'params': [
|
||||||
_common.ReqHead(),
|
_common.ReqHead(),
|
||||||
['battle_uniid', '', 'battle_uuid'],
|
['battle_uniid', '', 'battle_uuid'],
|
||||||
['match_mode', 0, '0: 匹配赛模式 1: 排位赛 3: pve'],
|
['match_mode', 0, '0: 匹配赛模式 1: 排位赛 2: pve'],
|
||||||
['pve_instance_id', 0, 'pve副本id'],
|
['pve_instance_id', 0, 'pve副本id'],
|
||||||
['pve_instance_mode', 0, 'pve副本mode'],
|
['pve_instance_mode', 0, 'pve副本mode'],
|
||||||
['is_valid_battle', 0, 'is_valid_battle'],
|
['is_valid_battle', 0, 'is_valid_battle'],
|
||||||
|
@ -620,9 +620,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;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ class FormulaService extends BaseService {
|
|||||||
|
|
||||||
public static function calcHeroPvpCeg($heroDto, $params)
|
public static function calcHeroPvpCeg($heroDto, $params)
|
||||||
{
|
{
|
||||||
//PVP角色NFT每日获得极限*(50%*[每局排名TopX%对应比例]+25%*[每局PK人数排名TopX%对应比例]+15%*[每局英雄属性排名TopX%对应比例]+5%*[每局武器属性排名TopX%对应比例]+5%*[每局存活时间排名TopX%对应比例])
|
//每局实际收益=10%PVP收益*5*(50%*[每局排名TopX%对应比例]+25%*[每局PK人数排名TopX%对应比例]+15%*[每局英雄属性排名TopX%对应比例]+5%*[每局武器属性排名TopX%对应比例]+5%*[每局存活时间排名TopX%对应比例])
|
||||||
$upLimit = $heroDto['pvp_ceg_uplimit'];
|
$upLimit = $heroDto['pvp_ceg_uplimit'];
|
||||||
$ranked = getXVal($params, 'ranked');
|
$ranked = getXVal($params, 'ranked');
|
||||||
$kills = getXVal($params, 'kills');
|
$kills = getXVal($params, 'kills');
|
||||||
@ -25,21 +25,23 @@ 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;
|
||||||
$ceg = $upLimit *
|
$meta_survivalTopX = mt\FormulaPvp::getByRanked($survivalTopX)?mt\FormulaPvp::getByRanked($survivalTopX)['survival_topx']:0;
|
||||||
|
|
||||||
|
$ceg = 1/10*$upLimit * 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.5 * $weaponTopX * $meta['weapon_topx']) +
|
(0.05 * $meta_weaponTopX) +
|
||||||
(0.5 * $survivalTopX * $meta['survival_topx'])
|
(0.05 * $meta_survivalTopX)
|
||||||
) *
|
) *
|
||||||
(1 - ($ranked >= 30 ? 1 : 0)) *
|
(1 - ($ranked > 30 ? 1 : 0)) *
|
||||||
($kills >= 1 ? 1 : 0) *
|
($kills < 1 ? 1 : 0) *
|
||||||
($aliveTime >= 30 ? 1 : 0);
|
($aliveTime < 30 ? 1 : 0);
|
||||||
return cegFormat(($ceg));
|
return cegFormat(($ceg));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,22 +80,24 @@ 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;
|
||||||
$ceg = $upLimit *
|
$meta_survivalTopX = mt\FormulaPvp::getByRanked($survivalTopX)?mt\FormulaPvp::getByRanked($survivalTopX)['survival_topx']:0;
|
||||||
(
|
|
||||||
(0.5 * $rankedTopX * $meta['ranked_topx']) +
|
$ceg = 1/10*$upLimit * 5 *
|
||||||
(0.25 * $killsTopX * $meta['kills_topx']) +
|
(
|
||||||
(0.15 * $heroTopX * $meta['hero_topx']) +
|
(0.5 * $meta_rankedTopX) +
|
||||||
(0.5 * $weaponTopX * $meta['weapon_topx']) +
|
(0.25 * $meta_killsTopX) +
|
||||||
(0.5 * $survivalTopX * $meta['survival_topx'])
|
(0.15 * $meta_heroTopX) +
|
||||||
) *
|
(0.05 * $meta_weaponTopX) +
|
||||||
(1 - ($ranked >= 30 ? 1 : 0)) *
|
(0.05 * $meta_survivalTopX)
|
||||||
($kills >= 1 ? 1 : 0) *
|
) *
|
||||||
($aliveTime >= 30 ? 1 : 0);
|
(1 - ($ranked > 30 ? 1 : 0)) *
|
||||||
return cegFormat($ceg);
|
($kills < 1 ? 1 : 0) *
|
||||||
|
($aliveTime < 30 ? 1 : 0);
|
||||||
|
return cegFormat(($ceg));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function calcWeaponPveCeg($weaponDto, $instanceLevel, $instanceRank, $bossReward)
|
public static function calcWeaponPveCeg($weaponDto, $instanceLevel, $instanceRank, $bossReward)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user