8154 【后端】【主干】【300】拍卖行优化(可根据开服天或指定日期上架系统拍品)
| | |
| | | BYTE Sortpriority; //排序优先级归组
|
| | | };
|
| | |
|
| | | //拍卖行系统拍品表
|
| | |
|
| | | struct tagAuctionSystemItem
|
| | | {
|
| | | DWORD _CfgID;
|
| | | char StartDate; //开启日期
|
| | | char EndDate; //结束日期
|
| | | char StartTime; //开启时间
|
| | | char EndTime; //结束时间
|
| | | BYTE AuctionCount; //上架次数
|
| | | list RandMinuteRange; //上架随机间隔分钟下限|上限
|
| | | list ItemCountWeightList; //上架随机件数权重列表, [[权重, 件数], ...]
|
| | | list AuctionItemWeightList; //上架物品随机权重, [[权重, 物品ID],[权重, [阶,颜色,部位集合,是否套装,星级]] ...]
|
| | | list RandMailKeyList; //上架随机邮件列表,有配置时上架的时候在线玩家会收到一封上架邮件提醒
|
| | | };
|
| | |
|
| | | //日常活动表
|
| | |
|
| | | struct tagDailyAction
|
| | |
| | |
|
| | | Def_PlayerKey_ViewCrossPKBillboardTick = "ViewCrossPKBillboardTick_%s_%s" #查询PK排行榜tick,参数(zoneID, seasonID)
|
| | |
|
| | | #主城地图、缥缈宗
|
| | | Def_FBMapID_MainCity = 10010
|
| | | #渡劫副本
|
| | | Def_FBMapID_DuJie = 31110
|
| | | #仙盟联赛
|
| | |
| | |
|
| | | return defValue
|
| | |
|
| | | ## 从列表中产生物品,[[权重, object], ....]
|
| | | # @param weightList 待选列表
|
| | | def GetResultByWeightList(weightList):
|
| | | randList = []
|
| | | weight = 0
|
| | | for info in weightList:
|
| | | weight += info[0]
|
| | | randList.append([weight, info[1] if len(info) == 2 else info[1:]])
|
| | | if not randList:
|
| | | return
|
| | | rate = random.randint(1, randList[-1][0])
|
| | | return GetResultByRiseList(randList, rate)
|
| | |
|
| | | ## 根据字典key获取value值
|
| | | # @return
|
| | | def GetDictValueByKey(attrDict, findKey, defaultValue=None):
|
| | |
| | | import PyGameDataStruct
|
| | | import PlayerCompensation
|
| | | import ChPyNetSendPack
|
| | | import PlayerDBGSEvent
|
| | | import IpyGameDataPY
|
| | | import NetPackCommon
|
| | | import PlayerBourse
|
| | |
| | | import ShareDefine
|
| | | import ChConfig
|
| | |
|
| | | import random
|
| | | import datetime
|
| | | import operator
|
| | | import time
|
| | | import math
|
| | |
| | | return True
|
| | | return False
|
| | |
|
| | |
|
| | | def __GetAuctionSystemItemInfo():
|
| | | key = "AuctionSystemItem"
|
| | | openServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay) + 1
|
| | | AuctionSystemItem = IpyGameDataPY.GetConfigEx(key)
|
| | | reloadSign = openServerDay
|
| | | if AuctionSystemItem and AuctionSystemItem[0] == reloadSign:
|
| | | GameWorld.DebugLog("已经加载过本日系统拍品处理信息!openServerDay=%s" % openServerDay)
|
| | | return AuctionSystemItem[1]
|
| | | |
| | | # 因为后面的时间判断都是精确到分的,而处理此逻辑的时候可能不是0秒,所以这里的datetime取当前时间精确到分的
|
| | | serverTime = GameWorld.GetServerTime()
|
| | | curDateStr = "%d-%d-%d" % (serverTime.year, serverTime.month, serverTime.day)
|
| | | curDateTimeStr = "%d-%d-%d %02d:%02d:00" % (serverTime.year, serverTime.month, serverTime.day, serverTime.hour, serverTime.minute)
|
| | | curDateTime = datetime.datetime.strptime(curDateTimeStr, ChConfig.TYPE_Time_Format)
|
| | | |
| | | GameWorld.Log("===== 加载本日系统拍品信息: %s,openServerDay=%s =====" % (curDateTime, openServerDay))
|
| | | addSystemAuctionItemInfo = []
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for index in xrange(ipyDataMgr.GetAuctionSystemItemCount()):
|
| | | ipyData = ipyDataMgr.GetAuctionSystemItemByIndex(index)
|
| | | cfgID = ipyData.GetCfgID()
|
| | | startDateStr = ipyData.GetStartDate()
|
| | | endDateStr = ipyData.GetEndDate()
|
| | | startTimeStr = ipyData.GetStartTime()
|
| | | endTimeStr = ipyData.GetEndTime()
|
| | | auctionCount = ipyData.GetAuctionCount()
|
| | | randMinuteRange = ipyData.GetRandMinuteRange()
|
| | | |
| | | GameWorld.DebugLog("cfgID=%s,startDateStr=%s,endDateStr=%s,startTimeStr=%s,endTimeStr=%s,auctionCount=%s,randMinuteRange=%s" |
| | | % (cfgID, startDateStr, endDateStr, startTimeStr, endTimeStr, auctionCount, randMinuteRange))
|
| | | |
| | | if not startDateStr:
|
| | | startDateStr = curDateStr
|
| | | elif startDateStr.isdigit():
|
| | | startServerDay = int(startDateStr)
|
| | | openServerDateTime = curDateTime + datetime.timedelta(days=(startServerDay-openServerDay))
|
| | | startDateStr = "%d-%d-%d" % (openServerDateTime.year, openServerDateTime.month, openServerDateTime.day)
|
| | | |
| | | if not endDateStr:
|
| | | endDateStr = curDateStr
|
| | | elif endDateStr.isdigit():
|
| | | endServerDay = int(endDateStr)
|
| | | endServerDateTime = curDateTime + datetime.timedelta(days=(endServerDay-openServerDay))
|
| | | endDateStr = "%d-%d-%d" % (endServerDateTime.year, endServerDateTime.month, endServerDateTime.day)
|
| | | |
| | | startDate = datetime.datetime.strptime("%s 00:00:00" % (startDateStr), ChConfig.TYPE_Time_Format)
|
| | | endDate = datetime.datetime.strptime("%s 23:59:00" % (endDateStr), ChConfig.TYPE_Time_Format)
|
| | | if serverTime < startDate or serverTime > endDate:
|
| | | GameWorld.DebugLog(" 不在上架日期内,不处理!")
|
| | | continue
|
| | | |
| | | if not startTimeStr:
|
| | | startTimeStr = "00:00"
|
| | | if not endTimeStr:
|
| | | endTimeStr = "23:59"
|
| | | startDatetime = datetime.datetime.strptime("%s %s:00" % (curDateStr, startTimeStr), ChConfig.TYPE_Time_Format)
|
| | | endDatetime = datetime.datetime.strptime("%s %s:00" % (curDateStr, endTimeStr), ChConfig.TYPE_Time_Format)
|
| | | if serverTime >= endDatetime:
|
| | | GameWorld.DebugLog(" 已超过今日的上架时间段,不处理!")
|
| | | continue
|
| | | if serverTime > startDatetime:
|
| | | startDatetime = curDateTime
|
| | | |
| | | addAuctionItemDatetimeList = []
|
| | | nextAddAuctionItemDatetime = startDatetime
|
| | | for _ in xrange(auctionCount):
|
| | | if len(randMinuteRange) == 2:
|
| | | nextAddMinutes = random.randint(randMinuteRange[0], randMinuteRange[1])
|
| | | elif len(randMinuteRange) == 1:
|
| | | nextAddMinutes = randMinuteRange[0]
|
| | | else:
|
| | | continue
|
| | | nextAddAuctionItemDatetime += datetime.timedelta(minutes=nextAddMinutes)
|
| | | if nextAddAuctionItemDatetime > endDatetime:
|
| | | break
|
| | | GameWorld.DebugLog(" 添加上架系统拍品时间: nextAddMinutes=%s %s" % (nextAddMinutes, nextAddAuctionItemDatetime))
|
| | | addAuctionItemDatetimeList.append(nextAddAuctionItemDatetime)
|
| | | |
| | | if not addAuctionItemDatetimeList:
|
| | | continue
|
| | | GameWorld.DebugLog(" 添加上架系统拍品时间: %s" % addAuctionItemDatetimeList)
|
| | | addSystemAuctionItemInfo.append([cfgID, ipyData, addAuctionItemDatetimeList])
|
| | | |
| | | AuctionSystemItem = IpyGameDataPY.SetConfigEx(key, [reloadSign, addSystemAuctionItemInfo])
|
| | | GameWorld.Log("本日系统拍品信息加载完毕!reloadSign=%s" % (reloadSign))
|
| | | GameWorld.Log("本日系统拍品上架时间信息: %s" % addSystemAuctionItemInfo)
|
| | | GameWorld.Log("=============================================================")
|
| | | return AuctionSystemItem[1]
|
| | |
|
| | | def OnAuctionItemMinuteProcess():
|
| | | ## 拍卖行拍品定时处理,每整分钟触发一次
|
| | | |
| | | # 这里时间需精确到分钟,不然后面的比较会匹配不到
|
| | | curDateTime = GameWorld.GetServerTime()
|
| | | curDateTime = datetime.datetime.strptime("%d-%d-%d %d:%d:00" % (curDateTime.year, curDateTime.month, curDateTime.day,
|
| | | curDateTime.hour, curDateTime.minute), ChConfig.TYPE_Time_Format)
|
| | | |
| | | randMailKey = ""
|
| | | sysAuctionItemList = []
|
| | | addSystemAuctionItemInfo = __GetAuctionSystemItemInfo()
|
| | | for cfgID, ipyData, addAuctionItemDatetimeList in addSystemAuctionItemInfo:
|
| | | if curDateTime not in addAuctionItemDatetimeList:
|
| | | continue
|
| | | #cfgID = ipyData.GetCfgID()
|
| | | addCountWeightList = ipyData.GetItemCountWeightList()
|
| | | auctionItemWeightList = ipyData.GetAuctionItemWeightList()
|
| | | |
| | | addCount = GameWorld.GetResultByWeightList(addCountWeightList)
|
| | | addSysItemList = []
|
| | | 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
|
| | | |
| | | randMailKeyList = ipyData.GetRandMailKeyList()
|
| | | if randMailKeyList:
|
| | | randMailKey = random.choice(randMailKeyList)
|
| | | |
| | | # 随机邮件通知 |
| | | if randMailKey:
|
| | | playerIDList = []
|
| | | addItemList = []
|
| | | playerManager = GameWorld.GetPlayerManager()
|
| | | for i in xrange(playerManager.GetActivePlayerCount()):
|
| | | player = playerManager.GetActivePlayerAt(i)
|
| | | if player == None:
|
| | | continue
|
| | | if PlayerControl.GetIsTJG(player):
|
| | | continue
|
| | | playerIDList.append(player.GetPlayerID())
|
| | | PlayerCompensation.SendMailByKey(randMailKey, playerIDList, addItemList)
|
| | | |
| | | if sysAuctionItemList:
|
| | | DoAddSystemAuctionItem(sysAuctionItemList) |
| | | return
|
| | |
|
| | | def OnAuctionItemTimeProcess(curTime, tick):
|
| | | ## 拍卖行拍品定时处理,每秒触发一次
|
| | | allAuctionItemByEndTimeList = PyDataManager.GetAuctionItemManager().allAuctionItemByEndTimeList
|
| | |
| | | PlayerCompensation.SendMailByKey("PaimaiMail7", [playerID], [], paramList, gold=givePlayerGold,
|
| | | detail=detail, moneySource=ChConfig.Def_GiveMoney_AuctionGain)
|
| | |
|
| | | else:
|
| | | GameWorld.Log("系统拍品成交: itemGUID=%s,itemID=%s" % (itemGUID, itemID))
|
| | | |
| | | AddAuctionRecord(auctionItem, AuctionRecordResult_SellOK)
|
| | |
|
| | | #策划需求屏蔽掉成交广播
|
| | |
| | | endType = "Recycle"
|
| | | AddAuctionRecord(auctionItem, AuctionRecordResult_Recycle)
|
| | | # 个人拍品流拍,物品返还
|
| | | else:
|
| | | elif playerID:
|
| | | endType = "Return"
|
| | |
|
| | | # 流拍返还物品邮件
|
| | |
| | | PlayerCompensation.SendMailByKey("PaimaiMail4", [playerID], addItemList, paramList, detail=detail)
|
| | |
|
| | | AddAuctionRecord(auctionItem, AuctionRecordResult_SellFail)
|
| | | else:
|
| | | endType = "SystemDelete"
|
| | | GameWorld.Log("系统拍品流拍: itemGUID=%s,itemID=%s" % (itemGUID, itemID))
|
| | |
|
| | | drDict = {"AuctionItemInfo":__GetAuctionItemDRDict(auctionItem), "EndType":endType, "EndEvent":endEvent}
|
| | | DR_AuctionHouse(None, "EndAuctionItem", drDict)
|
| | |
| | | notifyAddItemList = [] # 新增拍品通知 [[itemGUID, itemID, playerID], ...]
|
| | | notifyFamilyAddItemDict = {} # 新增仙盟拍品通知 {familyID:[auctionItem, ...], ...}
|
| | | for playerID, familyID, familyPlayerIDList, itemData in addAuctionItemList:
|
| | | if not playerID and not familyID:
|
| | | continue
|
| | | #系统拍品玩家ID、仙盟ID都为0,可上架,这里不再限制
|
| | | #if not playerID and not familyID:
|
| | | # continue
|
| | |
|
| | | auctionItem = __DoAddAuctionItem(curPlayer, playerID, familyID, familyPlayerIDList, itemData)
|
| | | if not auctionItem:
|
| | |
| | | GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_AddFamilyAuctionItem, [mapID, familyAuctionItemDict])
|
| | | return
|
| | |
|
| | | def DoAddSystemAuctionItem(sysAuctionItemList):
|
| | | ''' 上架系统拍品
|
| | | '''
|
| | | mapID = ChConfig.Def_FBMapID_MainCity
|
| | | GameWorld.Log("发送地图上架系统拍品: mapID=%s, %s" % (mapID, sysAuctionItemList))
|
| | | GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_AddSystemAuctionItem, [mapID, sysAuctionItemList])
|
| | | return
|
| | |
|
| | |
| | | PlayerFBHelpBattle.OnMinuteProcess()
|
| | | #红包
|
| | | PlayerFamilyRedPacket.OnRedPacketMinuteProcess()
|
| | | #拍卖行
|
| | | AuctionHouse.OnAuctionItemMinuteProcess()
|
| | | #每5分钟触发一次仙盟总战力更新
|
| | | if curMinute % 5 == 0:
|
| | | PlayerFamily.UpdFamilyTotalFightPower()
|
| | |
| | | ("BYTE", "Sortpriority", 0),
|
| | | ),
|
| | |
|
| | | "AuctionSystemItem":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("char", "StartTime", 0),
|
| | | ("char", "EndTime", 0),
|
| | | ("BYTE", "AuctionCount", 0),
|
| | | ("list", "RandMinuteRange", 0),
|
| | | ("list", "ItemCountWeightList", 0),
|
| | | ("list", "AuctionItemWeightList", 0),
|
| | | ("list", "RandMailKeyList", 0),
|
| | | ),
|
| | |
|
| | | "DailyAction":(
|
| | | ("DWORD", "DailyID", 1),
|
| | | ("dict", "OpenTimeDict", 0),
|
| | |
| | | def GetBiddingAdd(self): return self.BiddingAdd # 竞价增加
|
| | | def GetNeedWorldNotify(self): return self.NeedWorldNotify # 是否需要广播
|
| | | def GetSortpriority(self): return self.Sortpriority # 排序优先级归组 |
| | | |
| | | # 拍卖行系统拍品表 |
| | | class IPY_AuctionSystemItem(): |
| | | |
| | | def __init__(self): |
| | | self.CfgID = 0
|
| | | self.StartDate = ""
|
| | | self.EndDate = ""
|
| | | self.StartTime = ""
|
| | | self.EndTime = ""
|
| | | self.AuctionCount = 0
|
| | | self.RandMinuteRange = []
|
| | | self.ItemCountWeightList = []
|
| | | self.AuctionItemWeightList = []
|
| | | self.RandMailKeyList = [] |
| | | return |
| | | |
| | | def GetCfgID(self): return self.CfgID
|
| | | def GetStartDate(self): return self.StartDate # 开启日期
|
| | | def GetEndDate(self): return self.EndDate # 结束日期
|
| | | def GetStartTime(self): return self.StartTime # 开启时间
|
| | | def GetEndTime(self): return self.EndTime # 结束时间
|
| | | def GetAuctionCount(self): return self.AuctionCount # 上架次数
|
| | | def GetRandMinuteRange(self): return self.RandMinuteRange # 上架随机间隔分钟下限|上限
|
| | | def GetItemCountWeightList(self): return self.ItemCountWeightList # 上架随机件数权重列表, [[权重, 件数], ...]
|
| | | def GetAuctionItemWeightList(self): return self.AuctionItemWeightList # 上架物品随机权重, [[权重, 物品ID],[权重, [阶,颜色,部位集合,是否套装,星级]] ...]
|
| | | def GetRandMailKeyList(self): return self.RandMailKeyList # 上架随机邮件列表,有配置时上架的时候在线玩家会收到一封上架邮件提醒 |
| | | |
| | | # 日常活动表 |
| | | class IPY_DailyAction(): |
| | |
| | | self.ipyMarketQueryLen = len(self.ipyMarketQueryCache)
|
| | | self.ipyAuctionItemCache = self.__LoadFileData("AuctionItem", IPY_AuctionItem)
|
| | | self.ipyAuctionItemLen = len(self.ipyAuctionItemCache)
|
| | | self.ipyAuctionSystemItemCache = self.__LoadFileData("AuctionSystemItem", IPY_AuctionSystemItem)
|
| | | self.ipyAuctionSystemItemLen = len(self.ipyAuctionSystemItemCache)
|
| | | self.ipyDailyActionCache = self.__LoadFileData("DailyAction", IPY_DailyAction)
|
| | | self.ipyDailyActionLen = len(self.ipyDailyActionCache)
|
| | | self.ipyDailyActionCustomCache = self.__LoadFileData("DailyActionCustom", IPY_DailyActionCustom)
|
| | |
| | | def GetMarketQueryByIndex(self, index): return self.ipyMarketQueryCache[index]
|
| | | def GetAuctionItemCount(self): return self.ipyAuctionItemLen
|
| | | def GetAuctionItemByIndex(self, index): return self.ipyAuctionItemCache[index]
|
| | | def GetAuctionSystemItemCount(self): return self.ipyAuctionSystemItemLen
|
| | | def GetAuctionSystemItemByIndex(self, index): return self.ipyAuctionSystemItemCache[index]
|
| | | def GetDailyActionCount(self): return self.ipyDailyActionLen
|
| | | def GetDailyActionByIndex(self, index): return self.ipyDailyActionCache[index]
|
| | | def GetDailyActionCustomCount(self): return self.ipyDailyActionCustomLen
|
| | |
| | | Def_Notify_WorldKey_FamilyPartyInfo = "FamilyPartyInfo" # 仙盟宴会数据
|
| | |
|
| | | Def_Notify_WorldKey_AddFamilyAuctionItem = "AddFamilyAuctionItem" # 添加仙盟拍品
|
| | | Def_Notify_WorldKey_AddSystemAuctionItem = "AddSystemAuctionItem" # 添加系统拍品
|
| | |
|
| | | Def_Notify_WorldKey_CrossServerConnState = "CrossServerConnState" # 跨服服务器链接状态
|
| | | Def_Notify_WorldKey_CrossServerOpen = "CrossServerOpen" # 跨服服务器是否开启中
|
| | |
| | | ''' 获取功能产出的物品实例
|
| | | @param isAuctionItem: 是否拍品,默认非拍品
|
| | | @param expireTime: 有效时间,时间单位由时效类型决定
|
| | | @param curPlayer: 产出该物品时的玩家,非拍品时需传入该值,物品某些属性由玩家等级决定,如传奇属性
|
| | | @param curPlayer: 产出该物品时的玩家,物品某些属性由玩家等级决定,如传奇属性
|
| | | @param isAllAttr: 是否生成该装备所有属性,GM创建物品时用,需验证相关权限
|
| | | '''
|
| | | curItem = ItemCommon.CreateSingleItem(itemID, itemCount, isAuctionItem, expireTime)
|
| | |
| | | if not legendAttrCountInfoList:
|
| | | return
|
| | |
|
| | | if not curPlayer:
|
| | | GameWorld.ErrLog("生成装备传奇属性时玩家不存在!itemID=%s" % (itemID))
|
| | | return
|
| | | |
| | | playerID, playerLV = curPlayer.GetPlayerID(), curPlayer.GetLV()
|
| | | if curPlayer:
|
| | | playerID, playerLV = curPlayer.GetPlayerID(), curPlayer.GetLV()
|
| | | else:
|
| | | playerID = 0
|
| | | playerLV = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
|
| | | GameWorld.Log("生成装备传奇属性时没有玩家等级, 取当前世界等级! itemID=%s,worldLV=%s" % (itemID, playerLV))
|
| | | |
| | | # 2. 定属性ID
|
| | | attrTypeIpyData = IpyGameDataPY.GetIpyGameData("EquipLegendAttrType", itemType)
|
| | | if not attrTypeIpyData:
|
| | |
| | | import ChConfig
|
| | | import ShareDefine
|
| | | import PlayerActivity
|
| | | import NPCCommon
|
| | |
|
| | | import random
|
| | | import time
|
| | |
|
| | | #// B5 13 拍卖行上架拍品 #tagCMSellAuctionItem
|
| | |
| | | PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_AuctionItem, 1)
|
| | | return
|
| | |
|
| | | def DoAddSystemAuctionItem(sysAuctionItemList):
|
| | | ''' 上架系统拍品
|
| | | @param sysAuctionItemList: [物品ID, [阶,颜色,[部位, ...],是否套装,星级]]
|
| | | '''
|
| | | GameWorld.Log("上架系统拍品: %s" % sysAuctionItemList)
|
| | | |
| | | itemCount = 1 # 系统拍品,默认上架一个
|
| | | isAuctionItem = True
|
| | | auctionItemList = []
|
| | | for sysAuctionItemInfo in sysAuctionItemList:
|
| | | if type(sysAuctionItemInfo) == int:
|
| | | itemID = sysAuctionItemInfo
|
| | | elif type(sysAuctionItemInfo) == list and len(sysAuctionItemInfo) >= 5:
|
| | | classLV, color, placeList, isSuit, star = sysAuctionItemInfo[:5]
|
| | | if star:
|
| | | # 有星级的代表非境界装备,暂不处理,之后有需要扩展
|
| | | randEquipIDList = []
|
| | | else:
|
| | | itemJobList = sysAuctionItemInfo[5] if len(sysAuctionItemInfo) > 5 else [] |
| | | randEquipIDList = NPCCommon.__GetEquipIDList(0, classLV, color, isSuit, placeList, itemJobList, findType="SystemAuctionItem")
|
| | | if not randEquipIDList:
|
| | | GameWorld.ErrLog("系统拍品找不到可上架的装备! %s" % str(sysAuctionItemInfo))
|
| | | continue
|
| | | itemID = random.choice(randEquipIDList)
|
| | | else:
|
| | | GameWorld.ErrLog("系统拍品格式错误,无法上架! %s" % str(sysAuctionItemInfo))
|
| | | continue
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)
|
| | | if not ipyData:
|
| | | GameWorld.ErrLog("非拍卖物品,无法上架系统拍品! itemID=%s" % (itemID))
|
| | | continue
|
| | | curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, isAuctionItem)
|
| | | if not curItem:
|
| | | continue
|
| | | auctionItemList.append([curItem])
|
| | | if not auctionItemList:
|
| | | return
|
| | | __DoAddAuctionItem(None, auctionItemList)
|
| | | return
|
| | |
|
| | | def DR_AuctionHouse(curPlayer, eventName, drDict):
|
| | | accID = "" if not curPlayer else curPlayer.GetAccID()
|
| | | playerID = 0 if not curPlayer else curPlayer.GetPlayerID()
|
| | |
| | | PlayerAuctionHouse.DoAddFamilyAuctionItem(familyAuctionItemDict)
|
| | | return
|
| | |
|
| | | if key == ShareDefine.Def_Notify_WorldKey_AddSystemAuctionItem:
|
| | | mapID, sysAuctionItemList = eval(msgValue)
|
| | | if GameWorld.GetMap().GetMapID() == mapID:
|
| | | PlayerAuctionHouse.DoAddSystemAuctionItem(sysAuctionItemList)
|
| | | return
|
| | | |
| | | if key == ShareDefine.Def_Notify_WorldKey_FairyDomainLimit:
|
| | | isAdd, limitList = eval(msgValue)
|
| | | if isAdd:
|
| | |
| | | Def_Notify_WorldKey_FamilyPartyInfo = "FamilyPartyInfo" # 仙盟宴会数据
|
| | |
|
| | | Def_Notify_WorldKey_AddFamilyAuctionItem = "AddFamilyAuctionItem" # 添加仙盟拍品
|
| | | Def_Notify_WorldKey_AddSystemAuctionItem = "AddSystemAuctionItem" # 添加系统拍品
|
| | |
|
| | | Def_Notify_WorldKey_CrossServerConnState = "CrossServerConnState" # 跨服服务器链接状态
|
| | | Def_Notify_WorldKey_CrossServerOpen = "CrossServerOpen" # 跨服服务器是否开启中
|
| | |
| | |
|
| | | Def_BT_NewFCCostGold, #消费排行榜(新仙界盛典)
|
| | | Def_BT_Campaign_LingGen, #灵根总点(开服活动榜)
|
| | | Def_BT_Campaign_StarLV, #升星等级(开服活动榜)
|
| | | Def_BT_Campaign_StarLV, #升星等级(开服活动榜) 25
|
| | |
|
| | | Def_BT_Max, #排行榜最大类型
|
| | | ) = range(0, 25 + 2)
|