|
@@ -58,6 +58,8 @@ class TaskProc {
|
|
return self::OnTaskCard_StepActionDone();
|
|
return self::OnTaskCard_StepActionDone();
|
|
case CmdCode::cmd_Task_setTracingCard: # 6219 设置当前追踪的任务卡
|
|
case CmdCode::cmd_Task_setTracingCard: # 6219 设置当前追踪的任务卡
|
|
return TaskProc::SetTracingCard();
|
|
return TaskProc::SetTracingCard();
|
|
|
|
+ case CmdCode::cmd_task_StepFallBack: # 6220 任务步骤回撤重置
|
|
|
|
+ return TaskProc::OnTaskStep_FallBack();
|
|
// -------------- 任务卡商城 -----------------------------
|
|
// -------------- 任务卡商城 -----------------------------
|
|
case CmdCode::cmd_taskcard_shop_open: # 6231 任务卡商店 - 开启
|
|
case CmdCode::cmd_taskcard_shop_open: # 6231 任务卡商店 - 开启
|
|
return self::OnTaskCardShopOpen();
|
|
return self::OnTaskCardShopOpen();
|
|
@@ -490,6 +492,36 @@ class TaskProc {
|
|
return Resp::ok($pri->taskCardTracing); # 返回成功
|
|
return Resp::ok($pri->taskCardTracing); # 返回成功
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * [6220] 任务步骤 - 回撤
|
|
|
|
+ */
|
|
|
|
+ static function OnTaskStep_FallBack() {
|
|
|
|
+ // 遍历检查是否有任务步骤需要回撤
|
|
|
|
+ $taskCards = req()->userInfo->game->store->taskcards; # 快速访问store
|
|
|
|
+ foreach ($taskCards as $uid => &$card) { # 加了&符号,理论上就能直接修改原始元素
|
|
|
|
+ $card = new Ins_TaskCard($card); # 任务卡对象
|
|
|
|
+ $fallbackID = 0;
|
|
|
|
+ $stepArr = array();
|
|
|
|
+ foreach ($card->curSteps as &$tsp) { # 初期里面只有一个任务
|
|
|
|
+ $tsp = new Ins_TaskStep($tsp);
|
|
|
|
+ if ($tsp->mo()->fallback > 0) { # 找到需要回撤的步骤,删除此步骤
|
|
|
|
+ $fallbackID = $tsp->mo()->fallback;
|
|
|
|
+ } else {
|
|
|
|
+ $stepArr[] = $tsp;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ foreach ($stepArr as &$tsp) { # 回撤上一步的进度
|
|
|
|
+ if ($tsp->typeId == $fallbackID) {
|
|
|
|
+ $tsp->cur = 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $card->curSteps = $stepArr; # 更新任务步骤集合
|
|
|
|
+ }
|
|
|
|
+ req()->userInfo->game->store->taskcards = $taskCards; # 更新任务卡
|
|
|
|
+ UserProc::updateUserInfo();
|
|
|
|
+ return Resp::ok();
|
|
|
|
+ }
|
|
|
|
+
|
|
//
|
|
//
|
|
// </editor-fold>
|
|
// </editor-fold>
|
|
// <editor-fold defaultstate="collapsed" desc=" 任务接口 ">
|
|
// <editor-fold defaultstate="collapsed" desc=" 任务接口 ">
|
|
@@ -1075,7 +1107,6 @@ class TaskProc {
|
|
static function CheckTaskCardConditions($taskParam) {
|
|
static function CheckTaskCardConditions($taskParam) {
|
|
$bUpdate = false;
|
|
$bUpdate = false;
|
|
$tasks = req()->userInfo->game->store->taskcards;
|
|
$tasks = req()->userInfo->game->store->taskcards;
|
|
-// var_dump(json_encode($tasks));
|
|
|
|
foreach ($tasks as $tid => &$task) {
|
|
foreach ($tasks as $tid => &$task) {
|
|
$task = new Ins_TaskCard($task);
|
|
$task = new Ins_TaskCard($task);
|
|
if ($task->state != Enum_TaskCardStateType::ing) {
|
|
if ($task->state != Enum_TaskCardStateType::ing) {
|
|
@@ -1084,11 +1115,9 @@ class TaskProc {
|
|
foreach ($task->curSteps as &$tsp) { # 初期里面只有一个任务
|
|
foreach ($task->curSteps as &$tsp) { # 初期里面只有一个任务
|
|
$tsp = new Ins_TaskStep($tsp);
|
|
$tsp = new Ins_TaskStep($tsp);
|
|
if ($tsp->check_new($taskParam)) {
|
|
if ($tsp->check_new($taskParam)) {
|
|
-// CLog::err("推进");
|
|
|
|
$bUpdate = true;
|
|
$bUpdate = true;
|
|
$tsp->propel($taskParam);
|
|
$tsp->propel($taskParam);
|
|
- NormalEventProc::OnTaskCardStep_Process($task->uid, $tsp->typeId); # 任务进度更新
|
|
|
|
-// CLog::err($task);
|
|
|
|
|
|
+ NormalEventProc::OnTaskCardStep_Process($task->uid, $tsp->typeId); # 任务进度更新
|
|
if ($tsp->isFinish()) {
|
|
if ($tsp->isFinish()) {
|
|
NormalEventProc::OnTaskCardStep_Complete($task->uid, $tsp->typeId); # 广播任务步骤完成事件
|
|
NormalEventProc::OnTaskCardStep_Complete($task->uid, $tsp->typeId); # 广播任务步骤完成事件
|
|
// $tsp->doFinishAct();
|
|
// $tsp->doFinishAct();
|