xdh
2019-05-28 69ab786b26f7804908ff69764f566424042ac8a3
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py
@@ -22,6 +22,9 @@
import ItemControler
import ItemCommon
import ChConfig
import ShareDefine
import time
#// B5 13 拍卖行上架拍品 #tagCMSellAuctionItem
#
@@ -39,13 +42,22 @@
    curItem = playerPack.GetAt(itemIndex)
    if curItem.IsEmpty():
        return
    if curItem.GetIsBind():
    if not ItemControler.GetIsAuctionItem(curItem):
        GameWorld.Log("非拍品,绑定无法上架!", playerID)
        return
    itemGUID = curItem.GetGUID()
    itemID = curItem.GetItemTypeID()
    ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)
    if not ipyData:
        return
    auctionItemCreateTime = curItem.GetUserAttr(ShareDefine.Def_IudetAuctionItemCreateTime)
    if not auctionItemCreateTime:
        GameWorld.DebugLog("没有拍品创建时间,无法上架!", playerID)
        return
    curTime = int(time.time())
    if curTime - auctionItemCreateTime > IpyGameDataPY.GetFuncCfg("AuctionItem", 1) * 3600:
        GameWorld.DebugLog("拍品已过期,无法上架!auctionItemCreateTime=%s" % (GameWorld.ChangeTimeNumToStr(auctionItemCreateTime)), playerID)
        ItemControler.SetIsAuctionItem(curItem, False, curPlayer)
        return
    
    QueryGameServer_AuctionHouse(playerID, "AddAuctionItemQuery", [itemIndex, itemGUID, itemID])
@@ -115,7 +127,7 @@
    curItem = playerPack.GetAt(itemIndex)
    if curItem.IsEmpty():
        return
    if curItem.GetIsBind():
    if not ItemControler.GetIsAuctionItem(curItem):
        GameWorld.Log("非拍品,无法上架!", playerID)
        return
    curItemGUID = curItem.GetGUID()
@@ -128,25 +140,25 @@
def DoAddFamilyAuctionItem(familyAuctionItemDict):
    ''' 上架仙盟拍品,因为仙盟拍品默认上架,所以使用批量上架
    @param familyAuctionItemDict: {仙盟ID:[[享受收益的成员ID, ...], [[拍品ID,总个数,拍品组数], ...]], ...}
    @param familyAuctionItemDict: {仙盟ID:[[享受收益的成员ID, ...], [[拍品ID,个数], [拍品ID,个数,是否拍品], ...]], ...}
    '''
    isBind = False
    GameWorld.Log("上架仙盟拍品: %s" % familyAuctionItemDict)
    isAuctionItem = True
    auctionItemList = []
    for familyID, auctionInfo in familyAuctionItemDict.items():
        familyPlayerIDList, familyAuctionItemList = auctionInfo
        for itemID, itemCount, auctionGroup in familyAuctionItemList:
        for itemInfo in familyAuctionItemList:
            if len(itemInfo) < 2:
                continue
            itemID, itemCount = itemInfo[:2]
            ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)
            if not ipyData:
                GameWorld.ErrLog("非拍卖物品,无法上架仙盟拍品! familyID=%s,itemID=%s,itemCount=%s" % (familyID, itemID, itemCount))
                continue
            groupItemCount = itemCount / auctionGroup
            for i in xrange(auctionGroup):
                if i == auctionGroup - 1:
                    groupItemCount += itemCount % auctionGroup
                curItem = ItemControler.GetOutPutItemObj(itemID, groupItemCount, isBind)
                if not curItem:
                    continue
                auctionItemList.append([curItem, familyID, familyPlayerIDList])
            curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, isAuctionItem)
            if not curItem:
                continue
            auctionItemList.append([curItem, familyID, familyPlayerIDList])
    __DoAddAuctionItem(None, auctionItemList)
    return
@@ -172,7 +184,7 @@
        if curPlayer and not familyID:
            ItemCommon.DelItem(curPlayer, curItem, curItem.GetCount())
        else:
            if curItem.GetIsBind():
            if not ItemControler.GetIsAuctionItem(curItem):
                GameWorld.Log("非拍品,绑定无法上架!", playerID)
                curItem.Clear()
                continue