From e8de6f49693da0a4a1f7dbe0cec125342f15ce2c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 27 十一月 2025 17:34:47 +0800
Subject: [PATCH] 349 【配套功能】功能预告-服务端(修复主线关卡进度开启功能判断逻辑)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Zhanchui.py |   50 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 45 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Zhanchui.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Zhanchui.py
index 8d6271e..b88a642 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Zhanchui.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Zhanchui.py
@@ -17,7 +17,10 @@
 
 import GameWorld
 import ItemControler
+import PlayerBeauty
 import FBCommon
+import PlayerTask
+import ChConfig
 
 def OnTurnFightRequest(curPlayer, mapID, funcLineID, tagType, tagID, valueList):
     ## 回合战斗请求 
@@ -45,14 +48,29 @@
     
     itemList = FBCommon.GetPassAwardList(mapID, funcLineID)
     GameWorld.DebugLog("过关奖励: mapID=%s,funcLineID=%s,itemList=%s" % (mapID, funcLineID, itemList))
+    overMsg.update({FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(itemList)})
+    
+    turnFight.awardData = [itemList]
+    return
+
+def OnTurnFightAward(curPlayer, turnFight, mapID, funcLineID, awardData):
+    ## 回合战斗结算奖励
+    if not curPlayer:
+        return
+    
+    if not awardData:
+        return
+    
+    itemList = awardData[0]
+    
     # 首通不扣次数
     FBCommon.AddEnterFBCount(curPlayer, mapID, isFree=True)
     FBCommon.SetFBPass(curPlayer, mapID, funcLineID)
     ItemControler.GivePlayerItemOrMail(curPlayer, itemList, event=["Zhanchui", False, {}], isNotifyAward=False)
-    overMsg.update({FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(itemList)})
     
+    PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_FBZhanchui)
     return
-
+    
 def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, sweepCnt, dataEx):
     ## 可否扫荡
     
@@ -61,13 +79,35 @@
 def OnPlayerFBSweepResult(curPlayer, mapID, lineID, sweepCnt, dataEx, askRet):
     ## 扫荡结果,次数消耗已在外层处理扣除
     
-    itemList = FBCommon.GetSweepAwardList(mapID, lineID, sweepCnt)
-    GameWorld.DebugLog("白骨盈野扫荡: mapID=%s,lineID=%s,sweepCnt=%s" % (mapID, lineID, sweepCnt))
+    itemList = []
+    itemList += FBCommon.GetSweepAwardList(mapID, lineID, sweepCnt)
+    GameWorld.DebugLog("白骨盈野扫荡: mapID=%s,lineID=%s,sweepCnt=%s,itemList=%s" % (mapID, lineID, sweepCnt, itemList))
     
+    addPer = PlayerBeauty.GetBeautyEffInfo(curPlayer, PlayerBeauty.EffType_FBZhanchuiAwardPer)[0] # 扫荡奖励百分比
+    if addPer:
+        GameWorld.DebugLog("红颜额外增加扫荡奖励百分比: %s, itemList=%s" % (addPer, itemList))
+        itemListEx = []
+        for itemInfo in itemList:
+            itemID = itemInfo[0]
+            itemCount = itemInfo[1]
+            addCount = int(itemCount * addPer / 100.0)
+            if addCount > 0:
+                itemListEx.append([itemID, addCount, 1]) # 标记是红颜效果额外获得的
+        itemList += itemListEx
+        GameWorld.DebugLog("itemListEx=%s,itemList=%s" % (itemListEx, itemList))
+        
     ItemControler.GivePlayerItemOrMail(curPlayer, itemList, event=["Zhanchui", False, {}], isNotifyAward=False)
     
     isPass = 1
-    overDict = {FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(itemList), FBCommon.Over_isSweep:1}
+    jsonItemList = []
+    for itemInfo in itemList:
+        itemID = itemInfo[0]
+        itemCount = itemInfo[1]
+        itemDict = {"ItemID":itemInfo[0], "Count":itemInfo[1]}
+        if len(itemInfo) > 2:
+            itemDict['BeautyEx'] = itemInfo[2]
+        jsonItemList.append(itemDict)
+    overDict = {FBCommon.Over_itemInfo:jsonItemList, FBCommon.Over_isSweep:1}
     FBCommon.NotifyFBOver(curPlayer, mapID, lineID, isPass, overDict)
     
     return True

--
Gitblit v1.8.0