|
@@ -32,11 +32,85 @@ class TaskProc {
|
|
|
return TaskProc::receiveActiveTaskReward();
|
|
|
case CmdCode::cmd_task_receiveActivePointBoxReward: # 6205 领取活跃点宝箱奖励
|
|
|
return TaskProc::receiveActivePointBoxReward();
|
|
|
+ case CmdCode::cmd_task_prizesAllreceived: # 6206 任务奖励一键领取
|
|
|
+ return TaskProc::taskPrizesAllreceived();
|
|
|
default:
|
|
|
Err(ErrCode::cmd_err);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 6206 任务奖励一键领取
|
|
|
+ */
|
|
|
+ public static function taskPrizesAllreceived() {
|
|
|
+ list($type) = req()->paras;
|
|
|
+
|
|
|
+ $dic = ctx()->task->activeTaskInfo;
|
|
|
+ $arr = array();
|
|
|
+ if ($type == Enum_ActiveTaskType::Day7) {
|
|
|
+ $startDay = TimeUtil::totalDays(ctx()->task->day7_startTs);
|
|
|
+ $endDay = $startDay + 6;
|
|
|
+
|
|
|
+ if (TimeUtil::totalDays() <= $endDay) {
|
|
|
+ $num = TimeUtil::totalDays() - $startDay;
|
|
|
+ foreach ($dic as $uid => $task) {
|
|
|
+ $t = new Ins_TaskStep_Active($task);
|
|
|
+ if ($t->mo()->type == $type && $t->mo()->day <= $num + 1 && $t->state == Enum_TaskCardStateType::finish) {
|
|
|
+ $arr[] = $uid;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ foreach ($dic as $uid => $task) {
|
|
|
+ $t = new Ins_TaskStep_Active($task);
|
|
|
+ if ($t->mo()->type == $type && $t->isFinish()) {
|
|
|
+ $arr[] = $uid;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $point = 0;
|
|
|
+ foreach ($arr as $uid) {
|
|
|
+ $t = new Ins_TaskStep_Active(ctx()->task->activeTaskInfo->$uid);
|
|
|
+ if ($t->mo()->activePoint != null) {
|
|
|
+ $list = explode(',', $t->mo()->activePoint);
|
|
|
+ $point += $list[1];
|
|
|
+ }
|
|
|
+ StoreProc::AddMultiItemInStore($t->mo()->prizes);
|
|
|
+ if ($t->mo()->prizes != null) {
|
|
|
+ $reward = explode(',', $t->mo()->prizes);
|
|
|
+ if (GameConfig::item_getItem($reward[0])->itemType == 201) {
|
|
|
+ SystemProc::GetGem_GreaterOrangeQual_Active(req()->zoneid, ctx()->baseInfo->name, $reward[0]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ switch ($type) {
|
|
|
+ case Enum_ActiveTaskType::Day7:
|
|
|
+ ctx()->task->day7Point += $point;
|
|
|
+ break;
|
|
|
+ case Enum_ActiveTaskType::DailyTask:
|
|
|
+ ctx()->task->dailyTaskPoint += $point;
|
|
|
+ break;
|
|
|
+ case Enum_ActiveTaskType::WeekTask:
|
|
|
+ ctx()->task->weekTaskPoint += $point;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ $str = "5," . $point;
|
|
|
+ StoreProc::$reward[] = $str;
|
|
|
+
|
|
|
+ UserProc::updateUserInfo();
|
|
|
+ return Resp::ok(array("task" => ctx()->task,
|
|
|
+ "store" => ctx()->store,
|
|
|
+ 'reward' => StoreProc::$reward,
|
|
|
+ 'reward_Gem' => StoreProc::$reward_Gem,
|
|
|
+ 'gold' => ctx()->baseInfo->gold,
|
|
|
+ 'cash' => ctx()->baseInfo->cash,
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 6205 领取活跃点宝箱奖励
|
|
|
*/
|
|
@@ -113,7 +187,7 @@ class TaskProc {
|
|
|
ctx()->task->activeTaskInfo->$uid->drawTs = now();
|
|
|
|
|
|
self::InitNextMainTask($uid);
|
|
|
-
|
|
|
+
|
|
|
$activePointArr = explode(',', $ins_activeTaskInfo->mo()->activePoint);
|
|
|
switch ($ins_activeTaskInfo->mo()->type) {
|
|
|
case Enum_ActiveTaskType::Day7:
|
|
@@ -146,10 +220,10 @@ class TaskProc {
|
|
|
if ($ins_activeTaskInfo->mo()->type != Enum_ActiveTaskType::MainTask) {
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
StlUtil::dictRemove(ctx()->task->activeTaskInfo, $uid);
|
|
|
- $nextId = $ins_activeTaskInfo->mo()->next;
|
|
|
- if ($nextId != null) {
|
|
|
+ $nextId = $ins_activeTaskInfo->mo()->next;
|
|
|
+ if ($nextId != null) {
|
|
|
self::MainTaskInit($nextId);
|
|
|
}
|
|
|
}
|
|
@@ -349,7 +423,6 @@ class TaskProc {
|
|
|
// self::MainTaskInit(glc()->FirstMainTaskId);
|
|
|
// }
|
|
|
// }
|
|
|
-
|
|
|
// <editor-fold defaultstate="collapsed" desc="不同活动任务监测信息-">
|
|
|
|
|
|
/**
|