|
@@ -333,6 +333,8 @@ class TaskProc {
|
|
|
NormalEventProc::OnTaskCard_Finish($taskCard->uid, null); # 广播卡完成事件
|
|
|
}
|
|
|
$store->taskcards->$taskCardUID = $taskCard;
|
|
|
+
|
|
|
+ self::autoRecoverTaskTracingState(); # 更新任务追踪.
|
|
|
UserProc::updateUserInfo(); # 回存玩家数据
|
|
|
return Resp::ok(array('store' => req()->userInfo->game->store)); # 返回值更新背包
|
|
|
}
|
|
@@ -975,44 +977,41 @@ class TaskProc {
|
|
|
static function autoRecoverTaskTracingState() {
|
|
|
$tasks = req()->userInfo->game->store->taskcards;
|
|
|
$pri = req()->userInfo->game->privateData();
|
|
|
- $tp = 2;
|
|
|
- $curId = my_null_default($pri->taskCardTracing->$tp, 0); # 当前追踪中的任务卡id
|
|
|
- $needRefresh = false;
|
|
|
- if ($curId > 0) { # 存在任务卡
|
|
|
- $curTask = new Ins_TaskCard($tasks->$curId);
|
|
|
- if ($curTask->state >= 4) {
|
|
|
+ for ($tp = 1; $tp < 5; $tp++) {
|
|
|
+ $curId = my_null_default($pri->taskCardTracing->$tp, 0); # 当前追踪中的任务卡id
|
|
|
+ $needRefresh = false;
|
|
|
+ if ($curId > 0) { # 存在任务卡
|
|
|
+ if (CommUtil::isPropertyExists($tasks, $curId)) {
|
|
|
+ $curTask = new Ins_TaskCard($tasks->$curId);
|
|
|
+ if ($curTask->state >= 4) { # 任务卡已经被领取奖励, 尝试刷新
|
|
|
+ $needRefresh = true;
|
|
|
+ }
|
|
|
+ } else { # 任务卡已经被删除, 尝试刷新
|
|
|
+ $needRefresh = true;
|
|
|
+ }
|
|
|
+ } else { # 没有追踪目标, 尝试刷新
|
|
|
$needRefresh = true;
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- if ($needRefresh) {
|
|
|
- $ok = false;
|
|
|
- foreach ($tasks as $tid => &$task) {
|
|
|
- $task = new Ins_TaskCard($task);
|
|
|
|
|
|
- switch ($task->mo()->type) {
|
|
|
- case 1: # 主线
|
|
|
- break;
|
|
|
- case 2: # 日常
|
|
|
+ if ($needRefresh) {
|
|
|
+ $ok = false;
|
|
|
+ foreach ($tasks as $tid => &$task) {
|
|
|
+ $task = new Ins_TaskCard($task);
|
|
|
+ if ($task->mo()->type == $tp) {
|
|
|
if ($task->state >= 4) {
|
|
|
continue;
|
|
|
}
|
|
|
$pri->taskCardTracing->$tp = $tid;
|
|
|
$ok = true;
|
|
|
- break 2; # 终止foreach循环(2层)
|
|
|
- case 3: # 学院
|
|
|
- break;
|
|
|
- case 4: # 悬赏
|
|
|
- break;
|
|
|
- default:
|
|
|
break;
|
|
|
+ }
|
|
|
}
|
|
|
+ if (!$ok) { # 没有找到合适的追踪对象
|
|
|
+ $pri->taskCardTracing->$tp = 0; # 删除所有追踪(剩余任务已经全部完成了)
|
|
|
+ }
|
|
|
+ req()->userInfo->game->store->taskcards = $tasks;
|
|
|
+ req()->userInfo->game->privateState = $pri;
|
|
|
}
|
|
|
- if (!$ok) { # 没有找到合适的追踪对象
|
|
|
- $pri->taskCardTracing->$tp = 0; # 删除所有追踪(剩余任务已经全部完成了)
|
|
|
- }
|
|
|
- req()->userInfo->game->store->taskcards = $tasks;
|
|
|
- req()->userInfo->game->privateState = $pri;
|
|
|
}
|
|
|
}
|
|
|
|