From f5d7e43bb1a29abf17f8d371f66262c4e3de2b01 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 10 七月 2019 10:31:06 +0800
Subject: [PATCH] 4453 【主干】【2.0.200】仙盟拍品拍卖时长异常

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py |   45 +++++++++++++++++++++++++++++++--------------
 1 files changed, 31 insertions(+), 14 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py
index 7159004..9eb69c0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py
@@ -22,6 +22,10 @@
 import ItemControler
 import ItemCommon
 import ChConfig
+import ShareDefine
+import PlayerActivity
+
+import time
 
 #// B5 13 拍卖行上架拍品 #tagCMSellAuctionItem
 #
@@ -39,13 +43,22 @@
     curItem = playerPack.GetAt(itemIndex)
     if curItem.IsEmpty():
         return
-    if curItem.GetIsBind():
+    if not ItemControler.GetIsAuctionItem(curItem):
         GameWorld.Log("非拍品,绑定无法上架!", playerID)
         return
     itemGUID = curItem.GetGUID()
     itemID = curItem.GetItemTypeID()
     ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)
     if not ipyData:
+        return
+    auctionItemCreateTime = curItem.GetUserAttr(ShareDefine.Def_IudetAuctionItemCreateTime)
+    if not auctionItemCreateTime:
+        GameWorld.DebugLog("没有拍品创建时间,无法上架!", playerID)
+        return
+    curTime = int(time.time())
+    if curTime - auctionItemCreateTime > IpyGameDataPY.GetFuncCfg("AuctionItem", 1) * 3600:
+        GameWorld.DebugLog("拍品已过期,无法上架!auctionItemCreateTime=%s" % (GameWorld.ChangeTimeNumToStr(auctionItemCreateTime)), playerID)
+        ItemControler.SetIsAuctionItem(curItem, False, curPlayer)
         return
     
     QueryGameServer_AuctionHouse(playerID, "AddAuctionItemQuery", [itemIndex, itemGUID, itemID])
@@ -106,6 +119,8 @@
     DR_AuctionHouse(curPlayer, "PlayerPayBid", infoDict)
     playerID = curPlayer.GetPlayerID()
     QueryGameServer_AuctionHouse(playerID, "BidAuctionItem", [itemGUID, biddingPrice])
+    
+    PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_AuctionItem, 1)
     return
 
 def __DoPlayerSellAuctionItem(curPlayer, itemIndex, itemGUID, itemID):
@@ -115,7 +130,7 @@
     curItem = playerPack.GetAt(itemIndex)
     if curItem.IsEmpty():
         return
-    if curItem.GetIsBind():
+    if not ItemControler.GetIsAuctionItem(curItem):
         GameWorld.Log("非拍品,无法上架!", playerID)
         return
     curItemGUID = curItem.GetGUID()
@@ -128,25 +143,25 @@
 
 def DoAddFamilyAuctionItem(familyAuctionItemDict):
     ''' 上架仙盟拍品,因为仙盟拍品默认上架,所以使用批量上架
-    @param familyAuctionItemDict: {仙盟ID:[[享受收益的成员ID, ...], [[拍品ID,总个数,拍品组数], ...]], ...}
+    @param familyAuctionItemDict: {仙盟ID:[[享受收益的成员ID, ...], [[拍品ID,个数], [拍品ID,个数,是否拍品], ...]], ...}
     '''
-    isBind = False
+    GameWorld.Log("上架仙盟拍品: %s" % familyAuctionItemDict)
+    isAuctionItem = True
     auctionItemList = []
     for familyID, auctionInfo in familyAuctionItemDict.items():
         familyPlayerIDList, familyAuctionItemList = auctionInfo
-        for itemID, itemCount, auctionGroup in familyAuctionItemList:
+        for itemInfo in familyAuctionItemList:
+            if len(itemInfo) < 2:
+                continue
+            itemID, itemCount = itemInfo[:2]
             ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)
             if not ipyData:
                 GameWorld.ErrLog("非拍卖物品,无法上架仙盟拍品! familyID=%s,itemID=%s,itemCount=%s" % (familyID, itemID, itemCount))
                 continue
-            groupItemCount = itemCount / auctionGroup
-            for i in xrange(auctionGroup):
-                if i == auctionGroup - 1:
-                    groupItemCount += itemCount % auctionGroup
-                curItem = ItemControler.GetOutPutItemObj(itemID, groupItemCount, isBind)
-                if not curItem:
-                    continue
-                auctionItemList.append([curItem, familyID, familyPlayerIDList])
+            curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, isAuctionItem)
+            if not curItem:
+                continue
+            auctionItemList.append([curItem, familyID, familyPlayerIDList])
     __DoAddAuctionItem(None, auctionItemList)
     return
 
@@ -172,7 +187,7 @@
         if curPlayer and not familyID:
             ItemCommon.DelItem(curPlayer, curItem, curItem.GetCount())
         else:
-            if curItem.GetIsBind():
+            if not ItemControler.GetIsAuctionItem(curItem):
                 GameWorld.Log("非拍品,绑定无法上架!", playerID)
                 curItem.Clear()
                 continue
@@ -185,6 +200,8 @@
         GameWorld.DebugLog("上架拍品: playerID=%s,familyID=%s,%s" % (playerID, familyID, drDict), playerID)
         
     QueryGameServer_AuctionHouse(playerID, "AddAuctionItem", addAuctionItemList)
+    if curPlayer:
+        PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_AuctionItem, 1)
     return
 
 def DR_AuctionHouse(curPlayer, eventName, drDict):

--
Gitblit v1.8.0