hxp
2019-09-09 ea99ae4d08b7475560dceb9b8fd9a370daab0cbb
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
@@ -52,7 +52,8 @@
AuctionRecordResult_BidOK, # 竞价成功
AuctionRecordResult_BidFail, # 竞价失败
AuctionRecordResult_MoveToWorld, # 仙盟拍品转移到全服拍品
) = range(6)
AuctionRecordResult_Unsell, # 下架
) = range(7)
# 当前拍品归类 0-全服拍品 1-仙盟私有拍品
AuctionType_World = 0
@@ -847,13 +848,17 @@
            elif playerID:
                endType = "Return"
                
                # 流拍返还物品邮件
                # 返还物品邮件
                paramList = []
                detail = {"ItemGUID":itemGUID}
                addItemList = [{"ItemID":itemID, "Count":itemCount, "IsAuctionItem":True, "UserData":auctionItem.UserData}]
                PlayerCompensation.SendMailByKey("PaimaiMail4", [playerID], addItemList, paramList, detail=detail)
                AddAuctionRecord(auctionItem, AuctionRecordResult_SellFail)
                # 下架
                if endEvent == "Unsell":
                    PlayerCompensation.SendMailByKey("PaimaiMail9", [playerID], addItemList, paramList, detail=detail)
                    AddAuctionRecord(auctionItem, AuctionRecordResult_Unsell)
                else:
                    PlayerCompensation.SendMailByKey("PaimaiMail4", [playerID], addItemList, paramList, detail=detail)
                    AddAuctionRecord(auctionItem, AuctionRecordResult_SellFail)
            else:
                endType = "SystemDelete"
                GameWorld.Log("系统拍品流拍: itemGUID=%s,itemID=%s" % (itemGUID, itemID))
@@ -972,6 +977,12 @@
            
        return
    
    # 下架拍品
    elif queryType == "UnsellAuctionItem":
        itemGUID = queryData[0]
        __DoUnsellAuctionItem(curPlayer, itemGUID)
        return
    elif queryType == "ClearAuctionItem":
        __DoGMClearAuctionItem(curPlayer)
        return
@@ -1134,6 +1145,31 @@
            NetPackCommon.SendFakePack(player, infoPack)
    return
def __DoUnsellAuctionItem(curPlayer, itemGUID):
    ## 下架拍品
    auctionItem = GetAuctionItem(itemGUID)
    if not auctionItem:
        # 拍品不存在
        PlayerControl.NotifyCode(curPlayer, "Paimai3")
        return
    playerID = curPlayer.GetPlayerID()
    itemID = auctionItem.ItemID
    if auctionItem.FamilyID:
        GameWorld.ErrLog("仙盟拍品无法下架!itemGUID=%s,itemID=%s,itemFamilyID=%s"
                         % (itemGUID, itemID, auctionItem.FamilyID), playerID)
        return
    if auctionItem.PlayerID != playerID:
        GameWorld.ErrLog("不是玩家自己的拍品无法下架!itemGUID=%s,itemID=%s,itemPlayerID=%s"
                         % (itemGUID, itemID, auctionItem.PlayerID), playerID)
        return
    if auctionItem.BidderPrice:
        # 竞价中的拍品不能下架
        PlayerControl.NotifyCode(curPlayer, "Paimai9")
        return
    __EndAuctionItem([auctionItem], "Unsell")
    return
def __DoPlayerBidAuctionItem(curPlayer, itemGUID, biddingPrice, tick, isOnlyCheck):
    ''' 玩家竞价物品
    @param curPlayer: 竞价的玩家