Kaynağa Gözat

广告任务

cyzhao 5 ay önce
ebeveyn
işleme
b25b0da25b

+ 5 - 0
Gameserver/App/base/CmdCode.php

@@ -208,6 +208,11 @@ class CmdCode {
      * 一键领取
      */
     const cmd_task_prizesAllreceived = 6206;
+    
+    /**
+     * 观看广告 通知后端
+     */
+    const cmd_task_lookGuangGao = 6207;
 // </editor-fold>
 //
 // <editor-fold defaultstate="collapsed" desc="背包操作码 - 64xx">

+ 1 - 0
Gameserver/App/model/User/Enum_ActiveTaskCmdType.php

@@ -60,5 +60,6 @@ class Enum_ActiveTaskCmdType extends Enum {
     const BuyGold = 906;               //购买铜钱一次
     const OpenNumBrightBox_state = 907;       //开启1次宝箱(宝石宝箱 装备宝箱) 状态类
     const BuyNumDailyShop_state = 908;       //每日商店购买物品1次 状态类
+    const LookGuanggao = 909;       //观看任意广告即可获得
          
 }

+ 3 - 1
Gameserver/App/process/ActiveProc.php

@@ -147,7 +147,9 @@ class ActiveProc {
 
         if (ctx()->privateState->lotteryNum_free > GameConfig::glc2()->activity_lottery_FreeNum && ctx()->privateState->lotteryNum_free <= GameConfig::glc2()->activity_lottery_FreeNum + GameConfig::glc2()->activity_lottery_GuanggaoNum) {
             my_Assert(now() - ctx()->privateData(true)->activity_lottery_guanggaoTs >= GameConfig::glc2()->activity_lottery_GuanggaoDownTs, ErrCode::user_shop_DownTsLimit);
-            ctx()->privateData(true)->activity_lottery_guanggaoTs = now();                
+            ctx()->privateData(true)->activity_lottery_guanggaoTs = now();  
+            
+            TaskProc::OnLookGuanggao();
         }
 
         if (ctx()->privateState->lotteryNum < glc()->activity_lottery_allNum) {

+ 10 - 0
Gameserver/App/process/ShopProc.php

@@ -66,6 +66,8 @@ class ShopProc {
             ctx()->privateData(true)->guanggaoGetTiliNum += 1;
 
             ctx()->privateData(true)->guanggaoGetTili_ts = now();
+            
+            TaskProc::OnLookGuanggao();
         } else {
             $maxNum = glc()->BuyTili_DailyMaxNum;
             my_Assert(ctx()->privateState->buyTiliNum < $maxNum, ErrCode::user_shop_buyTiliNumLimit);
@@ -239,6 +241,8 @@ class ShopProc {
                 }
                 ctx()->privateState->dailyShop_GuangGaoNum += 1;
                 ctx()->privateState->dailyShop_GuangGaoTs = now();
+                
+                TaskProc::OnLookGuanggao();
             }
         } else {
             my_Assert(!in_array($typeId, ctx()->privateState->dailyShopReceived), ErrCode::user_shop_NotRepeatBuy);
@@ -299,12 +303,14 @@ class ShopProc {
                 $buyNum = 1;
                 my_Assert(now() - ctx()->privateState->lastFreeGetTs_ShopBoxCommon_equip >= $mo->freeDownTs * 24 * 60 * 60, ErrCode::user_shop_FreeNumLimit);
                 ctx()->privateState->lastFreeGetTs_ShopBoxCommon_equip = now();
+                TaskProc::OnLookGuanggao();
             }
         } else if ($mo->type == 4) {
             if ($buyNum == 0) {
                 $buyNum = 1;
                 my_Assert(now() - ctx()->privateState->lastFreeGetTs_ShopBoxBright_equip >= $mo->freeDownTs * 24 * 60 * 60, ErrCode::user_shop_FreeNumLimit);
                 ctx()->privateState->lastFreeGetTs_ShopBoxBright_equip = now();
+                TaskProc::OnLookGuanggao();
             }
                         
         }
@@ -408,12 +414,14 @@ class ShopProc {
                 $buyNum = 1;
                 my_Assert(now() - ctx()->privateState->lastFreeGetTs_ShopBoxCommon >= $mo->freeDownTs * 24 * 60 * 60, ErrCode::user_shop_FreeNumLimit);
                 ctx()->privateState->lastFreeGetTs_ShopBoxCommon = now();
+                TaskProc::OnLookGuanggao();
             }
         } else if ($mo->type == 2) {
             if ($buyNum == 0) {
                 $buyNum = 1;
                 my_Assert(now() - ctx()->privateState->lastFreeGetTs_ShopBoxBright >= $mo->freeDownTs * 24 * 60 * 60, ErrCode::user_shop_FreeNumLimit);
                 ctx()->privateState->lastFreeGetTs_ShopBoxBright = now();
+                TaskProc::OnLookGuanggao();
             }
                         
         }
@@ -559,6 +567,8 @@ class ShopProc {
             //收费买
             if ($typeId == 1 && ctx()->privateState->goldShop_GuangGaoNum < $mo->guanggaoNum) {
                 ctx()->privateState->goldShop_GuangGaoNum += 1;
+                
+                TaskProc::OnLookGuanggao();
             } else {
                 my_Assert(ctx()->baseInfo->cash >= $mo->price, ErrCode::notenough_cash_msg);
                 ctx()->baseInfo->Consume_Cash($mo->price);

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

@@ -34,10 +34,25 @@ class TaskProc {
                 return TaskProc::receiveActivePointBoxReward();
             case CmdCode::cmd_task_prizesAllreceived:                           # 6206 任务奖励一键领取
                 return TaskProc::taskPrizesAllreceived();
+            case CmdCode::cmd_task_lookGuangGao:                                # 6207 观看广告 通知后端
+                return TaskProc::LookGuangGao();               
             default:
                 Err(ErrCode::cmd_err);
         }
     }
+    
+    /**
+     * 6207 观看广告 通知后端
+     * @return type
+     */
+    public static function LookGuangGao() {
+        //list($type) = req()->paras;
+        TaskProc::OnLookGuanggao();
+        
+        UserProc::updateUserInfo();
+        return Resp::ok(array("task" => ctx()->task,                 
+        ));
+    }
 
     /**
      *  6206 任务奖励一键领取
@@ -696,6 +711,14 @@ class TaskProc {
         $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::BuyTiliOrLookGuanggao, Enum_PropelType::add, 1, array());
         self::CheckActiveTaskConditions($taskEventArg);
     }
+    
+    /**
+     * 观看广告
+     */
+    static function OnLookGuanggao() {
+        $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::LookGuanggao, Enum_PropelType::add, 1, array());
+        self::CheckActiveTaskConditions($taskEventArg);
+    }
 
     /**
      * 任意充值X次