3138 【主干】【BUG】拍卖行获得仙玉数值错误(最少收税1)
其他bug:
1. 修复一组拍品个数大于1时无法竞价、一口价的bug
2. 修复竞价后短时间内无法再竞价的bug,会提示有人正在竞价中(正常会提示该情况的一般只有两个人同时点击竞价的时候有可能出现)
1个文件已修改
12 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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()