浏览代码

增补点儿防御代码.

gwang 4 年之前
父节点
当前提交
b88f5391fd
共有 2 个文件被更改,包括 9 次插入5 次删除
  1. 4 1
      Gameserver/Amfphp/model/User/Ins_TaskCard.php
  2. 5 4
      Gameserver/Amfphp/process/TaskProc.php

+ 4 - 1
Gameserver/Amfphp/model/User/Ins_TaskCard.php

@@ -69,8 +69,11 @@ class Ins_TaskCard extends Object_ext {
      * @return boolean 分析任务卡是否已经完成所有步骤
      */
     public function IsFinish() {
+        if ($this->state >= Enum_TaskCardStateType::finish) {                   # 已经完成
+            return true;
+        }
         $isFinish = true;
-        foreach ($this->curSteps as &$tsp) {                                   # 初期里面只有一个任务
+        foreach ($this->curSteps as &$tsp) {                                    # 初期里面只有一个任务
             $tsp = new Ins_TaskStep($tsp);
             if (!$tsp->isFinish()) {
                 $isFinish = false;

+ 5 - 4
Gameserver/Amfphp/process/TaskProc.php

@@ -353,19 +353,19 @@ class TaskProc {
                 $ok = StoreProc::removeItemFromStore($store, $tsp->mo()->paras, $tsp->mo()->num);
                 my_Assert(ErrCode::ok == $ok, ErrCode::taskCard_gainItem_no);
             }
-        }              
+        }
         if (strlen($taskCard->mo()->reward) > 0) {                              # 防御奖励串为空
             StoreProc::AddMultiItemInStore($req, $taskCard->mo()->reward);      # 发放奖励
-        }               
+        }
         if ($taskCard->mo()->exp > 0) {                                         # 任务卡增加了指挥官经验
             Data_UserGame::Add_Exp($req->userInfo->game->baseInfo, $taskCard->mo()->exp);
         }
-        $taskCard->state = Enum_TaskCardStateType::drawed;                      
+        $taskCard->state = Enum_TaskCardStateType::drawed;
         //2021-3-4
         $college = new Info_College($req->userInfo->game->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();                                               # 触发检查任务卡的任务卡[・_・?]
@@ -839,6 +839,7 @@ class TaskProc {
             if ($task->state != Enum_TaskCardStateType::ing) {
                 continue;
             }
+
             foreach ($task->curSteps as &$tsp) {                                # 初期里面只有一个任务
                 $tsp = new Ins_TaskStep($tsp);
 //                var_dump($tsp);