From 649b36b642546062ab5102b6225b9f78ea72309d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 04 十一月 2025 18:11:02 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(优化完整战报仅包含战斗相关封包,结算奖励相关如物品,经验,货币,挑战次数等统一放在战报数据B430后同步)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py |   34 +++++++++++++++-------------------
 1 files changed, 15 insertions(+), 19 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
index 88f0916..65e75c9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
@@ -1474,21 +1474,6 @@
     
     return callFunc()
 
-
-## 获得特殊副本npc掉落金钱
-#  @param curPlayer 
-#  @return None
-def OnGetNPCExp(curPlayer, curNPC):
-    do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
-    
-    callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGetNPCExp"))
-    
-    if not callFunc:
-        return 0
-        
-    
-    return callFunc(curPlayer, curNPC)
-
 ## 获得外层经验倍率
 def OnGetOuterExpRate(curPlayer):
     do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
@@ -2238,14 +2223,14 @@
 
 def OnTurnFightRequest(curPlayer, mapID, funcLineID, tagType, tagID, valueList):
     ## 回合战斗请求 - 地图验证
-    # @return: 是否允许
+    # @return: 是否允许, 后端验证通过的funcLineID
     do_FBLogic_ID = __GetFBLogic_MapID(mapID)
     
     callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTurnFightRequest"))
     
     if callFunc == None:
         # 默认不限制
-        return True
+        return True, funcLineID
     
     return callFunc(curPlayer, mapID, funcLineID, tagType, tagID, valueList)
 
@@ -2283,7 +2268,7 @@
     
     return callFunc(curPlayer, turnFight, npcObj)
 
-def OnFBNPCKilledBefore(curPlayer, turnFight, gameObj, killer):
+def OnFBNPCKilledBefore(curPlayer, turnFight, gameObj, killer=None, useSkill=None):
     ## 副本NPC被击杀前处理,一般用于处理一些不被击杀的副本NPC逻辑
     # @return: 可否被正常击杀
     do_FBLogic_ID = __GetFBLogic_MapID(turnFight.mapID)
@@ -2293,7 +2278,7 @@
         # 不需要逻辑时默认可被正常击杀
         return True
     
-    return callFunc(curPlayer, turnFight, gameObj, killer)
+    return callFunc(curPlayer, turnFight, gameObj, killer, useSkill)
 
 def OnPlayerLineupAttackResult(curPlayer, atkObj, killObjList, useSkill, mapID, funcLineID):
     ## 回合战斗主动发起的玩家阵容攻击结果额外处理 ,一般处理副本相关的掉落、奖励等
@@ -2318,3 +2303,14 @@
     
     return callFunc(curPlayer, turnFight, mapID, funcLineID, overMsg)
 
+def OnTurnFightAward(curPlayer, turnFight, mapID, funcLineID, awardData):
+    ## 回合战斗结算奖励
+    
+    do_FBLogic_ID = __GetFBLogic_MapID(mapID)
+    
+    callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTurnFightAward"))
+    
+    if callFunc == None:
+        return
+    
+    return callFunc(curPlayer, turnFight, mapID, funcLineID, awardData)

--
Gitblit v1.8.0