Jelajahi Sumber

fixed: 任务追踪模块,当上一个任务完成时, 智能更新追踪内容.

王刚 3 tahun lalu
induk
melakukan
e9f6e0bc81
2 mengubah file dengan 54 tambahan dan 20 penghapusan
  1. 49 2
      Gameserver/Amfphp/process/TaskProc.php
  2. 5 18
      Gameserver/Public/gonggao.html

+ 49 - 2
Gameserver/Amfphp/process/TaskProc.php

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

+ 5 - 18
Gameserver/Public/gonggao.html

@@ -45,40 +45,27 @@
                 <div class="service-list">
 
                     <ul class="server-tab left-box">
-                        <li class="nav-item cur">
-                            <!--                         <p class="col-lg-3">
-                            <img src="./app_files/1596505777.png" alt="版本更新公告" class="indeximg">
-                        </p> -->
+                        <li class="nav-item cur"> 
                             <div class="col-lg-8">
                                 <p><b>版本更新公告</b></p>
                             </div>
                         </li>
-                        <li class="nav-item">
-                            <!-- <p class="col-lg-3">
-                            <img src="./app_files/1596505777.png" alt="实名认证与防沉迷" class="indeximg">
-                        </p> -->
+                        <li class="nav-item"> 
                             <div class="col-lg-8">
                                 <p><b>实名认证与防沉迷</b></p>
                             </div>
                         </li>
-                        <li class="nav-item">
-                            <!--                         <p class="col-lg-3">
-                            <img src="./app_files/1596506110.png" alt="严禁第三方交易" class="indeximg">
-                        </p> -->
+                        <li class="nav-item"> 
                             <div class="col-lg-8">
                                 <p><b>严禁第三方交易</b></p>
                             </div>
                         </li>
 
-                        <li class="nav-item">
-                            <!--                         <p class="col-lg-3">
-                            <img src="./app_files/1596506265.png" alt="微信/小程序互动" class="indeximg">
-                        </p> -->
+                        <li class="nav-item"> 
                             <div class="col-lg-8">
                                 <p><b>用户协议/隐私政策</b></p>
                             </div>
-                        </li>
-
+                        </li> 
                     </ul>
 
                     <div class="contantbox  right-box" style="height: 580px;">