ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
@@ -496,7 +496,7 @@
    GameWorld.Log("=============================================================")
    return AuctionSystemItem[1]
def OnAuctionItemMinuteProcess():
def OnAuctionItemMinuteProcess(tick):
    ## 拍卖行拍品定时处理,每整分钟触发一次
    
    # 这里时间需精确到分钟,不然后面的比较会匹配不到
@@ -505,7 +505,10 @@
                                                                    curDateTime.hour, curDateTime.minute), ChConfig.TYPE_Time_Format)
    
    randMailKey = ""
    sysAuctionItemList = []
    addItemTick = tick
    sysAuctionItemList = IpyGameDataPY.GetConfigEx("SysWaitAuctionItemList") # 系统等待上架的拍品列表
    if not sysAuctionItemList:
        sysAuctionItemList = []
    addSystemAuctionItemInfo = __GetAuctionSystemItemInfo()
    for cfgID, ipyData, addAuctionItemDatetimeList in addSystemAuctionItemInfo:
        if curDateTime not in addAuctionItemDatetimeList:
@@ -513,20 +516,29 @@
        #cfgID = ipyData.GetCfgID()
        addCountWeightList = ipyData.GetItemCountWeightList()
        auctionItemWeightList = ipyData.GetAuctionItemWeightList()
        randSecondRange = ipyData.GetAddRandSecondRange()
        
        addCount = GameWorld.GetResultByWeightList(addCountWeightList)
        addSysItemList = []
        GameWorld.Log("增加等待上架的系统拍品信息: cfgID=%s,addCount=%s,addItemTick=%s" % (cfgID, addCount, addItemTick))
        for _ in xrange(addCount):
            itemInfo = GameWorld.GetResultByWeightList(auctionItemWeightList)
            if itemInfo != None:
                addSysItemList.append(itemInfo)
        GameWorld.Log("增加上架系统拍品信息: cfgID=%s,addCount=%s, %s" % (cfgID, addCount, addSysItemList))
        sysAuctionItemList += addSysItemList
                randSeconds = 0
                if len(randSecondRange) == 2:
                    randSeconds = random.randint(randSecondRange[0], randSecondRange[1])
                elif len(randSecondRange) == 1:
                    randSeconds = randSecondRange[0]
                addItemTick = addItemTick + randSeconds * 1000
                sysAuctionItemList.append([addItemTick, itemInfo])
                GameWorld.Log("    增加等待上架的系统拍品: randSeconds=%s,addItemTick=%s,itemInfo=%s" % (randSeconds, addItemTick, itemInfo))
        randMailKeyList = ipyData.GetRandMailKeyList()
        if randMailKeyList:
            randMailKey = random.choice(randMailKeyList)
            
    IpyGameDataPY.SetConfigEx("SysWaitAuctionItemList", sysAuctionItemList)
    #GameWorld.DebugLog("等待系统上架的拍品列表: %s" % sysAuctionItemList)
    # 随机邮件通知 
    if randMailKey:
        playerIDList = []
@@ -540,9 +552,25 @@
                continue
            playerIDList.append(player.GetPlayerID())
        PlayerCompensation.SendMailByKey(randMailKey, playerIDList, addItemList)
    return
def __DoSysWaitAddAuctionItem(tick):
    sysAuctionItemList = IpyGameDataPY.GetConfigEx("SysWaitAuctionItemList") # 系统等待上架的拍品列表
    if not sysAuctionItemList:
        return
    doCount = len(sysAuctionItemList)
    while doCount > 0 and sysAuctionItemList:
        doCount -= 1
        addItemTick, itemInfo = sysAuctionItemList[0]
        if tick < addItemTick:
            #GameWorld.DebugLog("未到系统等待上架的拍品tick,不处理! tick=%s,sysAuctionItemList=%s" % (tick, sysAuctionItemList))
            break
        sysAuctionItemList.pop(0)
        GameWorld.DebugLog("系统等待上架的拍品tick已到,可上架! tick=%s >= addItemTick=%s,itemInfo=%s,sysAuctionItemList=%s" % (tick, addItemTick, itemInfo, sysAuctionItemList))
        DoAddSystemAuctionItem([itemInfo])
        
    if sysAuctionItemList:
        DoAddSystemAuctionItem(sysAuctionItemList)
    return
def OnAuctionItemTimeProcess(curTime, tick):
@@ -550,6 +578,8 @@
    
    __DoSysBuyoutItemByTime(curTime)
    
    __DoSysWaitAddAuctionItem(tick)
    allAuctionItemByEndTimeList = PyDataManager.GetAuctionItemManager().allAuctionItemByEndTimeList
    if not allAuctionItemByEndTimeList:
        return