Selaa lähdekoodia

悟道bug修复

cyzhao 6 kuukautta sitten
vanhempi
commit
b0a8a66c79

+ 2 - 2
Gameserver/App/base/CmdCode.php

@@ -168,9 +168,9 @@ class CmdCode {
     const cmd_active_limitTsBuy = 6108;
 
     /**
-     * 6109 战令奖励领取
+     * 6110 新手7日签到
      */
-    const cmd_active_battlePassDrawReward = 6109;
+    const cmd_active_day7_drawreward_newPlayer = 6110;
 // </editor-fold>
 // <editor-fold defaultstate="collapsed" desc="任务操作码 - 62xx">
 

+ 5 - 0
Gameserver/App/model/User/Enum_SubFunType.php

@@ -64,4 +64,9 @@ class Enum_SubFunType {
      */
     const Gate_BattleBass = 11;
     
+    /**
+     * 新手7日签到
+     */
+    const Day7_Sign_NewPlayer = 12;
+    
 }

+ 15 - 0
Gameserver/App/model/User/Info_PrivateState.php

@@ -429,6 +429,21 @@ class Info_PrivateState extends Object_ext {
      * @var type
      */
     public $battlePass_tili = 0;
+    
+    /**
+     * 7日签到领取数据 新手签到
+     */
+    public $day7_drawed_newPlayer = array();
+
+    /**
+     * 7日签到 新手签到 开始时间
+     */
+    public $day7_drawed_newPlayer_startTs = 0;
+
+    /**
+     *  7日签到 新手签到 登录时间记录
+     */
+    public $day7_drawed_newPlayer_LoginDays = array();
 
     public function initialize() {
     }

+ 42 - 0
Gameserver/App/process/ActiveProc.php

@@ -40,6 +40,8 @@ class ActiveProc {
                 return ActiveProc::LimitTsBuy_Drawreward();
             case CmdCode::cmd_active_battlePassDrawReward:                      # 6109 战令奖励领取
                 return ActiveProc::BattlePassDrawReward();
+            case CmdCode::cmd_active_day7_drawreward_newPlayer:                 # 6110 新手7日签到领取奖励
+                return ActiveProc::Day7_Drawreward_NewPlayer();
             default:
                 Err(ErrCode::cmd_err);
         }
@@ -551,6 +553,8 @@ class ActiveProc {
                     'reward' => StoreProc::$reward,
                     'reward_Gem' => StoreProc::$reward_Gem,
                     'reward_equip' => StoreProc::$reward_equip,
+                    "tili" => ctx()->baseInfo->tili, 
+                    "tili_ts" => ctx()->baseInfo->tili_ts,
         ));
     }
 
@@ -573,4 +577,42 @@ class ActiveProc {
         }
     }
     
+    /**
+     * 7日签到 数据更新
+     */
+    public static function InitDay7_Sign_NewPlayer($unlock = false) {     
+        if (!$unlock && !FightProc::isFunUnlock(21)) {//之所以这有两个判断是因为这个 活动解锁的代码监测位置问题,fightProc 里解锁监测代码在 $gateInfo->tz_state = $index;之前了 这个位置没有办法解锁
+            return;
+        }
+        $index = count(ctx()->privateState->day7_drawed_newPlayer_LoginDays) + 1;
+        if (count(ctx()->privateState->day7_drawed_newPlayer_LoginDays) < 7) {
+            ctx()->privateState->day7_drawed_newPlayer_LoginDays[] = $index;
+        }                      
+    }
+    
+    /**
+     * 6110 战令奖励领取
+     * @return type
+     */
+    public static function Day7_Drawreward_NewPlayer() {
+        list($day) = req()->paras;                                              # 参数: 领取第x天的奖励
+
+        my_Assert(in_array($day, ctx()->privateState->day7_drawed_newPlayer_LoginDays), ErrCode::active_day7_expired);
+        my_Assert(!in_array($day, ctx()->privateState->day7_drawed_newPlayer), ErrCode::active_hasgetted);
+        $day_rwd = GameConfig::activity_day7sign_newplayer_getItem($day);                     # 查询奖励数据
+        my_Assert(null != $day_rwd, ErrCode::err_const_no);                     # 防御找不到配置
+        StoreProc::AddMultiItemInStore($day_rwd->reward);                       # 发放奖励
+        ctx()->privateState->day7_drawed_newPlayer[] = $day;                    # 添加领取记录
+
+        UserProc::updateUserInfo();                                             # 回存
+        return Resp::ok(array('gold' => ctx()->baseInfo->gold,
+                    'cash' => ctx()->baseInfo->cash,
+                    'store' => ctx()->store,
+                    'heros' => ctx()->heros,
+                    'reward' => StoreProc::$reward,
+                    'reward_Gem' => StoreProc::$reward_Gem,
+                    'reward_equip' => StoreProc::$reward_equip,
+        ));
+    }
+    
 }

+ 5 - 0
Gameserver/App/process/FightProc.php

@@ -1041,6 +1041,11 @@ class FightProc {
             if ($mo->funTypeId == 5 && $mo->id == Enum_SubFunType::Day7_Sign) {
                 ActiveProc::DailyResetDay7Task(true);
             }
+            
+            if ($mo->funTypeId == 21 && $mo->id == Enum_SubFunType::Day7_Sign_NewPlayer) {
+                ActiveProc::InitDay7_Sign_NewPlayer(true);
+                ctx()->privateState->day7_drawed_newPlayer_startTs = now();
+            }
         }
     }