Jelajahi Sumber

任务调整

cyzhao 9 bulan lalu
induk
melakukan
20763c56de

+ 8 - 1
Gameserver/App/model/User/Ins_TaskStep_Active.php

@@ -94,7 +94,7 @@ class Ins_TaskStep_Active extends Object_ext {
                 || $this->mo()->cmd == Enum_ActiveTaskCmdType::AnyEquipUpLevel_X || $this->mo()->cmd == Enum_ActiveTaskCmdType::AllEquipUpLevel_X || $this->mo()->cmd == Enum_ActiveTaskCmdType::OnLogin_X #
                 || $this->mo()->cmd == Enum_ActiveTaskCmdType::PassLayer_ChallengeGate || $this->mo()->cmd == Enum_ActiveTaskCmdType::UserLevel_X || $this->mo()->cmd == Enum_ActiveTaskCmdType::RankPrize_Num#
                 || $this->mo()->cmd == Enum_ActiveTaskCmdType::PassMainChallengeGate_X_Num || $this->mo()->cmd == Enum_ActiveTaskCmdType::CompleteNumQiLing || $this->mo()->cmd == Enum_ActiveTaskCmdType::CompleteNumSpecialQiLing #
-                || $this->mo()->cmd == Enum_ActiveTaskCmdType::FightGate_X
+                || $this->mo()->cmd == Enum_ActiveTaskCmdType::FightGate_X || $this->mo()->cmd == Enum_ActiveTaskCmdType::OnPassGate_X_state
                 ;
     }
 
@@ -118,6 +118,13 @@ class Ins_TaskStep_Active extends Object_ext {
         }
 
         switch ($mo->cmd) {
+            case Enum_ActiveTaskCmdType::OnPassGate_X_state:
+                $gateId = $para0;
+                if(StlUtil::dictHasProperty(ctx()->gates->GateList, $gateId) && ctx()->gates->GateList->$gateId->pass > 0){                   
+                    return 1;
+                }
+                return 0;
+            
             case Enum_ActiveTaskCmdType::FightGate_X:
                 $gateId = $para0;
                 if(StlUtil::dictHasProperty(ctx()->gates->GateList, $gateId) && ctx()->gates->GateList->$gateId->fightNum > 0){                   

+ 1 - 1
Gameserver/App/process/FightProc.php

@@ -585,7 +585,7 @@ class FightProc {
             }
 
             TaskProc::OnPassGate_X($gateId);                                    # 刷新任务进度: 通关第X关
-
+            TaskProc::OnPassGate_X_state($gateId);
             if (Ins_GateInfo::GateTypeFromId($gateId) == Enum_GateType::MainStoryGate) {
                 ctx()->gates()->UnlockNextPlotGate($gateId);                    # 解锁下一主线关卡
 //                ctx()->gates()->UnlockMainChallengeGate($gateId);              # 挑战关卡解锁逻辑. -gwang 2024年4月15日

+ 8 - 0
Gameserver/App/process/TaskProc.php

@@ -451,6 +451,14 @@ class TaskProc {
         $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::PassGate_X, Enum_PropelType::add, 1, array($gateId));
         self::CheckActiveTaskConditions($taskEventArg);
     }
+    
+    /**
+     * 通关第X关
+     */
+    static function OnPassGate_X_state($gateId) {
+        $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::PassGate_X_state, Enum_PropelType::add, 1, array($gateId));
+        self::CheckActiveTaskConditions($taskEventArg);
+    }
 
     /**
      * 参与主线关卡1次