Kaynağa Gözat

荣誉榜接口

cyzhao 1 yıl önce
ebeveyn
işleme
5ff0a0f6bc

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

@@ -345,9 +345,9 @@ class CmdCode {
     const fight_rank_GetFightPowerRankRewardInfo = 6814;
     
     /**
-     * 领取荣誉榜奖励
+     * 领取通关荣誉榜奖励
      */
-    const fight_rank_ReceiveRankReward = 6815;
+    const fight_rank_ReceiveRankReward_MainGate = 6815;
     // </editor-fold>
     // <editor-fold defaultstate="collapsed" desc="    反射方法    ">
 

+ 7 - 1
Gameserver/App/base/ErrCode.php

@@ -377,7 +377,13 @@ class ErrCode {
      * 挑战关卡: 起始层id有误
      */
     const tower_layerNum = 3213;
-
+    
+    /**
+     * 排行榜荣誉榜奖励已经领取
+     */
+    const rankReward_HasReceive = 3214;
+        
+    
 // </editor-fold>
 //
 //   // <editor-fold defaultstate="collapsed" desc="    store 3300    ">

+ 40 - 13
Gameserver/App/process/FightProc.php

@@ -41,12 +41,14 @@ class FightProc {
                 return self::GetRankInfo();
             case CmdCode::fight_rank_uidEquipInfo:                              # 6812 获取主线关卡榜内玩家的装备信息    
                 return self::GetUidEquipInfo_Rank();
-            case CmdCode::fight_rank_GetMainGateRankRewardInfo:                 # 6813 荣誉榜信息
+            case CmdCode::fight_rank_GetMainGateRankRewardInfo:                 # 6813 获取通关荣誉榜信息
                 return self::GetmainGate_RankRewardInfo();
-            case CmdCode::fight_rank_GetFightPowerRankRewardInfo:               # 6814 荣誉榜信息
+            case CmdCode::fight_rank_GetFightPowerRankRewardInfo:               # 6814 获取战力荣誉榜信息
                 return self::GetFightPower_RankRewardInfo();
-            case CmdCode::fight_rank_ReceiveRankReward:                         # 6815 领取荣誉榜奖励
-                return self::ReceiveRankReward();
+            case CmdCode::fight_rank_ReceiveRankReward_MainGate:                # 6815 领取通关荣誉榜奖励
+                return self::ReceiveRankReward_MainGate();
+            case CmdCode::fight_rank_ReceiveRankReward_FightPower:              # 6816 领取战力荣誉榜奖励
+                return self::ReceiveRankReward_FightPower();
             default:
                 Err(ErrCode::cmd_err);
         }
@@ -774,23 +776,48 @@ class FightProc {
     }
     
     /**
-     * 6815 
+     * 6815 领取通关荣誉榜奖励
      * @return type
      */
-    public static function ReceiveRankReward() {
-        list($type,$id) = req()->paras;               
+    public static function ReceiveRankReward_MainGate() {
+        list($gateId) = req()->paras;               
         
-        my_Assert($gateMo != null, ErrCode::err_const_no);
-        my_Assert(StlUtil::dictHasProperty(ctx()->gates->GateList, $gateId), ErrCode::gate_NoUserGateInfo);
+        my_Assert(!in_array($gateId, ctx()->privateState->rankReward_drawed_MainGate), ErrCode::rankReward_HasReceive);
+        
+        $mo = GameConfig::rank_passgatereward_getItem($gateId);
+        my_Assert($mo != null, ErrCode::err_const_no);
+                       
+        $memKey = MemKey_GameRun::RankReward_MainGateIndex_Zone_hash(req()->zoneid);              
+        if(gMem()->hexists($memKey,$gateId)){
+            StoreProc::AddMultiItemInStore($mo->reward);
+            ctx()->privateState->rankReward_drawed_MainGate[] = $gateId;
+        }
+        
+        UserProc::updateUserInfo();
+        $ret = array();
+        return Resp::ok($ret);
+    }
+    
+    /**
+     * 6816 领取战力荣誉榜奖励
+     * @return type
+     */
+    public static function ReceiveRankReward_FightPower() {
+        list($fightPower) = req()->paras;               
         
+        my_Assert(!in_array($fightPower, ctx()->privateState->rankReward_drawed_fightPower), ErrCode::rankReward_HasReceive);
         
+        $mo = GameConfig::rank_passgatereward_getItem($fightPower);
+        my_Assert($mo != null, ErrCode::err_const_no);
+                       
         $memKey = MemKey_GameRun::RankReward_FightPower_Zone_hash(req()->zoneid);              
-        $dic = gMem()->hgetall($memKey);
+        if(gMem()->hexists($memKey,$fightPower)){
+            StoreProc::AddMultiItemInStore($mo->reward);
+            ctx()->privateState->rankReward_drawed_fightPower[] = $fightPower;
+        }
         
         UserProc::updateUserInfo();
-        $ret = array(
-            'rankReward' => $dic,             
-        );
+        $ret = array();
         return Resp::ok($ret);
     }
 }