加速悬赏消耗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',
|
'name': 'boostOfferRewardMission',
|
||||||
'desc': '加速悬赏任务',
|
'desc': '加速悬赏任务',
|
||||||
'group': 'Mission',
|
'group': 'Mission',
|
||||||
|
@ -16,6 +16,7 @@ require_once('services/AwardService.php');
|
|||||||
require_once('services/PropertyChgService.php');
|
require_once('services/PropertyChgService.php');
|
||||||
require_once('services/SeasonService.php');
|
require_once('services/SeasonService.php');
|
||||||
require_once('services/MissionService.php');
|
require_once('services/MissionService.php');
|
||||||
|
require_once('services/FormulaService.php');
|
||||||
|
|
||||||
use phpcommon\SqlHelper;
|
use phpcommon\SqlHelper;
|
||||||
use models\User;
|
use models\User;
|
||||||
@ -252,6 +253,7 @@ class MissionController extends BaseAuthedController {
|
|||||||
|
|
||||||
public function offerRewardMissionPreview()
|
public function offerRewardMissionPreview()
|
||||||
{
|
{
|
||||||
|
|
||||||
$missionId = getReqVal('mission_id', 0);
|
$missionId = getReqVal('mission_id', 0);
|
||||||
$this->missionService->offerRewardMissionPreview(
|
$this->missionService->offerRewardMissionPreview(
|
||||||
$missionId
|
$missionId
|
||||||
@ -266,6 +268,37 @@ class MissionController extends BaseAuthedController {
|
|||||||
$this->propertyChgService);
|
$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()
|
public function boostOfferRewardMission()
|
||||||
{
|
{
|
||||||
$missionId = getReqVal('mission_id', 0);
|
$missionId = getReqVal('mission_id', 0);
|
||||||
|
@ -348,6 +348,11 @@ class FormulaService extends BaseService {
|
|||||||
return self::Hero_Max_CEG($heroDb)*0.05;
|
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上限值
|
//每天枪械NFT获得CEG上限值
|
||||||
public static function Weapon_Max_CEG($weaponDb){
|
public static function Weapon_Max_CEG($weaponDb){
|
||||||
|
@ -12,6 +12,8 @@ require_once('models/BigData.php');
|
|||||||
require_once('models/Hero.php');
|
require_once('models/Hero.php');
|
||||||
require_once('models/Gun.php');
|
require_once('models/Gun.php');
|
||||||
|
|
||||||
|
require_once('services/FormulaService.php');
|
||||||
|
|
||||||
use phpcommon\SqlHelper;
|
use phpcommon\SqlHelper;
|
||||||
use mt;
|
use mt;
|
||||||
use models\User;
|
use models\User;
|
||||||
@ -636,10 +638,16 @@ class MissionService extends BaseService {
|
|||||||
}
|
}
|
||||||
$missionDto['objects'] = $mission['objects'];
|
$missionDto['objects'] = $mission['objects'];
|
||||||
$missionDto['ceg_num'] = $this->calcCegPreview($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)
|
public function sendOfferRewardMission($missionId, $propertyChgService)
|
||||||
{
|
{
|
||||||
$missionMeta = mt\Task::get($missionId);
|
$missionMeta = mt\Task::get($missionId);
|
||||||
@ -848,18 +856,23 @@ class MissionService extends BaseService {
|
|||||||
return;
|
return;
|
||||||
}*/
|
}*/
|
||||||
$missionMeta = mt\Task::get($missionId);
|
$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) {
|
if (!$missionMeta) {
|
||||||
myself()->_rspErr(1, 'mission_id parameter error3');
|
myself()->_rspErr(1, 'mission_id parameter error3');
|
||||||
return;
|
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');
|
myself()->_rspErr(2, 'ceg not enough');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
myself()->_decItems(array(
|
myself()->_decItems(array(
|
||||||
array(
|
array(
|
||||||
'item_id' => V_ITEM_GOLD,
|
'item_id' => V_ITEM_GOLD,
|
||||||
'item_num' => $missionMeta['boost']
|
'item_num' => $boost_ceg
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
$dropMeta = mt\Drop::get($missionMeta['reward']);
|
$dropMeta = mt\Drop::get($missionMeta['reward']);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user