|  |  |  | 
|---|
|  |  |  | import PyGameDataStruct | 
|---|
|  |  |  | import PyDataManager | 
|---|
|  |  |  | import ChPyNetSendPack | 
|---|
|  |  |  | import PyGameData | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import time | 
|---|
|  |  |  | import json | 
|---|
|  |  |  | 
|---|
|  |  |  | #指定使用职业 | 
|---|
|  |  |  | JobList = curDefineDict.get("Job", []) | 
|---|
|  |  |  | if JobList: | 
|---|
|  |  |  | JobLimit = curBourseItemData.GetJobLimit()/100 | 
|---|
|  |  |  | JobLimit = curBourseItemData.GetJobLimit() | 
|---|
|  |  |  | if JobLimit not in JobList: | 
|---|
|  |  |  | return False | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | 
|---|
|  |  |  | 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: | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 从数据库载入好友数据 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 从数据库载入好友数据 | 
|---|