| | |
| | | @param curPlayer: 可能为None
|
| | | '''
|
| | |
|
| | | notifyWorldAddItemList = [] # 新增全服拍品通知 [[itemGUID, itemID, playerID], ...]
|
| | | isSortWorldItem = False
|
| | | notifyAddItemList = [] # 新增拍品通知 [[itemGUID, itemID, playerID], ...]
|
| | | notifyFamilyAddItemDict = {} # 新增仙盟拍品通知 {familyID:[auctionItem, ...], ...}
|
| | | for playerID, familyID, familyPlayerIDList, itemData in addAuctionItemList:
|
| | | if not playerID and not familyID:
|
| | |
| | | if not auctionItem:
|
| | | continue
|
| | |
|
| | | itemGUID = auctionItem.ItemGUID
|
| | | itemID = auctionItem.ItemID
|
| | | notifyAddItemList.append([itemGUID, itemID, playerID])
|
| | | if familyID:
|
| | | familyAddItemList = notifyFamilyAddItemDict.get(familyID, [])
|
| | | familyAddItemList.append(auctionItem)
|
| | | notifyFamilyAddItemDict[familyID] = familyAddItemList
|
| | | else:
|
| | | itemGUID = auctionItem.ItemGUID
|
| | | itemID = auctionItem.ItemID
|
| | | notifyWorldAddItemList.append([itemGUID, itemID, playerID])
|
| | | isSortWorldItem = True
|
| | |
|
| | | if notifyFamilyAddItemDict or notifyWorldAddItemList:
|
| | | isSortWorldItem = notifyWorldAddItemList != []
|
| | | if notifyAddItemList:
|
| | | __SortAuctionitem(isSortWorldItem=isSortWorldItem)
|
| | |
|
| | | # 通知新增仙盟拍品
|
| | | for familyID, familyAddItemList in notifyFamilyAddItemDict.items():
|
| | | Sync_FamilyAuctionItemInfo(None, familyID, familyAddItemList)
|
| | |
|
| | | # 通知全服拍品关注玩家
|
| | | __NotifyAuctionPlayerAddItem(notifyWorldAddItemList)
|
| | | # 通知拍品关注玩家
|
| | | __NotifyAuctionPlayerAddItem(notifyAddItemList)
|
| | | return
|
| | |
|
| | | def __DoAddAuctionItem(curPlayer, playerID, familyID, familyPlayerIDList, itemData):
|
| | |
| | | GameWorld.DebugLog("更新拍品数: %s" % len(auctionItemMgr.allAuctionItemDict))
|
| | | return auctionItem
|
| | |
|
| | | def __NotifyAuctionPlayerAddItem(notifyWorldAddItemList):
|
| | | def __NotifyAuctionPlayerAddItem(notifyAddItemList):
|
| | | ## 通知关注物品的玩家新上架物品了
|
| | | if not notifyWorldAddItemList:
|
| | | if not notifyAddItemList:
|
| | | return
|
| | | attentionMgr = PyDataManager.GetAuctionAttentionManager()
|
| | | playerManager = GameWorld.GetPlayerManager()
|
| | |
| | | if not playerAttentionIDList:
|
| | | continue
|
| | | infoPack = None
|
| | | for itemGUID, itemID, playerID in notifyWorldAddItemList:
|
| | | if playerID == player.GetPlayerID():
|
| | | for itemGUID, itemID, playerID in notifyAddItemList:
|
| | | if playerID and playerID == player.GetPlayerID():
|
| | | # 自己上架的物品不通知
|
| | | continue
|
| | | if itemID not in playerAttentionIDList:
|