Explorar o código

金币商城广告之间有倒计时

cyzhao hai 1 ano
pai
achega
f9cf472373
Modificáronse 1 ficheiros con 77 adicións e 73 borrados
  1. 77 73
      Gameserver/App/process/ShopProc.php

+ 77 - 73
Gameserver/App/process/ShopProc.php

@@ -25,44 +25,44 @@ class ShopProc {
             case CmdCode::cmd_shop_BuyGift:                                     # 6501 商城购买东西
                 return ShopProc::ShopBuyGift();
             case CmdCode::cmd_shop_BuyTili:                                     # 6502 买体力
-                return ShopProc::BuyTili();    
+                return ShopProc::BuyTili();
             default:
                 Err(ErrCode::cmd_err);
         }
     }
-    
+
     public static function BuyTili() {
         list($type) = req()->paras;
-        
+
         $addTili = 0;
-        if($type == 1){//广告
-            $maxNum = glc()->GuanggaoGetTili_DailyMaxNum;                       
-            my_Assert(ctx()->privateState->guanggaoGetTiliNum < $maxNum, ErrCode::user_shop_GuanggaoGetTiliNumLimit); 
-            
+        if ($type == 1) {//广告
+            $maxNum = glc()->GuanggaoGetTili_DailyMaxNum;
+            my_Assert(ctx()->privateState->guanggaoGetTiliNum < $maxNum, ErrCode::user_shop_GuanggaoGetTiliNumLimit);
+
             $addTili = glc()->GuanggaoGetTili;
             ctx()->baseInfo->Add_tili(glc()->GuanggaoGetTili);
             ctx()->privateState->guanggaoGetTiliNum += 1;
         } else {
-            $maxNum = glc()->BuyTili_DailyMaxNum;                       
-            my_Assert(ctx()->privateState->buyTiliNum < $maxNum, ErrCode::user_shop_buyTiliNumLimit); 
-            
-            $arr = explode(',', glc()->BuyTiliCost); 
-            my_Assert(ctx()->baseInfo->cash >= $arr[0], ErrCode::user_shop_NotRepeatBuy); 
+            $maxNum = glc()->BuyTili_DailyMaxNum;
+            my_Assert(ctx()->privateState->buyTiliNum < $maxNum, ErrCode::user_shop_buyTiliNumLimit);
+
+            $arr = explode(',', glc()->BuyTiliCost);
+            my_Assert(ctx()->baseInfo->cash >= $arr[0], ErrCode::user_shop_NotRepeatBuy);
             ctx()->baseInfo->Consume_Cash($arr[0]);
             $addTili = $arr[1];
             ctx()->baseInfo->Add_tili($arr[1]);
-            
+
             ctx()->privateState->buyTiliNum += 1;
         }
-        
-        TaskProc::OnBuyTiliOrLookGuanggao();       
+
+        TaskProc::OnBuyTiliOrLookGuanggao();
         UserProc::updateUserInfo();
         return Resp::ok(array(
-            "privateState"=>ctx()->privateState,
-            "baseInfo"=>ctx()->baseInfo,
-            "tili"=>$addTili,
-            "task"=> ctx()->task,
-            ));
+                    "privateState" => ctx()->privateState,
+                    "baseInfo" => ctx()->baseInfo,
+                    "tili" => $addTili,
+                    "task" => ctx()->task,
+        ));
     }
 
     /**
@@ -148,7 +148,7 @@ class ShopProc {
                         default:
                             break;
                     }
-                    
+
                     TaskProc::OnBuyNumDailyShop();
                 }
 
@@ -159,7 +159,7 @@ class ShopProc {
 
                 StoreProc::AddMultiItemInStore($mo->reward);
                 ctx()->privateState->dailyShopReceived[] = $typeId;
-                
+
                 break;
 
             case EnumShopGift::GemBox_Shop ://宝石宝箱
@@ -188,7 +188,7 @@ class ShopProc {
                         $user->privateState->lastFreeGetTs_ShopBoxBright = now();
                     }
                 }
-                
+
                 $arr = array();
                 $arr[] = 1;
                 $arr[] = 10;
@@ -197,7 +197,7 @@ class ShopProc {
                 }
                 TaskProc::OnOpenNumBrightBox($typeId, $buyNum);
                 TaskProc::OnOpenNumAnyBox($buyNum);
-                
+
                 $perList = explode(';', $mo->percent);
                 $allNum = 0;
                 foreach ($perList as $key => $value) {
@@ -378,58 +378,62 @@ class ShopProc {
                 }
 
                 if ($tempNum >= $mo->freeNum) {
+                    $ts = 0;
+                    switch ($typeId) {
+                        case 1:
+                            $ts = $user->privateState->goldShop_CoolDownTs_1;
+                            break;
+                        case 2:
+                            $ts = $user->privateState->goldShop_CoolDownTs_2;
+                            break;
+                        case 3:
+                            $ts = $user->privateState->goldShop_CoolDownTs_3;
+                            break;
+                    }
+
+                    //收费买
                     if ($typeId == 1 && $user->privateState->goldShop_GuangGaoNum < $mo->guanggaoNum) {
-                        //广告
-                        //$user->privateState->goldShopReceived[] = $typeId;
                         $user->privateState->goldShop_GuangGaoNum += 1;
                     } else {
-                        $ts = 0;
+                        my_Assert($user->baseInfo->cash >= $mo->price, ErrCode::notenough_cash_msg);
+                        ctx()->baseInfo->Consume_Cash($mo->price);
+                    }
+
+                    if ($ts == 0) {
                         switch ($typeId) {
                             case 1:
-                                $ts = $user->privateState->goldShop_CoolDownTs_1;
+                                $user->privateState->goldShop_CoolDownTs_1 = now();
                                 break;
                             case 2:
-                                $ts = $user->privateState->goldShop_CoolDownTs_2;
+                                $user->privateState->goldShop_CoolDownTs_2 = now();
                                 break;
                             case 3:
-                                $ts = $user->privateState->goldShop_CoolDownTs_3;
+                                $user->privateState->goldShop_CoolDownTs_3 = now();
                                 break;
                         }
 
-                        if ($ts == 0) {
-                            //收费买
-                            my_Assert($user->baseInfo->cash >= $mo->price, ErrCode::notenough_cash_msg);
-                            ctx()->baseInfo->Consume_Cash($mo->price);
-                            switch ($typeId) {
-                                case 1:
-                                    $user->privateState->goldShop_CoolDownTs_1 = now();
-                                    break;
-                                case 2:
-                                    $user->privateState->goldShop_CoolDownTs_2 = now();
-                                    break;
-                                case 3:
-                                    $user->privateState->goldShop_CoolDownTs_3 = now();
-                                    break;
-                            }
-                            
-                            //$user->privateState->goldShopReceived[] = $typeId;
-                        } else {
-                            my_Assert(now() - $ts >= $mo->downTs, ErrCode::user_shop_FreeNumLimit);
-                            switch ($typeId) {
-                                case 1:
-                                    $user->privateState->goldShop_CoolDownTs_1 = now();
-                                    break;
-                                case 2:
-                                    $user->privateState->goldShop_CoolDownTs_2 = now();
-                                    break;
-                                case 3:
-                                    $user->privateState->goldShop_CoolDownTs_3 = now();
-                                    break;
-                            }
+                        //$user->privateState->goldShopReceived[] = $typeId;
+                    } else {
+                        my_Assert(now() - $ts >= $mo->downTs, ErrCode::user_shop_FreeNumLimit);
+                        switch ($typeId) {
+                            case 1:
+                                $user->privateState->goldShop_CoolDownTs_1 = now();
+                                break;
+                            case 2:
+                                $user->privateState->goldShop_CoolDownTs_2 = now();
+                                break;
+                            case 3:
+                                $user->privateState->goldShop_CoolDownTs_3 = now();
+                                break;
                         }
                     }
+
+                    if ($typeId == 1 && $user->privateState->goldShop_GuangGaoNum >= $mo->guanggaoNum) {
+                        $user->privateState->goldShop_CoolDownTs_1 = 0;
+                    }
                 }
 
+
                 $user->privateState->goldShopReceived[] = $typeId;
                 StoreProc::AddMultiItemInStore($mo->reward);
 
@@ -468,9 +472,9 @@ class ShopProc {
                     'gold' => $user->baseInfo->gold,
                     'privateState' => $user->privateState,
                     'store' => $user->store,
-                    'task'=> ctx()->task,
-                    'reward'=> StoreProc::$reward,
-                    ));
+                    'task' => ctx()->task,
+                    'reward' => StoreProc::$reward,
+        ));
     }
 
     /**
@@ -479,26 +483,26 @@ class ShopProc {
     public static function ShopDailyClear() {
         ctx()->privateState->dailyShopReceived = array();
         ctx()->privateState->goldShopReceived = array();
-        $num = count(ctx()->privateState->goldShopReceived); 
-        
+        $num = count(ctx()->privateState->goldShopReceived);
+
         $arr = ctx()->privateState->goldShopReceived;
         for ($i = 0; $i < $num; $i++) {
-            if($arr[$i] == 1){
+            if ($arr[$i] == 1) {
                 StlUtil::arrayRemoveAt($arr, $i);
-            }           
-        }       
-        
+            }
+        }
+
         ctx()->privateState->goldShop_CoolDownTs_1 = 0;
         ctx()->privateState->goldShop_GuangGaoNum = 0;
-        
+
         ctx()->privateState->junbeiShopNumRecord = new \stdClass();
 
         ctx()->privateState->dailyShop_GuangGaoNum = 0;
         ctx()->privateState->dailyShop_GuangGaoTs = 0;
-        
+
         ctx()->privateState->guanggaoGetTiliNum = 0;
         ctx()->privateState->buyTiliNum = 0;
-        
+
         self::ShopMonthClear();
     }
 
@@ -512,7 +516,7 @@ class ShopProc {
             if (now() - ctx()->privateState->monthCardShop_ts >= $monthTs) {
                 ctx()->privateState->monthCardShop_ts = 0;
             } else {
-                $mo = GameConfig::shop_monthcard_getItem(1);               
+                $mo = GameConfig::shop_monthcard_getItem(1);
                 EmailProc::SendMonthCardRewardMail(req()->zoneid, req()->uid, $mo->daily_reward);
             }
         }