加速悬赏消耗ceg
This commit is contained in:
parent
4bc86be9bd
commit
4d0b73ff0d
@ -56,6 +56,19 @@ class Mission(object):
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': 'boostOfferRewardMissionPreview',
|
||||
'desc': '加速悬赏任务',
|
||||
'group': 'Mission',
|
||||
'url': 'webapp/index.php?c=Mission&a=boostOfferRewardMissionPreview',
|
||||
'params': [
|
||||
_common.ReqHead(),
|
||||
['mission_id', 0, '任务id'],
|
||||
],
|
||||
'response': [
|
||||
_common.RspHead(),
|
||||
['boost_chg', 0, '加速所需ceg'],
|
||||
]
|
||||
},{
|
||||
'name': 'boostOfferRewardMission',
|
||||
'desc': '加速悬赏任务',
|
||||
'group': 'Mission',
|
||||
|
@ -16,6 +16,7 @@ require_once('services/AwardService.php');
|
||||
require_once('services/PropertyChgService.php');
|
||||
require_once('services/SeasonService.php');
|
||||
require_once('services/MissionService.php');
|
||||
require_once('services/FormulaService.php');
|
||||
|
||||
use phpcommon\SqlHelper;
|
||||
use models\User;
|
||||
@ -252,6 +253,7 @@ class MissionController extends BaseAuthedController {
|
||||
|
||||
public function offerRewardMissionPreview()
|
||||
{
|
||||
|
||||
$missionId = getReqVal('mission_id', 0);
|
||||
$this->missionService->offerRewardMissionPreview(
|
||||
$missionId
|
||||
@ -266,6 +268,37 @@ class MissionController extends BaseAuthedController {
|
||||
$this->propertyChgService);
|
||||
}
|
||||
|
||||
public function boostOfferRewardMissionPreview(){
|
||||
$missionId = getReqVal('mission_id', 0);
|
||||
$missionMeta = mt\Task::get($missionId);
|
||||
if (!$missionMeta) {
|
||||
$this->_rspErr(1, 'mission_id parameter error');
|
||||
return;
|
||||
}
|
||||
//
|
||||
if ($missionMeta['type'] == mt\Task::DAILY_MISSON_TYPE &&
|
||||
$missionMeta['subtype'] == mt\Task::WEAKLY_ACTIVE_VALUE_MISSON_SUBTYPE) {
|
||||
error_log(2);
|
||||
return;
|
||||
}
|
||||
//
|
||||
$missionDb = Mission::find($missionId);
|
||||
$missionDto = $this->missionService->getMissionDto(
|
||||
$this->userInfo, $this->seasonDb, $missionDb, $missionMeta);
|
||||
if (!$missionDto) {
|
||||
$this->_rspErr(10, 'server internal error');
|
||||
return;
|
||||
}
|
||||
if ($missionDto['lefttime']<=0){
|
||||
$this->_rspErr(1, "Don't need to accelerate");
|
||||
return;
|
||||
}
|
||||
$boost_ceg = \services\FormulaService::calcBoostMissionCeg($missionDto['ceg_num'],$missionDto['lefttime'],$missionMeta['time']);
|
||||
$this->_rspData(array(
|
||||
'boost_chg' => $boost_ceg
|
||||
));
|
||||
}
|
||||
|
||||
public function boostOfferRewardMission()
|
||||
{
|
||||
$missionId = getReqVal('mission_id', 0);
|
||||
|
@ -348,6 +348,11 @@ class FormulaService extends BaseService {
|
||||
return self::Hero_Max_CEG($heroDb)*0.05;
|
||||
}
|
||||
|
||||
//悬赏加速所需CEG
|
||||
public static function calcBoostMissionCeg($ceg,$time,$timeSum){
|
||||
//悬赏加速所需CEG=MAX(ROUND(10%*当次悬赏任务获得CEG*当次已悬赏时间/当次悬赏所需时间,2),0.01)
|
||||
return max(round(0.1*$ceg*$time/$timeSum,2),0.01);
|
||||
}
|
||||
|
||||
//每天枪械NFT获得CEG上限值
|
||||
public static function Weapon_Max_CEG($weaponDb){
|
||||
|
@ -12,6 +12,8 @@ require_once('models/BigData.php');
|
||||
require_once('models/Hero.php');
|
||||
require_once('models/Gun.php');
|
||||
|
||||
require_once('services/FormulaService.php');
|
||||
|
||||
use phpcommon\SqlHelper;
|
||||
use mt;
|
||||
use models\User;
|
||||
@ -636,10 +638,16 @@ class MissionService extends BaseService {
|
||||
}
|
||||
$missionDto['objects'] = $mission['objects'];
|
||||
$missionDto['ceg_num'] = $this->calcCegPreview($mission['objects']);
|
||||
// $missionDto['boost_ceg_num'] = $this->calcBoostCeg($missionDto['ceg_num'],$missionDto['lefttime'],$missionMeta['time']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function calcBoostCeg($ceg,$time,$timeSum){
|
||||
//悬赏加速所需CEG=MAX(ROUND(10%*当次悬赏任务获得CEG*当次已悬赏时间/当次悬赏所需时间,2),0.01)
|
||||
return max(round(0.1*$ceg*$time/$timeSum,2),0.01);
|
||||
}
|
||||
|
||||
public function sendOfferRewardMission($missionId, $propertyChgService)
|
||||
{
|
||||
$missionMeta = mt\Task::get($missionId);
|
||||
@ -848,18 +856,23 @@ class MissionService extends BaseService {
|
||||
return;
|
||||
}*/
|
||||
$missionMeta = mt\Task::get($missionId);
|
||||
$missionDb = Mission::find($missionId);
|
||||
$missionDto = $this->getMissionDto(
|
||||
$this->userInfo, $this->seasonDb, $missionDb, $missionMeta);
|
||||
$boost_ceg = \services\FormulaService::calcBoostMissionCeg($missionDto['ceg_num'],$missionDto['lefttime'],$missionMeta['time']);
|
||||
if (!$missionMeta) {
|
||||
myself()->_rspErr(1, 'mission_id parameter error3');
|
||||
return;
|
||||
}
|
||||
if (myself()->_getItemCount(V_ITEM_GOLD, $this->userInfo) < $missionMeta['boost']){
|
||||
if (myself()->_getItemCount(V_ITEM_GOLD, $this->userInfo) < $boost_ceg){
|
||||
myself()->_rspErr(2, 'ceg not enough');
|
||||
return;
|
||||
}
|
||||
|
||||
myself()->_decItems(array(
|
||||
array(
|
||||
'item_id' => V_ITEM_GOLD,
|
||||
'item_num' => $missionMeta['boost']
|
||||
'item_num' => $boost_ceg
|
||||
)
|
||||
));
|
||||
$dropMeta = mt\Drop::get($missionMeta['reward']);
|
||||
|
Loading…
x
Reference in New Issue
Block a user