From 8debc2ea91c321eb92df47bb685fc9510ccc95bf Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 14 一月 2026 17:28:32 +0800
Subject: [PATCH] 302 【公会】BOSS讨伐-服务端(布阵不受最大层数限制,最大层数仅对实际效果层数有效;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py | 65 ++++++++++++--------------------
1 files changed, 25 insertions(+), 40 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 eb0a5e2..a105e8b 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())
@@ -1564,10 +1549,12 @@
def OnPlayerFBQuickPass(curPlayer, mapID, lineID):
'''副本快速过关验证
@param mapID: 数据地图ID
- @param lineID: 目标关卡线路ID,可一次性跳多关,由前端发包决定
- @return: (bossID, quickCnt) 或 None
- @note: bossID 目标NPCID - 目标关卡所需要挑战的主NPCID,一般是boss,用于验证战力是否满足快速过关
- @note: quickCnt 本次总共跳过几关 - 默认1
+ @param lineID: 目标关卡线路ID,可一次性跳多关,根据功能由前端发包决定或后端直接决定
+ @return: (lineID, quickCnt, quickFightPower, quickData) 或 None
+ @note: lineID 由后端决定的快速过关到哪,如果前端决定的则直接返回 lineID
+ @note: quickCnt 本次总共跳过几关
+ @note: quickFightPower 目标阵容战力,用于验证战力是否满足快速过关
+ @note: quickData 扩展数据,功能自定义,传给 OnPlayerFBQuickPassResult
'''
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
@@ -1579,7 +1566,7 @@
return callFunc(curPlayer, mapID, lineID)
-def OnPlayerFBQuickPassResult(curPlayer, mapID, lineID):
+def OnPlayerFBQuickPassResult(curPlayer, mapID, lineID, quickData):
'''副本快速过关结果
'''
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
@@ -1589,7 +1576,7 @@
if callFunc == None:
return
- return callFunc(curPlayer, mapID, lineID)
+ return callFunc(curPlayer, mapID, lineID, quickData)
#---------------------------------------------------------------------
@@ -2249,19 +2236,6 @@
return callFunc(curPlayer, mapID, funcLineID, tagType, tagID, valueList)
-def GetFBPlayerLineupID(curPlayer, mapID, funcLineID):
- ## 获取玩家使用的攻防阵容ID
- # @return: 攻击方阵容ID, 防守方阵容ID
- do_FBLogic_ID = __GetFBLogic_MapID(mapID)
-
- callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetFBPlayerLineupID"))
-
- if callFunc == None:
- # 默认不限制
- return ShareDefine.Lineup_Main, ShareDefine.Lineup_Main
-
- return callFunc(curPlayer, mapID, funcLineID)
-
def GetFBNPCLineupInfo(curPlayer, mapID, funcLineID):
## 获取NPC阵容相关
# @return: npcLineupIDList, strongerLV, difficulty
@@ -2273,7 +2247,7 @@
return callFunc(curPlayer, mapID, funcLineID)
-def GetFBNPCInitAttr(curPlayer, turnFight, npcObj):
+def GetFBNPCInitAttr(turnFight, npcObj):
## 获取副本指定NPC初始化属性
do_FBLogic_ID = __GetFBLogic_MapID(turnFight.mapID)
@@ -2281,9 +2255,9 @@
if callFunc == None:
return
- return callFunc(curPlayer, turnFight, npcObj)
+ return callFunc(turnFight, npcObj)
-def OnFBNPCKilledBefore(curPlayer, turnFight, gameObj, killer):
+def OnFBNPCKilledBefore(turnFight, gameObj, killer=None, useSkill=None):
## 副本NPC被击杀前处理,一般用于处理一些不被击杀的副本NPC逻辑
# @return: 可否被正常击杀
do_FBLogic_ID = __GetFBLogic_MapID(turnFight.mapID)
@@ -2293,7 +2267,7 @@
# 不需要逻辑时默认可被正常击杀
return True
- return callFunc(curPlayer, turnFight, gameObj, killer)
+ return callFunc(turnFight, gameObj, killer, useSkill)
def OnPlayerLineupAttackResult(curPlayer, atkObj, killObjList, useSkill, mapID, funcLineID):
## 回合战斗主动发起的玩家阵容攻击结果额外处理 ,一般处理副本相关的掉落、奖励等
@@ -2306,7 +2280,7 @@
return
-def OnTurnFightOver(curPlayer, turnFight, mapID, funcLineID, overMsg):
+def OnTurnFightOver(turnFight, mapID, funcLineID, overMsg):
## 回合战斗结束
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
@@ -2316,5 +2290,16 @@
if callFunc == None:
return
- return callFunc(curPlayer, turnFight, mapID, funcLineID, overMsg)
+ return callFunc(turnFight, mapID, funcLineID, overMsg)
+def OnTurnFightAward(curPlayer, guid, mapID, funcLineID, winFaction, statMsg, dateStr, reqData, awardDict):
+ ## 回合战斗结算奖励
+
+ do_FBLogic_ID = __GetFBLogic_MapID(mapID)
+
+ callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTurnFightAward"))
+
+ if callFunc == None:
+ return
+
+ return callFunc(curPlayer, guid, mapID, funcLineID, winFaction, statMsg, dateStr, reqData, awardDict)
--
Gitblit v1.8.0