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/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py |   37 ++++++++++++++++---------------------
 1 files changed, 16 insertions(+), 21 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py
index 5e00d42..6fe82c7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py
@@ -31,6 +31,7 @@
 import PlayerActivity
 import NetPackCommon
 import ItemControler
+import PlayerActLogin
 import EventReport
 
 FBDict_StartTick = 'FBDict_StartTick%s' #开始时间
@@ -282,7 +283,7 @@
     remainHP = GetBossRemainHP(lineID, tick)
     totalHP = __GetBossTotalHP(lineID)
     hpReduceSpeed = curSpeed * 10000 / totalHP if totalHP else 0
-    remainHPPer = min(100, remainHP * 100 / totalHP) if totalHP else 0
+    remainHPPer = min(1000000, remainHP * 1000000 / totalHP) if totalHP else 0
     myHurt = g_heroHurtDict.get(curPlayer.GetID(), 0)
     fbHelpDict = {FBCommon.Help_lineID:lineID, "hurtInfo":hurtInfo, 'hpReduceSpeed':hpReduceSpeed, 
                   'remainHPPer':remainHPPer, 'isReduceing':isReduceing,'myHurt':myHurt % ChConfig.Def_PerPointValue,
@@ -416,7 +417,7 @@
         gameFB.SetPlayerGameFBDict(firstPlayerID, FBPlayerDict_Rank, 1)
         if not dropPosX or not dropPosY:
             dropPosX, dropPosY = firstPlayer.GetPosX(), firstPlayer.GetPosY()
-        prizeItemList = GiveZhuXianBossAward(firstPlayer, lineID, dropItemMapInfo=[dropPosX, dropPosY, True])
+        prizeItemList = GiveZhuXianBossAward(firstPlayer, lineID, dropItemMapInfo=[dropPosX, dropPosY, True, True])
         if not prizeItemList:
             # 没有掉落时直接通知结算,防止卡副本
             firstPlayer.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, leaveTick, True)
@@ -429,11 +430,10 @@
         if leaveServerTick and tick - leaveServerTick < ChConfig.Def_PlayerOfflineProtectTime:
             #离线超过3分钟的不给奖励
             msgStr = str([ShareDefine.Def_UniversalGameRecType_ZhuXianBossRecord, [firstPlayerID, lineID], [], 0, 0])
-            playerManager.GameServer_QueryPlayerResult(0, 0, 0, 'AddUniversalGameRec', msgStr, len(msgStr))
+            GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'AddUniversalGameRec', msgStr, len(msgStr))
             
     helpItemList = FBCommon.GetFBLineReward(mapID, lineID)
     if helpItemList: #同盟协助奖励
-        needSpace = len(helpItemList)
         jsonItemList = FBCommon.GetJsonItemList(helpItemList)
         for index in range(0 , playerManager.GetPlayerCount()):
             curPlayer = playerManager.GetPlayerByIndex(index)
@@ -442,24 +442,18 @@
                 continue
             if curPlayerID == firstPlayerID:
                 continue
-            if curPlayer.GetFamilyID() != firstPlayerFamilyID:
-                continue
-            remainCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ZhuXianBossHelpCnt)
-            if not remainCnt:
-                continue
-            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhuXianBossHelpCnt, remainCnt-1)
-            NotifyZXHelpCnt(curPlayer)
             curPlayer.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, leaveTick, True)
-            overDict = {FBCommon.Over_rank:0, FBCommon.Over_itemInfo:jsonItemList}
-            FBCommon.NotifyFBOver(curPlayer, ChConfig.Def_FBMapID_ZhuXianBoss, lineID, isPass, overDict)
-            
-            packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
-            if needSpace > packSpace:
-                PlayerControl.SendMailByKey('ZXBossHelperReward', [curPlayerID], helpItemList)
+            remainCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ZhuXianBossHelpCnt)
+            if curPlayer.GetFamilyID() == firstPlayerFamilyID and remainCnt:
+                PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhuXianBossHelpCnt, remainCnt-1)
+                NotifyZXHelpCnt(curPlayer)
+                ItemControler.GivePlayerItemOrMail(curPlayer, helpItemList, 'ZXBossHelperReward')
+                overDict = {FBCommon.Over_rank:0, FBCommon.Over_itemInfo:jsonItemList}
+                FBCommon.NotifyFBOver(curPlayer, ChConfig.Def_FBMapID_ZhuXianBoss, lineID, isPass, overDict)
             else:
-                for itemID, itemCount, isBind in helpItemList:
-                    ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem])
-    
+                overDict = {FBCommon.Over_rank:0}
+                FBCommon.NotifyFBOver(curPlayer, ChConfig.Def_FBMapID_ZhuXianBoss, lineID, 0, overDict)
+            
     return
 
 def GiveZhuXianBossAward(curPlayer, lineID, isMail=False, dropItemMapInfo=[]):
@@ -489,7 +483,8 @@
     PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_KillSpecificNPC, addCnt, [bossID])
     FBCommon.AddEnterFBCount(curPlayer, ChConfig.Def_FBMapID_ZhuXianBoss, addCnt)
     # 每日活动
-    PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_ZhuXianBoss, addCnt)
+    #PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_ZhuXianBoss, addCnt)
+    PlayerActLogin.AddLoginAwardActionCnt(curPlayer, ChConfig.Def_LoginAct_ZhuXianBOSS, addCnt)
     return prizeItemList
 
 def OnPickUpItem(curPlayer, curItem, tick):

--
Gitblit v1.8.0