cyzhao 1 жил өмнө
parent
commit
30036eb0e5

+ 33 - 15
Gameserver/App/model/User/Ins_TaskStep_Active.php

@@ -34,6 +34,7 @@ class Ins_TaskStep_Active extends Object_ext {
      * @var type
      */
     public $drawTs = 0;
+
     /**
      * @return \sm_task_step mo 获取对应的模板数据
      */
@@ -89,7 +90,7 @@ class Ins_TaskStep_Active extends Object_ext {
      * @param type $cmd
      */
     function isStatusType() {
-        return $this->mo()->cmd == Enum_ActiveTaskCmdType::SetSpecialQualGem || $this->mo()->cmd == Enum_ActiveTaskCmdType::AnyEquipUpLevel_X || $this->mo()->cmd == Enum_ActiveTaskCmdType::AllEquipUpLevel_X;
+        return $this->mo()->cmd == Enum_ActiveTaskCmdType::SetSpecialQualGem || $this->mo()->cmd == Enum_ActiveTaskCmdType::AnyEquipUpLevel_X || $this->mo()->cmd == Enum_ActiveTaskCmdType::AllEquipUpLevel_X || $this->mo()->cmd == Enum_ActiveTaskCmdType::OnLogin_X;
     }
 
     function calcStatusCur() {
@@ -112,44 +113,61 @@ class Ins_TaskStep_Active extends Object_ext {
         }
 
         switch ($mo->cmd) {
-            case Enum_ActiveTaskCmdType::SetSpecialQualGem:                          # 镶嵌3个普通品质以上宝石 
+            case Enum_ActiveTaskCmdType::SetSpecialQualGem:                     # 镶嵌3个普通品质以上宝石 
                 $gemEquip = ctx()->store->gemEquip;
                 $num = 0;
                 foreach ($gemEquip as $pag => $dic) {
                     foreach ($dic as $posId => $equip) {
-                        if($equip != null){
+                        if ($equip != null) {
                             foreach ($equip as $index => $gem) {
                                 $ins_gem = new Ins_Gem($gem);
-                                if($ins_gem->mo()->qual > $para0){
+                                if ($ins_gem->mo()->qual > $para0) {
                                     $num += 1;
                                 }
                             }
                         }
                     }
                 }
-              
+
                 return $num;
-            case Enum_ActiveTaskCmdType::AnyEquipUpLevel_X:                          # 任意1件装备等级达到2     
-                $num = 0;    
+            case Enum_ActiveTaskCmdType::AnyEquipUpLevel_X:                     # 任意1件装备等级达到2     
+                $num = 0;
                 $equip = ctx()->store->equip;
                 foreach ($equip as $index => $item) {
                     $ins_equip = new Ins_Equip($item);
-                    if($ins_equip->level >= $para0){
+                    if ($ins_equip->level >= $para0) {
                         $num += 1;
-                    }                   
-                }                
-                
+                    }
+                }
+
                 return $num;
-            case Enum_ActiveTaskCmdType::AllEquipUpLevel_X:                          # 全身装备等级达到3级以上 
-                $num = 0;    
+            case Enum_ActiveTaskCmdType::AllEquipUpLevel_X:                     # 全身装备等级达到3级以上 
+                $num = 0;
                 $equip = ctx()->store->equip;
                 foreach ($equip as $index => $item) {
                     $ins_equip = new Ins_Equip($item);
-                    if($ins_equip->level > $para0){
+                    if ($ins_equip->level > $para0) {
                         $num += 1;
-                    }                   
+                    }
                 }
                 return $num;
+            case Enum_ActiveTaskCmdType::OnLogin_X:                             # 第X天登录
+                $day = 0;
+                if (ctx()->task->day7_startTs > 0) {
+                    $startDay = TimeUtil::totalDays(ctx()->task->day7_startTs);
+                    $endDay = $startDay + 6;
+
+                    if (TimeUtil::totalDays(now()) <= $endDay) {
+                        $day = 0;
+                        for ($i = $startDay; $i <= $endDay; $i++) {
+                            $day += 1;
+                            if (TimeUtil::totalDays(now()) == $i) {
+                                break;
+                            }
+                        }                        
+                    }
+                }
+                return $day;
             default:
                 break;
         }

+ 2 - 2
Gameserver/App/process/TaskProc.php

@@ -344,8 +344,8 @@ class TaskProc {
     /**
      * 登录第X天
      */
-    static function OnLogin_day7($day) {
-        $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::DailyShopBuyNum, Enum_PropelType::set, $day, array());
+    static function OnLogin_day7() {
+        $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::OnLogin_X, Enum_PropelType::set, 1, array());
         self::CheckActiveTaskConditions($taskEventArg);
     }
 

+ 2 - 0
Gameserver/App/process/UserProc.php

@@ -215,6 +215,8 @@ class UserProc {
             //self::checkMissOrder();                                             #校验是否有漏单
             UserProc::updateUserInfo();                                         # 这一步回存操作只有在 userInfo正常存在的情况下才进行
 
+            TaskProc::OnLogin_Daily();
+            TaskProc::OnLogin_day7();
             $resp = Resp::ok($game);                                            # 设置返回值
             self::updtateUserZoneInfo();                                        # 1. 更新玩家分区记录
         }