From 16c082422d5f3c31ca3121bfd2d8f773932f19a5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 30 八月 2021 17:01:18 +0800
Subject: [PATCH] 5076 【主干】【gt_1.101.1】【BT3】【bt3_1.100.1】合服后玩家上线没收到合服邮件(优化登录异常时发邮件逻辑)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index ef151d0..98727d6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -444,17 +444,18 @@
     if playerID not in PyGameData.g_unLoginOKPlayerMailInfo:
         PyGameData.g_unLoginOKPlayerMailInfo[playerID] = []
     mailList = PyGameData.g_unLoginOKPlayerMailInfo[playerID]
+    if [cacheType, mailInfo] in mailList:
+        GameWorld.Log("###重复添加GetGameServerInitOK未登录成功的玩家个人邮件发送缓存! 不添加! mailCount=%s, mailInfo=%s" 
+                      % (len(mailList), str(mailInfo)), playerID)
+        return
+    if len(mailList) >= 10: # 做个限制,防止出问题刷邮件
+        GameWorld.Log("###限制添加GetGameServerInitOK未登录成功的玩家个人邮件发送缓存! 超出最大可添加数,不添加! mailCount=%s, mailInfo=%s" 
+                      % (len(mailList), str(mailInfo)), playerID)
+        return
     mailList.append([cacheType, mailInfo])
     # curPlayer.GetGameServerInitOK()
-    GameWorld.Log("添加GetGameServerInitOK未登录成功的玩家个人邮件发送缓存! mailCount=%s, %s" % (len(mailList), str(PyGameData.g_unLoginOKPlayerMailInfo)), playerID)
-    return
-
-def ClearUnLoginOKPlayerMailCache(playerID):
-    ## 清除未登录成功的玩家个人邮件发送缓存
-    if playerID not in PyGameData.g_unLoginOKPlayerMailInfo:
-        return
-    PyGameData.g_unLoginOKPlayerMailInfo.pop(playerID)
-    GameWorld.Log("清除未登录成功的玩家个人邮件发送缓存!", playerID)
+    GameWorld.Log("添加GetGameServerInitOK未登录成功的玩家个人邮件发送缓存! 等待发送! mailCount=%s, mailInfo=%s" 
+                  % (len(mailList), str(mailInfo)), playerID)
     return
 
 def SendUnLoginOKPlayerMailCache(curPlayer):
@@ -1330,7 +1331,6 @@
     PyGameData.g_playerEquipPartAttrDict.pop(playerID, None)
     PyGameData.g_equipChangeClassLVInfo.pop(playerID, None)
     NPCCommon.ClearPriWoodPile(curPlayer)
-    ClearUnLoginOKPlayerMailCache(playerID)
     return
 
 ##更新保存玩家在线时间

--
Gitblit v1.8.0