ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py
@@ -31,11 +31,12 @@
import PyGameDataStruct
import PyDataManager
import ChPyNetSendPack
import PyGameData
import time
import json
Def_Sort_IndexList_Interval = IpyGameDataPY.GetFuncCfg('BourseUpdataCD')  #五分钟更新一次子索引列表
g_lastSortTimeForQueryTypeDict = {}     #记录对应查询类型上次更新子索引列表时间
g_dict_Of_QueryTypeIndexList = {}       #储存对应查询类型的排序列表的字典
@@ -215,6 +216,7 @@
    lastSortTick = g_lastSortTimeForQueryTypeDict.get(queryType, 0)
    
    queryTypeList = g_dict_Of_QueryTypeIndexList.get(queryType, None)
    Def_Sort_IndexList_Interval = IpyGameDataPY.GetFuncCfg('BourseUpdataCD')  #五分钟更新一次子索引列表
    if queryTypeList == None or tick - lastSortTick > Def_Sort_IndexList_Interval:
        SortIndexList(queryType)#重新排序指定类型
        lastSortTick = tick
@@ -268,7 +270,7 @@
    #指定使用职业
    JobList = curDefineDict.get("Job", [])
    if JobList:
        JobLimit = curBourseItemData.GetJobLimit()/100
        JobLimit = curBourseItemData.GetJobLimit()
        if JobLimit not in JobList:
            return False
@@ -436,6 +438,15 @@
            PlayerControl.NotifyCode(curPlayer, "BoursePasswordError")
        GameWorld.DebugLog("Bourse### MGCheckBuyBourseItem ItemGUID %s  pwd is error! %s != %s" % (curPackData.ItemGUID, curBourseItem.GetPwd(), curPackData.Pwd))
        return
    #物品交易锁定状态判断
    curTime = int(time.time())
    if curPackData.ItemGUID in PyGameData.g_bourseItemTradingTimeDict:
        if curTime - PyGameData.g_bourseItemTradingTimeDict.get(curPackData.ItemGUID, 0) < 10:
            curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(curPackData.PlayerID)
            if curPlayer:
                PlayerControl.NotifyCode(curPlayer, "MarketNoPutaway5")
            return
    PyGameData.g_bourseItemTradingTimeDict[curPackData.ItemGUID] = curTime
    
    #//02 02 玩家购买交易所物品查询结果#tagGMCheckBuyBourseItemResult
    sendPack = ChGameToMapPyPack.tagGMCheckBuyBourseItemResult()
@@ -468,6 +479,10 @@
    if CheckBourseItemDataSaleState(curBourseItem):
        GameWorld.Log("玩家确认购买交易所物品 Bourse### MGBuyBourseItemSure ItemGUID %s SoldOut" % (curPackData.ItemGUID), curPlayerID)
        return
    if not curPackData.PlayerName: #为空时代表地图判断购买失败
        PyGameData.g_bourseItemTradingTimeDict.pop(curPackData.ItemGUID, 0)
        return
    #给物品//02 03 玩家获取交易所物品结果#tagGMGiveBourseItem
    sendPack = GetGMGiveBourseItemPack(curPlayerID, curBourseItem)
    NetPackCommon.SendPyPackToMapServer(routeIndex, mapID, sendPack)
@@ -477,7 +492,7 @@
    curBourseItem.SetCustomerPlayerName(curPackData.PlayerName)
    soldOutTime = int(time.time())
    curBourseItem.SetSoldOutTime(str(soldOutTime))
    PyGameData.g_bourseItemTradingTimeDict.pop(curPackData.ItemGUID, 0)
    #通知顾客购买物品状态变更    
    curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(curPlayerID)
    if curPlayer:
@@ -760,7 +775,7 @@
                cnt += 1
                savaData += record.getBuffer()
                
        GameWorld.Log("SaveBourseRecord cnt :%s" % cnt)
        GameWorld.Log("SaveBourseRecord cnt :%s len=%s" % (cnt, len(savaData)))
        return CommFunc.WriteDWORD(cntData, cnt) + savaData
    
    # 从数据库载入好友数据
@@ -821,7 +836,7 @@
            cnt += 1
            savaData += itemLastPrice.getBuffer()
                
        GameWorld.Log("SaveBourseItemLastPrice cnt :%s" % cnt)
        GameWorld.Log("SaveBourseItemLastPrice cnt :%s len=%s" % (cnt, len(savaData)))
        return CommFunc.WriteDWORD(cntData, cnt) + savaData
    
    # 从数据库载入好友数据