ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py
@@ -31,6 +31,7 @@ import PyGameDataStruct import PyDataManager import ChPyNetSendPack import PyGameData import time import json @@ -437,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() @@ -469,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) @@ -478,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: ServerPython/CoreServerGroup/GameServer/Script/PyGameData.py
@@ -78,3 +78,4 @@ g_partyheroAnswerDict = {} #仙盟宴会玩家答题数量 {playerid:答题数量,..} g_dogzNPCRefreshTimeDict = {} # 神兽副本NPC刷新时间{npcid:剩余刷新时间} g_bourseItemTradingTimeDict = {} # 物品开始交易的时间记录 {guid:tick} ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBourseTube.py
@@ -323,35 +323,37 @@ # @return None def OnGMCheckBuyBourseItemResult(curPackData, tick): GameWorld.DebugLog("Bourse### GMCheckBuyBourseItemResult in, PlayerID %s"%curPackData.PlayerID) playerName = __CheckBuyBourseItemResult(curPackData) #//02 04 玩家确认购买交易所物品#tagMGBuyBourseItemSure sendPack = ChMapToGamePyPack.tagMGBuyBourseItemSure() sendPack.PlayerID = curPackData.PlayerID sendPack.PlayerName = playerName #发空代表购买失败 sendPack.ItemGUID = curPackData.ItemGUID NetPackCommon.SendPyPackToGameServer(sendPack) GameWorld.DebugLog("Bourse### GMCheckBuyBourseItemResult out, PriceCount %s"%curPackData.PriceCount) return def __CheckBuyBourseItemResult(curPackData): curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(curPackData.PlayerID) if not curPlayer: GameWorld.DebugLog("Bourse### GMCheckBuyBourseItemResult , PlayerID %s no found "%curPackData.PlayerID) return return '' if curPackData.PriceCount != 0: if not PlayerControl.HaveMoney(curPlayer, curPackData.PriceType, curPackData.PriceCount): GameWorld.DebugLog("Bourse### GMCheckBuyBourseItemResult , ItemGUID %s no enough money %s"%(curPackData.ItemGUID, curPackData.PriceCount)) return return '' if curPackData.PriceType == IPY_GameWorld.TYPE_Price_Gold_Money: if not PlayerControl.HaveMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney, curPackData.PriceCount): curBourseMoney = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney) GameWorld.Log("Bourse### GMCheckBuyBourseItemResult , ItemGUID %s no enough bourse money! priceCount=%s,curBourseMoney=%s" % (curPackData.ItemGUID, curPackData.PriceCount, curBourseMoney), curPlayer.GetPlayerID()) return return '' #先付钱再给卖家收益 infoDict = {"ItemGUID":curPackData.ItemGUID} PlayerControl.PayMoney(curPlayer, curPackData.PriceType, curPackData.PriceCount, ChConfig.Def_Cost_BourseBuy, infoDict) #//02 04 玩家确认购买交易所物品#tagMGBuyBourseItemSure sendPack = ChMapToGamePyPack.tagMGBuyBourseItemSure() sendPack.PlayerID = curPackData.PlayerID sendPack.PlayerName = curPlayer.GetPlayerName() sendPack.ItemGUID = curPackData.ItemGUID NetPackCommon.SendPyPackToGameServer(sendPack) GameWorld.DebugLog("Bourse### GMCheckBuyBourseItemResult out, PriceCount %s"%curPackData.PriceCount) return return curPlayer.GetPlayerName() return ''