|
@@ -392,7 +392,7 @@ class TaskProc {
|
|
$college = ctx()->college();
|
|
$college = ctx()->college();
|
|
$college->modifyTaskCardState($taskCard->typeId, Enum_TaskCardStateType::drawed);
|
|
$college->modifyTaskCardState($taskCard->typeId, Enum_TaskCardStateType::drawed);
|
|
req()->userInfo->game->college = $college;
|
|
req()->userInfo->game->college = $college;
|
|
-
|
|
|
|
|
|
+
|
|
$store->taskcards->$taskCardUID = $taskCard; # 回写任务数据
|
|
$store->taskcards->$taskCardUID = $taskCard; # 回写任务数据
|
|
NormalEventProc::OnTaskCard_Reward($taskCard->mo()->reward, null); # 带入事件
|
|
NormalEventProc::OnTaskCard_Reward($taskCard->mo()->reward, null); # 带入事件
|
|
self::OnFinishTaskCard($taskCard); # 触发检查任务卡的任务卡[・_・?]
|
|
self::OnFinishTaskCard($taskCard); # 触发检查任务卡的任务卡[・_・?]
|
|
@@ -405,7 +405,7 @@ class TaskProc {
|
|
StlUtil::dictRemove($store->taskcards, $taskCardUID); # 移除任务卡
|
|
StlUtil::dictRemove($store->taskcards, $taskCardUID); # 移除任务卡
|
|
}
|
|
}
|
|
self::autoRecoverStateMissions(); # 重新更新其它状态类的任务卡
|
|
self::autoRecoverStateMissions(); # 重新更新其它状态类的任务卡
|
|
-
|
|
|
|
|
|
+ self::autoRecoverTaskTracingState(); # 更新任务追踪.
|
|
StatisticsProc::SelfTaskDataCollect($taskCard->typeId); #统计自己的任务完成情况
|
|
StatisticsProc::SelfTaskDataCollect($taskCard->typeId); #统计自己的任务完成情况
|
|
StatisticsProc::TaskDataCollect($taskCard->typeId); #统计最新任务
|
|
StatisticsProc::TaskDataCollect($taskCard->typeId); #统计最新任务
|
|
|
|
|
|
@@ -969,6 +969,53 @@ class TaskProc {
|
|
// <editor-fold defaultstate="collapsed" desc="处理任务卡条件检查">
|
|
// <editor-fold defaultstate="collapsed" desc="处理任务卡条件检查">
|
|
//
|
|
//
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 自动修正任务追踪信息
|
|
|
|
+ */
|
|
|
|
+ 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) {
|
|
|
|
+ $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 ($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;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 自动修复状态型任务
|
|
* 自动修复状态型任务
|
|
*/
|
|
*/
|