From 44b31d0f8b35c890021e4317281e15ba2d45b593 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 11 二月 2020 00:37:12 +0800
Subject: [PATCH] 8375 【主干】【后端】秘境探索修改(修改为定时实时给经验)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py
index ef8aa1b..162afff 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
@@ -269,7 +270,7 @@
     #指定使用职业
     JobList = curDefineDict.get("Job", [])
     if JobList:
-        JobLimit = curBourseItemData.GetJobLimit()/100
+        JobLimit = curBourseItemData.GetJobLimit()
         if JobLimit not in JobList:
             return False
 
@@ -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