|  |  |  | 
|---|
|  |  |  | @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: | 
|---|