Преглед изворни кода

排行榜红点邮件红点加到系统消息里

cyzhao пре 11 месеци
родитељ
комит
9939d983ca

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

@@ -231,6 +231,19 @@ class Info_PrivateState extends Object_ext {
      * 0:没有红点 1:有红点
      */
     public $redTip_Mail = 0;
+    
+    /**
+     * 关卡榜里的荣誉榜红点
+     * @var type
+     */
+    public $redTip_RewardMainGateRank = 0;
+    
+    /**
+     * 战力榜里的荣誉榜红点
+     * @var type
+     */
+    public $redTip_RewardFightPowerRank = 0;
+
 
     public function initialize() {
         $this->junbeiShopNumRecord = new \stdClass();

+ 83 - 60
Gameserver/App/process/FightProc.php

@@ -138,8 +138,8 @@ class FightProc {
             'prizeArr' => $prizeArr,
             'store' => ctx()->store,
             'task' => ctx()->task,
-            'reward'=> StoreProc::$reward,
-            'reward_Gem'=> StoreProc::$reward_Gem,
+            'reward' => StoreProc::$reward,
+            'reward_Gem' => StoreProc::$reward_Gem,
         );
         return Resp::ok($ret);
     }
@@ -322,8 +322,8 @@ class FightProc {
                     StoreProc::AddMultiItemInStore($layerMo->rewards);              # 发放奖励
                 }
             }
-            
-            TaskProc::OnPassLayer_ChallengeGate($finalLayer-1);          
+
+            TaskProc::OnPassLayer_ChallengeGate($finalLayer - 1);
             ctx()->gates()->TowerGateInfo()->CurLayer = $finalLayer;
             UserProc::updateUserInfo();
             $ret = array(
@@ -454,7 +454,7 @@ class FightProc {
                     self::IsAchievedMainGate_PassReward($maxGateId);
                 }
             }
