|
@@ -61,14 +61,32 @@ class TaskProc {
|
|
|
function procMain($req) {
|
|
|
switch ($req->cmd) {
|
|
|
case CmdCode::cmd_task_getInfo: # 6201 刷新任务状态
|
|
|
- return EmailProc::RefreshEmailList($req);
|
|
|
+ return TaskProc::GetTaskInfo($req);
|
|
|
case CmdCode::cmd_task_getReward: # 6202 领取任务奖励
|
|
|
- return EmailProc::ReadEmail($req);
|
|
|
+ return TaskProc::GetTaskReward($req);
|
|
|
+ case CmdCode::cmd_Task_setAttentionTask: # 6203 设置关注任务
|
|
|
+ return TaskProc::GetTaskInfo($req);
|
|
|
default:
|
|
|
return Err(ErrCode::cmd_err);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * [6203] 设置关注任务
|
|
|
+ * @param req $req
|
|
|
+ */
|
|
|
+ static function setAttentionTask($req) {
|
|
|
+ list($taskId) = $req->paras;
|
|
|
+ $userTask = $req->userInfo->game->task;
|
|
|
+
|
|
|
+ my_Assert(StlUtil::dictHasProperty($userTask->taskListPlot, $taskId), ErrCode::task_no); # 任务存在
|
|
|
+ isEditor() and $taskItem = new TaskInfo();
|
|
|
+ $taskItem = $userTask->taskListPlot->$taskId;
|
|
|
+ my_Assert($taskItem->rewardGeted < 1, ErrCode::task_reward_geted); # 任务奖励尚未领取
|
|
|
+ $userTask->curTaskId = $taskId;
|
|
|
+ return Resp::ok();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* [6201]更新任务状态
|
|
|
* @param req $req
|
|
@@ -91,7 +109,7 @@ class TaskProc {
|
|
|
isEditor() and $task = new TaskInfo();
|
|
|
$task = $userTask->taskListPlot->$taskId;
|
|
|
my_Assert($task->progress >= 1, ErrCode::task_progress_not_complete); # 判断任务进度是否已完成>=1f
|
|
|
- #
|
|
|
+ my_Assert($task->rewardGeted < 1, ErrCode::task_reward_geted); # 奖励不可重复领取
|
|
|
$taskCfg = GameConfig::task_getItem($taskId); # 任务配置数据
|
|
|
my_Assert($taskCfg != null, ErrCode::err_const_no);
|
|
|
$ok = StoreProc::AddMultiItemInStore($req, $taskCfg->reward); # 发放任务奖励
|
|
@@ -131,22 +149,29 @@ class TaskProc {
|
|
|
$bUpdate = true;
|
|
|
continue;
|
|
|
}
|
|
|
+ $task->tag1 = max($task->tag1, $taskParam->canshu1);
|
|
|
if ($taskCfg->canshu1 <= $taskParam->canshu1) {
|
|
|
- if (is_null($taskCfg->canshu2)) {
|
|
|
+ if (null == $taskCfg->canshu2 || 0 == $taskCfg->canshu2) {
|
|
|
$bUpdate = true;
|
|
|
$task->progress = 1;
|
|
|
} else {
|
|
|
- if ($taskCfg->canshu2 <= $taskParam->canshu2) {
|
|
|
- $bUpdate = true;
|
|
|
- $task->progress = 1;
|
|
|
+ if (is_numeric($taskCfg->canshu2)) {
|
|
|
+ $task->tag2 = max($task->tag2, $taskParam->canshu2);
|
|
|
+ if ($taskCfg->canshu2 <= $taskParam->canshu2) {
|
|
|
+ $bUpdate = true;
|
|
|
+ $task->progress = 1;
|
|
|
+ }
|
|
|
} else {
|
|
|
- // 更新下进度, 具体细节待修订
|
|
|
+ $task->tag2 = $taskParam->canshu2;
|
|
|
+ if ($taskCfg->canshu2 == $taskParam->canshu2) {
|
|
|
+ $bUpdate = true;
|
|
|
+ $task->progress = 1;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- } else {
|
|
|
- // 进度更新,具体细节待修订
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
// meiri
|
|
|
if ($bUpdate) {
|
|
|
Resp::addTag("isTaskUpdated", true); # 附加tag信息, 任务有更新
|
|
@@ -161,9 +186,71 @@ class TaskProc {
|
|
|
/**
|
|
|
* 例如当指挥官等级提升的时候需要检查是否有任务达成
|
|
|
*/
|
|
|
- static function OnUserLevelUp() {
|
|
|
- $param = new TaskParams(EnumTaskType::CommanderLevelUpTo, req()->userInfo->game->level);
|
|
|
- self::CheckTaskConditions($param);
|
|
|
+ static function OnUserLevelUp($newLvl) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::CommanderLevelUpTo, $newLvl);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ static function OnHeroLevelUp($heroMoId, $newLvl) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::HeroLevelUpTo, $heroMoId, $newLvl);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ static function OnHeroGradeUp($heroMoId, $newGrade) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::HeroGradeUpTo, $heroMoId, $newGrade);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ static function OnHeroSegmengNum($heroMoId, $num) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::HeroSegmentNumberTo, $heroMoId, $num);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ static function OnHeroUnlocSkill($heroMoId, $skillId) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::HeroSkillUnlock, $heroMoId, $skillId);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ static function OnPassGateN($gateId, $difficulty) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::PassGateN, $gateId, $difficulty);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ static function OnPassCarboN($gateId, $difficulty) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::passCarbonN, $gateId, $difficulty);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ static function OnPvPWinN($num) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::PvPWinNumberTo, $num);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param type $score
|
|
|
+ */
|
|
|
+ static function OnPvPScoreN($score) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::PvPScoreTo, $score);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 玩家总战力值
|
|
|
+ * @param type $num
|
|
|
+ */
|
|
|
+ static function OnUserFightPowerN($num) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::UserPowerTo, $num);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 玩家收集积分
|
|
|
+ * @param type $num
|
|
|
+ */
|
|
|
+ static function OnUserCollectScoreN($num) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::UserCollectScoreTo, $num);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
}
|
|
|
|
|
|
//
|