From 9a2fd2a8b061b3c876be62d397b939daccaeb69a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 26 三月 2019 11:51:30 +0800
Subject: [PATCH] 3138 【主干】【BUG】拍卖行获得仙玉数值错误(最少收税1) 其他bug: 1. 修复一组拍品个数大于1时无法竞价、一口价的bug 2. 修复竞价后短时间内无法再竞价的bug,会提示有人正在竞价中(正常会提示该情况的一般只有两个人同时点击竞价的时候有可能出现)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
index f4972cb..a746c03 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
@@ -438,7 +438,8 @@
                 familyPlayerIDList = json.loads(auctionItem.FamilyPlayerIDInfo)
                 taxRate = IpyGameDataPY.GetFuncCfg("AuctionTaxrate", 2) # 仙盟拍品税率百分比
                 personMaxRate = IpyGameDataPY.GetFuncCfg("AuctionTaxrate", 3) # 仙盟拍品个人最大收益百分比
-                giveTotalGold = int(math.ceil(bidderPrice * (100 - taxRate) / 100.0))
+                taxGold = max(1, int(bidderPrice * taxRate / 100.0)) # 最少收税1
+                giveTotalGold = max(0, bidderPrice - taxGold)
                 giveMaxGold = int(math.ceil(giveTotalGold * personMaxRate / 100.0))
                 memCount = len(familyPlayerIDList)
                 giveGoldAverage = min(giveMaxGold, int(math.ceil(giveTotalGold * 1.0 / memCount))) # 有收益的人平分
@@ -451,7 +452,8 @@
                 
             elif playerID:
                 taxRate = IpyGameDataPY.GetFuncCfg("AuctionTaxrate", 1) # 全服拍品税率百分比
-                givePlayerGold = int(math.ceil(bidderPrice * (100 - taxRate) / 100.0))
+                taxGold = max(1, int(bidderPrice * taxRate / 100.0)) # 最少收税1
+                givePlayerGold = max(0, bidderPrice - taxGold)
                 
                 # 个人拍卖收益邮件
                 detail = {"ItemGUID":itemGUID, "ItemID":itemID, "Count":itemCount, "BidderPrice":bidderPrice}
@@ -798,8 +800,8 @@
         errInfo = "end bid"
         return itemID, errInfo
     
-    nextPrice = ipyData.GetBasePrice() if not auctionItem.BidderPrice else (auctionItem.BidderPrice + ipyData.GetBiddingAdd())
-    buyoutPrice = ipyData.GetBuyoutPrice() # 允许没有一口价的,代表可以一直竞价
+    nextPrice = ipyData.GetBasePrice() * auctionItem.Count if not auctionItem.BidderPrice else (auctionItem.BidderPrice + ipyData.GetBiddingAdd() * auctionItem.Count)
+    buyoutPrice = ipyData.GetBuyoutPrice() * auctionItem.Count # 允许没有一口价的,代表可以一直竞价
     nextPrice = nextPrice if not buyoutPrice else min(nextPrice, buyoutPrice) # 不超过一口价
     if not (biddingPrice == nextPrice or (buyoutPrice and biddingPrice == buyoutPrice)):
         # 竞价价格错误
@@ -866,7 +868,7 @@
                 
     # 更新竞价信息
     auctionItem.BiddingQueryID = 0
-    auctionItem.BiddingTick = 0
+    auctionItem.BiddingQueryTick = 0
     auctionItem.BiddingTime = GameWorld.GetCurrentDataTimeStr()
     auctionItem.BidderID = playerID
     auctionItem.BidderName = curPlayer.GetName()

--
Gitblit v1.8.0