-            
+
             TaskProc::OnPassGate_X($gateId);                                    # 刷新任务进度: 通关第X关
 
             if (Ins_GateInfo::GateTypeFromId($gateId) == Enum_GateType::MainStoryGate) {
@@ -476,10 +476,10 @@ class FightProc {
         ctx()->base()->Add_Exp($waveMo->rewardExp);                             # 指挥官经验
         ctx()->base()->Add_Gold($waveMo->rewardGold);                           # 金币奖励
         //$pickups .= ";1," . $gold + $waveMo->rewardGold;
-        
-        $str =  "1," . $gold + $waveMo->rewardGold;
+
+        $str = "1," . $gold + $waveMo->rewardGold;
         StoreProc::AddMultiItemInStore($str);
-        
+
         # 图纸奖励: 数量min-max, 部位随机
         if (strlen($waveMo->rewardTuZhi) > 0 && str_contains($waveMo->rewardTuZhi, '-')) {
             list($tz_min, $tz_max) = explode('-', $waveMo->rewardTuZhi);        # 图纸数量
@@ -514,7 +514,7 @@ class FightProc {
                         //StoreProc::PutGemInStore($gemId);                       # 发放宝石并退出本次投色子
                         //$pickups .= ";$gemId,1";                     
                         StoreProc::AddMultiItemInStore("$gemId,1");
-                        
+
                         break;
                     }
                     $l += $item['p'];                                             # 累计到下一段
@@ -522,7 +522,7 @@ class FightProc {
             }
         }
 
-        TaskProc::OnFightNumMainGate();       
+        TaskProc::OnFightNumMainGate();
         TaskProc::OnKillCommonNumMonster($killMonsterNum);
         TaskProc::OnKillleaderNumMonster($killBossNum);
 
@@ -535,9 +535,8 @@ class FightProc {
             'gold' => $gold + $waveMo->rewardGold,
             'exp' => $waveMo->rewardExp,
             //'rewardStr' => $pickups
-            'reward'=> StoreProc::$reward,
-            'reward_Gem'=> StoreProc::$reward_Gem,
-            
+            'reward' => StoreProc::$reward,
+            'reward_Gem' => StoreProc::$reward_Gem,
         );
         return Resp::ok($ret);
     }
@@ -615,25 +614,25 @@ class FightProc {
     public static function Ranking_MainGateIndex($maxGateIndex) {
         $memKey = MemKey_GameRun::Rank_MainGateIndex_Zone_zset(req()->zoneid);
         $mem = gMem();
-        
+
         $uid = req()->uid;
-        $score = self::GetRankScoreUid($uid, 1);  
-        if($maxGateIndex > $score){
-            $arr = array();                     
-            $arr["$uid"] = self::createScore($maxGateIndex);            
+        $score = self::GetRankScoreUid($uid, 1);
+        if ($maxGateIndex > $score) {
+            $arr = array();
+            $arr["$uid"] = self::createScore($maxGateIndex);
             $mem->zadd($memKey, $arr);
         }
-        
+
         $length = $mem->zlen($memKey);
         if ($length > glc()->Rank_MainGateIndex_OnListRank) {
             $num = $length - glc()->Rank_MainGateIndex_OnListRank;
             $mem->zremrangebyrank($memKey, 0, $num - 1);
         }
     }
-    
+
     public static function createScore($score) {
-        if($score > 0){
-            $newScore = $score.'.'.(9999999999 - now());
+        if ($score > 0) {
+            $newScore = $score . '.' . (9999999999 - now());
             return $newScore;
         }
         return 0;
@@ -646,15 +645,15 @@ class FightProc {
     public static function Ranking_FightPower() {
         $memKey = MemKey_GameRun::Rank_FightPower_Zone_zset(req()->zoneid);
         $mem = gMem();
- 
+
         $uid = req()->uid;
-     
-        $score = self::GetRankScoreUid($uid, 2);   
+
+        $score = self::GetRankScoreUid($uid, 2);
         $power = self::countUserFightPower();
         if ($power > $score) {
-            $arr = array();                     
-            $arr["$uid"] = self::createScore($power);            
-            $mem->zadd($memKey, $arr);                                  
+            $arr = array();
+            $arr["$uid"] = self::createScore($power);
+            $mem->zadd($memKey, $arr);
             self::IsAchievedFightPower_PassReward($power);
         }
 
@@ -667,16 +666,16 @@ class FightProc {
 
     public static function GetRankScoreUid($uid_rank, $type) {
         if ($type == 1) {
-            $score = gMem()->zscore(MemKey_GameRun::Rank_MainGateIndex_Zone_zset(req()->zoneid), $uid_rank);           
+            $score = gMem()->zscore(MemKey_GameRun::Rank_MainGateIndex_Zone_zset(req()->zoneid), $uid_rank);
         } else {
-            $score = gMem()->zscore(MemKey_GameRun::Rank_FightPower_Zone_zset(req()->zoneid), $uid_rank);          
+            $score = gMem()->zscore(MemKey_GameRun::Rank_FightPower_Zone_zset(req()->zoneid), $uid_rank);
         }
-        
-        if($score == null){
+
+        if ($score == null) {
             $score = 0;
         }
-            
-        return intval($score);       
+
+        return intval($score);
     }
 
     /**
@@ -688,31 +687,23 @@ class FightProc {
 
         $selfIsHasRank = 0; //本人是否上榜 0未上榜没有排名 1上榜则selfRank就是排名
         $selfExtraInfo = 0;
-        $isExistFinishReward = false;
+        $isExistFinishReward = 0;
         if ($type == 1) {
             $list = gMem()->zrevrange(MemKey_GameRun::Rank_MainGateIndex_Zone_zset(req()->zoneid), 0, glc()->Rank_MainGateIndex_OnListRank, true);
             $selfExtraInfo = ctx()->gates->maxPassGateNumId();
 
-            $memKey = MemKey_GameRun::RankReward_MainGateIndex_Zone_hash(req()->zoneid);
-            $dic = gMem()->hgetall($memKey);
-            foreach ($dic as $gateId => $ins_rank) {
-                if (!in_array($gateId, ctx()->privateState->rankReward_drawed_MainGate)) {
-                    $isExistFinishReward = true;
-                    break;
-                }
-            }
+            $isExistFinishReward = self::isExistNoDrawed_MainGate();
         } else {
             $list = gMem()->zrevrange(MemKey_GameRun::Rank_FightPower_Zone_zset(req()->zoneid), 0, glc()->Rank_FightPower_OnListRank, true);
             $selfExtraInfo = self::countUserFightPower();
 
-            $memKey = MemKey_GameRun::RankReward_FightPower_Zone_hash(req()->zoneid);
-            $dic = gMem()->hgetall($memKey);
-            foreach ($dic as $fightPower => $ins_rank) {
-                if (!in_array($fightPower, ctx()->privateState->rankReward_drawed_fightPower)) {
-                    $isExistFinishReward = true;
-                    break;
-                }
-            }
+            $isExistFinishReward = self::isExistNoDrawed_FightPower();
+        }
+
+        if ($isExistFinishReward == 1) {
+            $isExistFinishReward = true;
+        } else {
+            $isExistFinishReward = false;
         }
 
         $selfRank = null;
@@ -729,7 +720,7 @@ class FightProc {
             }
         }
 
-        if ($selfRank == null) {           
+        if ($selfRank == null) {
             $selfRank = self::initOtherUidRankInfo(req()->uid, $selfExtraInfo, $type);
         }
 
@@ -761,12 +752,12 @@ class FightProc {
         if ($lv == null) {
             $lv = 0;
         }
-    
+
         $ins_rank->rank = $lv + 1;
         $ins_rank->uid = $uid;
         $userInfo = UserProc::getUserGame(req()->zoneid, $uid);
         $ins_rank->name = $userInfo->baseInfo->name;
-        $ins_rank->headImg = $userInfo->baseInfo->headImg;       
+        $ins_rank->headImg = $userInfo->baseInfo->headImg;
         //$ret = intval($score);
 //        if(!$isToRank){
 //            $ret = $score;
@@ -835,6 +826,36 @@ class FightProc {
         }
     }
 
+    public static function isExistNoDrawed_MainGate() {
+        $isExistFinishReward = 0;
+        $memKey = MemKey_GameRun::RankReward_MainGateIndex_Zone_hash(req()->zoneid);
+        $dic = gMem()->hgetall($memKey);
+        foreach ($dic as $gateId => $ins_rank) {
+            if (!in_array($gateId, ctx()->privateState->rankReward_drawed_MainGate)) {
+                $isExistFinishReward = 1;
+                break;
+            }
+        }
+
+        ctx()->privateState->redTip_RewardMainGateRank = $isExistFinishReward;
+        return $isExistFinishReward;
+    }
+
+    public static function isExistNoDrawed_FightPower() {
+        $isExistFinishReward = 0;
+        $memKey = MemKey_GameRun::RankReward_FightPower_Zone_hash(req()->zoneid);
+        $dic = gMem()->hgetall($memKey);
+        foreach ($dic as $fightPower => $ins_rank) {
+            if (!in_array($fightPower, ctx()->privateState->rankReward_drawed_fightPower)) {
+                $isExistFinishReward = 1;
+                break;
+            }
+        }
+
+        ctx()->privateState->redTip_RewardFightPowerRank = $isExistFinishReward;
+        return $isExistFinishReward;
+    }
+
     /**
      * 6813
      * @return type
@@ -895,8 +916,9 @@ class FightProc {
             ctx()->privateState->rankReward_drawed_MainGate[] = $gateId;
         }
 
+        $tag = self::isExistNoDrawed_MainGate();
         UserProc::updateUserInfo();
-        $ret = array();
+        $ret = array('redTip' => $tag,);
         return Resp::ok($ret);
     }
 
@@ -918,8 +940,10 @@ class FightProc {
             ctx()->privateState->rankReward_drawed_fightPower[] = $fightPower;
         }
 
+        $tag = self::isExistNoDrawed_FightPower();
+
         UserProc::updateUserInfo();
-        $ret = array();
+        $ret = array('redTip' => $tag,);
         return Resp::ok($ret);
     }
 
@@ -965,21 +989,20 @@ class FightProc {
 
     public static function DeleteRankInvalidUser($uid2) {
         $dic1 = gMem()->zrevrange(MemKey_GameRun::Rank_MainGateIndex_Zone_zset(req()->zoneid), 0, glc()->Rank_MainGateIndex_OnListRank, true);
-        foreach ($dic1 as $uid => $score) {        
+        foreach ($dic1 as $uid => $score) {
             if ($uid == $uid2) {
                 gMem()->zrem(MemKey_GameRun::Rank_MainGateIndex_Zone_zset(req()->zoneid), $uid);
                 break;
             }
         }
 
-        $dic2 = gMem()->zrevrange(MemKey_GameRun::Rank_FightPower_Zone_zset(req()->zoneid), 0, glc()->Rank_FightPower_OnListRank, true);     
-        foreach ($dic2 as $uid => $score) {         
+        $dic2 = gMem()->zrevrange(MemKey_GameRun::Rank_FightPower_Zone_zset(req()->zoneid), 0, glc()->Rank_FightPower_OnListRank, true);
+        foreach ($dic2 as $uid => $score) {
             if ($uid == $uid2) {
                 gMem()->zrem(MemKey_GameRun::Rank_FightPower_Zone_zset(req()->zoneid), $uid);
                 break;
             }
         }
-        
     }
 
     /*

+ 1 - 1
Gameserver/App/process/StoreProc.php

@@ -570,7 +570,7 @@ class StoreProc {
 
         TaskProc::OnSetSpecialQualGem();
 
-        FightProc::Ranking_FightPower();
+        FightProc::Ranking_FightPower();           
         ctx($user);
         UserProc::updateUserInfo();
         return Resp::ok(array(

+ 4 - 0
Gameserver/App/process/SystemProc.php

@@ -122,11 +122,15 @@ class SystemProc {
             $count = $defaultwaitcont;
         }              
         $tag = EmailProc::IsExistRedTip();
+        $redTip_MainGate = FightProc::isExistNoDrawed_MainGate();
+        $redTip_FightPower = FightProc::isExistNoDrawed_FightPower();
         
         $ret = array(
             'sysMessage' => $sysMessage,
             'nextFetchTime' => $count,
             'redTip_Mail'=> $tag,
+            'redTip_MainGate'=>$redTip_MainGate,
+            'redTip_FightPower'=>$redTip_FightPower,
         );
 
         return Resp::ok($ret);                                                  # 返回信息

+ 5 - 1
Gameserver/App/process/UserProc.php

@@ -316,6 +316,10 @@ class UserProc {
             FightProc::Ranking_FightPower();
             TaskProc::OnLogin_Daily();
             TaskProc::OnLogin_day7();
+            EmailProc::IsExistRedTip();
+            FightProc::isExistNoDrawed_FightPower();
+            FightProc::isExistNoDrawed_MainGate();
+            
             $resp = Resp::ok($game);                                            # 设置返回值
             self::updtateUserZoneInfo();                                        # 1. 更新玩家分区记录
         }
@@ -407,7 +411,7 @@ class UserProc {
         //self::clear();
         FightProc::FightDailyClear();
         //TaskProc::initAchieveData();
-        TaskProc::ResetTask();
+        TaskProc::ResetTask();       
     }
 
 //    static function clear() {