This commit is contained in:
aozhiwei 2021-12-13 13:56:16 +08:00
parent 4d9250eeee
commit 61e16b1776
4 changed files with 57 additions and 11 deletions

View File

@ -10,9 +10,29 @@ define('TEAMID_KEY', 'team_uuid:');
define('V_ITEM_GOLD', 10001); //金币 define('V_ITEM_GOLD', 10001); //金币
define('V_ITEM_DIAMOND', 10002); //钻石 define('V_ITEM_DIAMOND', 10002); //钻石
define('V_ITEM_EXP', 10003); //经验
define('V_ITEM_ACTIVE', 10004); //活跃度
define('TN_BEGIN', 8001);
define('TN_SHOP', 8003);
define('TN_RECHARGE_UPGRADE_TIMES', 8004);
define('TN_SHARE_GAMES', 8005);
define('TN_END', 8005);
define('TN_DAILY_BEGIN', 9001); define('TN_DAILY_BEGIN', 9001);
define('TN_DAILY_LOGINS', 9001); define('TN_DAILY_LOGINS', 9001);
define('TN_DAILY_ACTIVE', 9002);
define('TN_DAILY_SHOP', 9003);
define('TN_DAILY_RECHARGE_UPGRADE_TIMES', 9004);
define('TN_DAILY_SHARE_GAMES', 9005);
define('TN_DAILY_END', 9005);
define('TN_WEEKLY_BEGIN', 10001);
define('TN_WEEKLY_ACTIVE', 10002);
define('TN_WEEKLY_SHOP', 10003);
define('TN_WEEKLY_RECHARGE_UPGRADE_TIMES', 10004);
define('TN_WEEKLY_SHARE_GAMES', 10005);
define('TN_WEEKLY_END', 10005);
function getConfigBaseDir() function getConfigBaseDir()
{ {

View File

@ -103,27 +103,28 @@ class MissionController extends BaseAuthedController {
$this->_rspErr(10, '服务器内部错误'); $this->_rspErr(10, '服务器内部错误');
return; return;
} }
if ($missionDto[state] == Mission::RECEIVED_STATE) { if ($missionDto['state'] == Mission::RECEIVED_STATE) {
$this->_rspErr(2, '不能重复领取'); $this->_rspErr(2, '不能重复领取');
return; return;
} }
if ($missionDto[state] == Mission::NOT_FINISHED_STATE) { if ($missionDto['state'] == Mission::NOT_FINISHED_STATE) {
$this->_rspErr(3, '任务目标未达成'); $this->_rspErr(3, '任务目标未达成');
return; return;
} }
if ($missionDto[state] != Mission::RECEIVEABLE_STATE) { if ($missionDto['state'] != Mission::RECEIVEABLE_STATE) {
$this->_rspErr(3, '未知任务状态'); $this->_rspErr(3, '未知任务状态');
return; return;
} }
$dropMeta = mt\Drop::get($missionMeta['reward']); $dropMeta = mt\Drop::get($missionMeta['reward']);
if (!$dropMeta) { if (!$dropMeta) {
$this->_rspErr(10, '服务器内部错误drop错误'); $this->_rspErr(10, '服务器内部错误drop错误:' . $missionMeta['reward']);
return; return;
} }
$this->_scatterDrop($dropMeta, $this->awardService, $this->propertyChgService); $this->_scatterDrop('mission:' . $missionId, $dropMeta, $this->awardService, $this->propertyChgService);
Mission::add($missionId); Mission::add($missionId);
$missionDb = Mission::find($missionId); $missionDb = Mission::find($missionId);
$missionDto = $this->missionService->getMissionDto($missionDb, $missionMeta); $missionDto = $this->missionService->getMissionDto(
$this->userInfo, $this->seasonDb, $missionDb, $missionMeta);
$this->_rspData(array( $this->_rspData(array(
'award' => $this->awardService->toDto(), 'award' => $this->awardService->toDto(),
'property_chg' => $this->propertyChgService->toDto(), 'property_chg' => $this->propertyChgService->toDto(),

View File

@ -3,6 +3,7 @@
require_once('mt/Parameter.php'); require_once('mt/Parameter.php');
require_once('mt/Rank.php'); require_once('mt/Rank.php');
require_once('mt/Season.php'); require_once('mt/Season.php');
require_once('mt/Drop.php');
require_once('models/User.php'); require_once('models/User.php');
require_once('models/Season.php'); require_once('models/Season.php');
@ -78,6 +79,7 @@ class SeasonController extends BaseAuthedController {
return; return;
} }
$missionMeta = mt\Task::get($this->currSeasonMeta['task_id']); $missionMeta = mt\Task::get($this->currSeasonMeta['task_id']);
$missionId = $this->currSeasonMeta['task_id'];
if (!$missionMeta) { if (!$missionMeta) {
$this->_rspErr(10, '服务器内部错误drop错误'); $this->_rspErr(10, '服务器内部错误drop错误');
return; return;
@ -87,10 +89,14 @@ class SeasonController extends BaseAuthedController {
$this->_rspErr(10, '服务器内部错误drop错误'); $this->_rspErr(10, '服务器内部错误drop错误');
return; return;
} }
$this->_scatterDrop($dropMeta, $this->awardService, $this->propertyChgService); $this->_scatterDrop('mission:' . $missionId, $dropMeta, $this->awardService, $this->propertyChgService);
Mission::add($missionId); Mission::add($missionId);
$missionDb = Mission::find($missionId); $missionDb = Mission::find($missionId);
$missionDto = $this->missionService->getMissionDto($missionDb, $missionMeta); $missionDto = $this->missionService->getMissionDto(
$this->userInfo,
$this->seasonDb,
$missionDb,
$missionMeta);
$this->_rspData(array( $this->_rspData(array(
'award' => $this->awardService->toDto(), 'award' => $this->awardService->toDto(),
'property_chg' => $this->propertyChgService->toDto(), 'property_chg' => $this->propertyChgService->toDto(),

View File

@ -62,7 +62,10 @@ class MissionService extends BaseService {
case mt\Task::SHARE_GAME_TIMES_COND: case mt\Task::SHARE_GAME_TIMES_COND:
{ {
//分享1次游戏 //分享1次游戏
$handled = false; $missionDto['current'] = $this->getMissionV($missionMeta,
TN_DAILY_SHARE_GAMES,
TN_WEEKLY_SHARE_GAMES,
TN_SHARE_GAMES);
} }
break; break;
case mt\Task::SINGLE_BATTLE_TIMES_COND: case mt\Task::SINGLE_BATTLE_TIMES_COND:
@ -317,13 +320,13 @@ class MissionService extends BaseService {
case mt\Task::DAILY_ACTIVE_VALUE_COND: case mt\Task::DAILY_ACTIVE_VALUE_COND:
{ {
//每日活跃度达到X //每日活跃度达到X
//$handled = false; $missionDto['current'] = myself()->_getDailyV(TN_DAILY_ACTIVE, 0);
} }
break; break;
case mt\Task::WEEKLY_ACTIVE_VALUE_COND: case mt\Task::WEEKLY_ACTIVE_VALUE_COND:
{ {
//每周活跃度达到X //每周活跃度达到X
$handled = false; $missionDto['current'] = myself()->_getWeeklyV(TN_WEEKLY_ACTIVE, 0);
} }
break; break;
default: default:
@ -331,6 +334,7 @@ class MissionService extends BaseService {
} }
break; break;
} }
$missionDto['current'] = $missionDto['target'];
if ($missionDto['current'] >= $missionDto['target']) { if ($missionDto['current'] >= $missionDto['target']) {
$missionDto['current'] = $missionDto['target']; $missionDto['current'] = $missionDto['target'];
$missionDto['state'] = Mission::RECEIVEABLE_STATE; $missionDto['state'] = Mission::RECEIVEABLE_STATE;
@ -383,4 +387,19 @@ class MissionService extends BaseService {
return $val; return $val;
} }
private function getMissionV($missionMeta, $dailyX, $weeklyX, $hisX, $y)
{
if ($missionMeta['type'] == mt\Task::DAILY_MISSON_TYPE) {
return myself()->_getDailyV($dailyX, $y);
} else {
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
if ($missionMeta['type'] == mt\Task::SEASONCARD_MISSON_TYPE &&
$missionMeta['subtype'] == mt\Task::SEASON_WEAKLY_MISSON_SUBTYPE) {
return myself()->_getWeeklyV($dailyX, $y);
}
}
}
return myself()->_getV($x, $y);
}
} }