5076 【主干】【gt_1.101.1】【BT3】【bt3_1.100.1】合服后玩家上线没收到合服邮件(优化登录异常时发邮件逻辑)
2个文件已修改
23 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -186,7 +186,6 @@
#===============================================================================
    #初始化物品
    #ChItem.InitPlayerLoginItem(curPlayer, tick)
    PlayerControl.ClearUnLoginOKPlayerMailCache(curPlayer.GetPlayerID())
    return
#---------------------------------------------------------------------
##C++封包GameServer_InitOK 处理
@@ -927,8 +926,8 @@
            break
    detailDict = {"MixServerWorldLV":mixServerWorldLV, "LastMixServerDay":lastMixServerDay, "ItemWorldLV":itemWorldLV}
    addItemList = mailItemList + worldLVItemList
    PlayerControl.SendMailByKey("MixServer1", [playerID], addItemList, gold=gold, silver=silver, detail=detailDict)
    GameWorld.Log("    发送合服补偿邮件: itemWorldLV=%s,addItemList=%s" % (itemWorldLV, addItemList), playerID)
    PlayerControl.SendMailByKey("MixServer1", [playerID], addItemList, gold=gold, silver=silver, detail=detailDict)
    
    # 同步排行榜
    PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
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
##更新保存玩家在线时间