| | |
| | | GameWorld.Log("=============================================================")
|
| | | return AuctionSystemItem[1]
|
| | |
|
| | | def OnAuctionItemMinuteProcess():
|
| | | def OnAuctionItemMinuteProcess(tick):
|
| | | ## 拍卖行拍品定时处理,每整分钟触发一次
|
| | |
|
| | | # 这里时间需精确到分钟,不然后面的比较会匹配不到
|
| | |
| | | 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:
|
| | |
| | | #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 = []
|
| | |
| | | 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):
|
| | |
| | |
|
| | | __DoSysBuyoutItemByTime(curTime)
|
| | |
|
| | | __DoSysWaitAddAuctionItem(tick)
|
| | | |
| | | allAuctionItemByEndTimeList = PyDataManager.GetAuctionItemManager().allAuctionItemByEndTimeList
|
| | | if not allAuctionItemByEndTimeList:
|
| | | return
|