2867 【1.5】进入聚魂副本后,下线,半小时后上线发送一封没有物品的聚魂满背包邮件
1个文件已修改
46 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GatherSoul.py 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GatherSoul.py
@@ -571,32 +571,34 @@
    curPlayer = FBCommon.GetCurSingleFBPlayer()
    if not curPlayer:
        #奖励直接发邮件
        PlayerControl.SendMailByKey('JHBagFull2', [ownerID], totalItemList)
        if totalItemList:
            PlayerControl.SendMailByKey('JHBagFull2', [ownerID], totalItemList)
        
        GameWorldProcess.CloseFB(tick)
        return
    needPackSpaceDict = {}
    for itemID, itemCnt, isBind in totalItemList:
        curItem = GameWorld.GetGameData().GetItemByTypeID(itemID)
        if not curItem:
            return
        packType = ChConfig.GetItemPackType(curItem.GetType())
        needSpace = ItemControler.GetItemNeedPackCount(packType, curItem, itemCnt)
        needPackSpaceDict[packType] = needPackSpaceDict.get(packType, 0) + needSpace
    isSendMail = False #是否背包不足
    for packType, needSpace in needPackSpaceDict.items():
        if needSpace > ItemCommon.GetItemPackSpace(curPlayer, packType, needSpace):
            isSendMail = True
            break
    if isSendMail:
        PlayerControl.SendMailByKey('JHBagFull2', [curPlayer.GetPlayerID()], totalItemList)
        GameWorld.DebugLog("背包空间不够,发送邮件: mailItemList=%s" % str(totalItemList), curPlayer.GetPlayerID())
    else:
    if totalItemList:
        needPackSpaceDict = {}
        for itemID, itemCnt, isBind in totalItemList:
            ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [],
                                            event=["GatherSoulFB", False, {}])
            curItem = GameWorld.GetGameData().GetItemByTypeID(itemID)
            if not curItem:
                return
            packType = ChConfig.GetItemPackType(curItem.GetType())
            needSpace = ItemControler.GetItemNeedPackCount(packType, curItem, itemCnt)
            needPackSpaceDict[packType] = needPackSpaceDict.get(packType, 0) + needSpace
        isSendMail = False #是否背包不足
        for packType, needSpace in needPackSpaceDict.items():
            if needSpace > ItemCommon.GetItemPackSpace(curPlayer, packType, needSpace):
                isSendMail = True
                break
        if isSendMail:
            PlayerControl.SendMailByKey('JHBagFull2', [curPlayer.GetPlayerID()], totalItemList)
            GameWorld.DebugLog("背包空间不够,发送邮件: mailItemList=%s" % str(totalItemList), curPlayer.GetPlayerID())
        else:
            for itemID, itemCnt, isBind in totalItemList:
                ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [],
                                                event=["GatherSoulFB", False, {}])
            
    fbCfg = GetGatherSoulFBCfg()
    costTime = tick - GameWorld.GetGameWorld().GetOpenFBTick()