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