From bb284affe6541fa85c492ce9af26b4ee35805aab Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 12 三月 2019 14:25:07 +0800 Subject: [PATCH] 6328 【后端】优化代码eval -- 玩家缓存数据提取常用字段 等级和最后一次发送时间 --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py index ef8aa1b..515da95 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py +++ b/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: -- Gitblit v1.8.0