8154 【后端】【主干】【300】拍卖行优化(可根据开服天或指定日期上架系统拍品)
11个文件已修改
306 ■■■■■ 已修改文件
PySysDB/PySysDBG.h 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBG.h
@@ -54,6 +54,22 @@
    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
ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
@@ -650,6 +650,8 @@
Def_PlayerKey_ViewCrossPKBillboardTick = "ViewCrossPKBillboardTick_%s_%s"  #查询PK排行榜tick,参数(zoneID, seasonID)
#主城地图、缥缈宗
Def_FBMapID_MainCity = 10010
#渡劫副本
Def_FBMapID_DuJie = 31110
#仙盟联赛
ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py
@@ -917,6 +917,19 @@
    
    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):
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
@@ -21,6 +21,7 @@
import PyGameDataStruct
import PlayerCompensation
import ChPyNetSendPack
import PlayerDBGSEvent
import IpyGameDataPY
import NetPackCommon
import PlayerBourse
@@ -28,6 +29,8 @@
import ShareDefine
import ChConfig
import random
import datetime
import operator
import time
import math
@@ -326,6 +329,145 @@
            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
@@ -492,6 +634,9 @@
                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)
            
            #策划需求屏蔽掉成交广播
@@ -504,7 +649,7 @@
                endType = "Recycle"
                AddAuctionRecord(auctionItem, AuctionRecordResult_Recycle)
            # 个人拍品流拍,物品返还
            else:
            elif playerID:
                endType = "Return"
                
                # 流拍返还物品邮件
@@ -514,6 +659,9 @@
                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)
@@ -661,8 +809,9 @@
    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:
@@ -1394,3 +1543,11 @@
    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
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -357,6 +357,8 @@
    PlayerFBHelpBattle.OnMinuteProcess()
    #红包
    PlayerFamilyRedPacket.OnRedPacketMinuteProcess()
    #拍卖行
    AuctionHouse.OnAuctionItemMinuteProcess()
    #每5分钟触发一次仙盟总战力更新
    if curMinute % 5 == 0:
        PlayerFamily.UpdFamilyTotalFightPower()
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -73,6 +73,19 @@
                        ("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),
@@ -622,6 +635,33 @@
    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():
@@ -1622,6 +1662,8 @@
        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)
@@ -1884,6 +1926,8 @@
    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
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -169,6 +169,7 @@
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"  # 跨服服务器是否开启中
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -2289,7 +2289,7 @@
    ''' 获取功能产出的物品实例
    @param isAuctionItem: 是否拍品,默认非拍品
    @param expireTime: 有效时间,时间单位由时效类型决定
    @param curPlayer: 产出该物品时的玩家,非拍品时需传入该值,物品某些属性由玩家等级决定,如传奇属性
    @param curPlayer: 产出该物品时的玩家,物品某些属性由玩家等级决定,如传奇属性
    @param isAllAttr: 是否生成该装备所有属性,GM创建物品时用,需验证相关权限
    '''
    curItem = ItemCommon.CreateSingleItem(itemID, itemCount, isAuctionItem, expireTime)
@@ -2345,11 +2345,13 @@
    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:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py
@@ -24,7 +24,9 @@
import ChConfig
import ShareDefine
import PlayerActivity
import NPCCommon
import random
import time
#// B5 13 拍卖行上架拍品 #tagCMSellAuctionItem
@@ -204,6 +206,46 @@
        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()
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -1289,6 +1289,12 @@
                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:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -169,6 +169,7 @@
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"  # 跨服服务器是否开启中
@@ -619,7 +620,7 @@
    
    Def_BT_NewFCCostGold,                     #消费排行榜(新仙界盛典)
    Def_BT_Campaign_LingGen,                  #灵根总点(开服活动榜)
    Def_BT_Campaign_StarLV,                   #升星等级(开服活动榜)
    Def_BT_Campaign_StarLV,                   #升星等级(开服活动榜) 25
    
    Def_BT_Max,                               #排行榜最大类型
) = range(0, 25 + 2)