Prechádzať zdrojové kódy

fixed: 日常任务刷新逻辑.

王刚 3 rokov pred
rodič
commit
29cbe96ea6

+ 9 - 3
Gameserver/Amfphp/process/TaskProc.php

@@ -224,9 +224,9 @@ class TaskProc {
             if (!empty($plot->presentItem)) {
             if (!empty($plot->presentItem)) {
                 if (strtolower($plot->presentItem) == strtolower("unlockBuild")) { # 特殊处理, 剧情中解锁建筑
                 if (strtolower($plot->presentItem) == strtolower("unlockBuild")) { # 特殊处理, 剧情中解锁建筑
                     req()->userInfo->game->privateState->unlockedBuild[] = $plot->presentEffect; # 添加解锁记录
                     req()->userInfo->game->privateState->unlockedBuild[] = $plot->presentEffect; # 添加解锁记录
-                    if($plot->presentEffect == 1000){
+                    if ($plot->presentEffect == 1000) {
                         $college = new Info_College();
                         $college = new Info_College();
-                        $college->setFunUnluckTs();                              
+                        $college->setFunUnluckTs();
                     }
                     }
                     NormalEventProc::OnUnlockBuild($plot->presentEffect);       # 插入解锁事件
                     NormalEventProc::OnUnlockBuild($plot->presentEffect);       # 插入解锁事件
                 } else if (strtolower($plot->presentItem) == strtolower("rename")) {# 改名
                 } else if (strtolower($plot->presentItem) == strtolower("rename")) {# 改名
@@ -394,7 +394,11 @@ class TaskProc {
         if (!empty($taskCard->mo()->newTaskCard)) {                             # 下一个任务卡存在
         if (!empty($taskCard->mo()->newTaskCard)) {                             # 下一个任务卡存在
             StoreProc::PutTaskCardInStore($taskCard->mo()->newTaskCard);        # 放卡入背包
             StoreProc::PutTaskCardInStore($taskCard->mo()->newTaskCard);        # 放卡入背包
         }
         }
-        StlUtil::dictRemove($store->taskcards, $taskCardUID);                   # 移除任务卡
+        if ($taskCard->mo()->type == 2) {
+            // 日常任务卡,不移除
+        } else {
+            StlUtil::dictRemove($store->taskcards, $taskCardUID);                   # 移除任务卡
+        }
         self::autoRecoverStateMissions();                                       # 重新更新其它状态类的任务卡
         self::autoRecoverStateMissions();                                       # 重新更新其它状态类的任务卡
 
 
         StatisticsProc::SelfTaskDataCollect($taskCard->typeId);                 #统计自己的任务完成情况
         StatisticsProc::SelfTaskDataCollect($taskCard->typeId);                 #统计自己的任务完成情况
@@ -579,6 +583,8 @@ class TaskProc {
                 $dailyCards->$id = $cardMo;
                 $dailyCards->$id = $cardMo;
             }
             }
         }
         }
+        $dailyCards = (array) $dailyCards;
+        ksort($dailyCards);
 
 
         foreach ($dailyCards as $id => $cardMo) {
         foreach ($dailyCards as $id => $cardMo) {
             foreach ($store->taskcards as $uid => $card) {
             foreach ($store->taskcards as $uid => $card) {

+ 3 - 4
Gameserver/Amfphp/process/UserProc.php

@@ -410,13 +410,11 @@ class UserProc {
      */
      */
     static function checkContidays($isnew = 0) {
     static function checkContidays($isnew = 0) {
         $ret = TimeUtil::tsDay() - TimeUtil::tsDay(req()->userInfo->game->baseInfo->lastLogin); // 对比登录日期
         $ret = TimeUtil::tsDay() - TimeUtil::tsDay(req()->userInfo->game->baseInfo->lastLogin); // 对比登录日期
-        if ($ret > 0) {                                                         # 当天第一次登录
+        if ($ret > 0 || $isnew) {                                               # 当天第一次登录
             self::OnNewDay($isnew);
             self::OnNewDay($isnew);
         } else {                                                                # 更新下登录次数记录(任务计数器)
         } else {                                                                # 更新下登录次数记录(任务计数器)
         }
         }
         if ($ret == 1) {                                                        # 连续登录
         if ($ret == 1) {                                                        # 连续登录
-            TaskProc::ResetDailyTask();                                             # 重置每日任务
-            TaskProc::ResetDailyTaskCards();                                        # 重置每日任务卡
         } else if ($ret >= 2) {                                                 # 隔天登录
         } else if ($ret >= 2) {                                                 # 隔天登录
         }
         }
         req()->userInfo->game->baseInfo->lastLogin = now();                     # 更新下访问时间
         req()->userInfo->game->baseInfo->lastLogin = now();                     # 更新下访问时间
@@ -430,10 +428,11 @@ class UserProc {
      * @param bool $isnew Description
      * @param bool $isnew Description
      */
      */
     static function OnNewDay($isnew) {
     static function OnNewDay($isnew) {
-        self::updatePlatUserRecord($isnew);                               # 添加到到当天活跃玩家记录集合
+        self::updatePlatUserRecord($isnew);                                     # 添加到到当天活跃玩家记录集合
         ActiveProc::DailyReset();                                               # 抽奖、每日任务状态,计数器...
         ActiveProc::DailyReset();                                               # 抽奖、每日任务状态,计数器...
         FightProc::ClearByDay();                                                # 战斗相关状态每日清理
         FightProc::ClearByDay();                                                # 战斗相关状态每日清理
         ShopProc::DailyCheck();
         ShopProc::DailyCheck();
+        TaskProc::ResetDailyTaskCards();                                        # 重置每日任务卡
     }
     }
 
 
 // <editor-fold defaultstate="collapsed" desc="创建新用户">
 // <editor-fold defaultstate="collapsed" desc="创建新用户">