From d236760ececff7046f3a68d61f865e1edb9429c1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 22 九月 2019 18:34:00 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py |   54 +++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
index 6ca7fd6..fd99fd1 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
@@ -52,7 +52,8 @@
 AuctionRecordResult_BidOK, # 竞价成功
 AuctionRecordResult_BidFail, # 竞价失败
 AuctionRecordResult_MoveToWorld, # 仙盟拍品转移到全服拍品
-) = range(6)
+AuctionRecordResult_Unsell, # 下架
+) = range(7)
 
 # 当前拍品归类 0-全服拍品 1-仙盟私有拍品
 AuctionType_World = 0
@@ -813,7 +814,7 @@
                     # 仙盟拍品收益邮件
                     detail = {"ItemGUID":itemGUID, "ItemID":itemID, "Count":itemCount, "BidderPrice":bidderPrice, "FamilyPlayerIDList":familyPlayerIDList}
                     paramList = [itemID, itemID, bidderPrice, taxRate, giveGoldAverage, personMaxRate]
-                    PlayerCompensation.SendMailByKey("PaimaiMail8", familyPlayerIDList, [], paramList, gold=giveGoldAverage, 
+                    PlayerCompensation.SendMailByKey("PaimaiMail8", familyPlayerIDList, [], paramList, goldPaper=giveGoldAverage, 
                                                      detail=detail, moneySource=ChConfig.Def_GiveMoney_AuctionGain)
                 else:
                     GameWorld.ErrLog("仙盟拍品没有人获得收益!familyID=%s,itemID=%s,itemGUID=%s" % (familyID, itemID, itemGUID))
@@ -826,7 +827,7 @@
                 # 个人拍卖收益邮件
                 detail = {"ItemGUID":itemGUID, "ItemID":itemID, "Count":itemCount, "BidderPrice":bidderPrice}
                 paramList = [itemID, itemID, bidderPrice, taxRate, givePlayerGold]
-                PlayerCompensation.SendMailByKey("PaimaiMail7", [playerID], [], paramList, gold=givePlayerGold, 
+                PlayerCompensation.SendMailByKey("PaimaiMail7", [playerID], [], paramList, goldPaper=givePlayerGold, 
                                                  detail=detail, moneySource=ChConfig.Def_GiveMoney_AuctionGain)
                 
             else:
@@ -847,13 +848,17 @@
             elif playerID:
                 endType = "Return"
                 
-                # 流拍返还物品邮件
+                # 返还物品邮件
                 paramList = []
                 detail = {"ItemGUID":itemGUID}
                 addItemList = [{"ItemID":itemID, "Count":itemCount, "IsAuctionItem":True, "UserData":auctionItem.UserData}]
-                PlayerCompensation.SendMailByKey("PaimaiMail4", [playerID], addItemList, paramList, detail=detail)
-                
-                AddAuctionRecord(auctionItem, AuctionRecordResult_SellFail)
+                # 下架
+                if endEvent == "Unsell":
+                    PlayerCompensation.SendMailByKey("PaimaiMail9", [playerID], addItemList, paramList, detail=detail)
+                    AddAuctionRecord(auctionItem, AuctionRecordResult_Unsell)
+                else:
+                    PlayerCompensation.SendMailByKey("PaimaiMail4", [playerID], addItemList, paramList, detail=detail)
+                    AddAuctionRecord(auctionItem, AuctionRecordResult_SellFail)
             else:
                 endType = "SystemDelete"
                 GameWorld.Log("系统拍品流拍: itemGUID=%s,itemID=%s" % (itemGUID, itemID))
@@ -972,6 +977,12 @@
             
         return
     
+    # 下架拍品
+    elif queryType == "UnsellAuctionItem":
+        itemGUID = queryData[0]
+        __DoUnsellAuctionItem(curPlayer, itemGUID)
+        return
+        
     elif queryType == "ClearAuctionItem":
         __DoGMClearAuctionItem(curPlayer)
         return
@@ -1134,6 +1145,31 @@
             NetPackCommon.SendFakePack(player, infoPack)
     return
 
+def __DoUnsellAuctionItem(curPlayer, itemGUID):
+    ## 下架拍品
+    auctionItem = GetAuctionItem(itemGUID)
+    if not auctionItem:
+        # 拍品不存在
+        PlayerControl.NotifyCode(curPlayer, "Paimai3")
+        return
+    playerID = curPlayer.GetPlayerID()
+    itemID = auctionItem.ItemID
+    if auctionItem.FamilyID:
+        GameWorld.ErrLog("仙盟拍品无法下架!itemGUID=%s,itemID=%s,itemFamilyID=%s" 
+                         % (itemGUID, itemID, auctionItem.FamilyID), playerID)
+        return
+    if auctionItem.PlayerID != playerID:
+        GameWorld.ErrLog("不是玩家自己的拍品无法下架!itemGUID=%s,itemID=%s,itemPlayerID=%s" 
+                         % (itemGUID, itemID, auctionItem.PlayerID), playerID)
+        return
+    if auctionItem.BidderPrice:
+        # 竞价中的拍品不能下架
+        PlayerControl.NotifyCode(curPlayer, "Paimai9")
+        return
+    
+    __EndAuctionItem([auctionItem], "Unsell")
+    return
+
 def __DoPlayerBidAuctionItem(curPlayer, itemGUID, biddingPrice, tick, isOnlyCheck):
     ''' 玩家竞价物品
     @param curPlayer: 竞价的玩家
@@ -1221,12 +1257,12 @@
         if isBuyout:
             # 竞拍失败,仅通知
             paramList = [itemID, itemID, lastBidderPrice]
-            PlayerCompensation.SendMailByKey("PaimaiMail2", [lastBidderID], [], paramList, gold=lastBidderPrice, 
+            PlayerCompensation.SendMailByKey("PaimaiMail2", [lastBidderID], [], paramList, goldPaper=lastBidderPrice, 
                                              detail=detail, moneySource=ChConfig.Def_GiveMoney_AuctionBidReturn)
         else:
             # 竞拍失败,可继续竞价邮件
             paramList = [itemID, itemID, lastBidderPrice, itemGUID]
-            PlayerCompensation.SendMailByKey("PaimaiMail1", [lastBidderID], [], paramList, gold=lastBidderPrice, 
+            PlayerCompensation.SendMailByKey("PaimaiMail1", [lastBidderID], [], paramList, goldPaper=lastBidderPrice, 
                                              detail=detail, moneySource=ChConfig.Def_GiveMoney_AuctionBidReturn)
         AddAuctionRecord(auctionItem, AuctionRecordResult_BidFail)
         

--
Gitblit v1.8.0