From b9bef849ab19b8a3d6e889e82c687eec736cbd2a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 10 十月 2025 20:42:29 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(徽章旗帜、旗号;捐献;公会加经验、加贡献度;搜索支持公会编号;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py | 59 ++++++++++++++++++++++++++++++++---------------------------
1 files changed, 32 insertions(+), 27 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 01e4c7f..322f90c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
@@ -498,7 +498,7 @@
playerZoneID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqCrossFBZoneID)
playerFuncLineID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqCrossFBFuncLine)
# 跨服排位分区与玩家分区可能不一样
- if (fbZoneID != playerZoneID or fbFuncLineID != playerFuncLineID) and mapID not in [ChConfig.Def_FBMapID_CrossChampionship]:
+ if (fbZoneID != playerZoneID or fbFuncLineID != playerFuncLineID) and mapID not in []:
GameWorld.ErrLog("DoEnterFB 玩家与当前副本线路所属分区或功能分线不同,踢出玩家!fbZoneID=%s,playerZoneID=%s,fbFuncLineID=%s,playerFuncLineID=%s"
% (fbZoneID, playerZoneID, fbFuncLineID, playerFuncLineID), curPlayerID)
CrossRealmPlayer.PlayerExitCrossServer(curPlayer)
@@ -1069,13 +1069,6 @@
for key, mapIDList in ChConfig.Def_FB_MapID.items():
if not mapIDList:
continue
- mapID = mapIDList[0]
- ipyData = FBCommon.GetFBIpyData(mapID)
- if ipyData and ipyData.GetDayResetType():
- if onDayType != ipyData.GetDayResetType():
- continue
- elif onDayType != ShareDefine.Def_OnEventTypeEx:
- continue
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (key, "OnFBPlayerOnDay"))
if callFunc:
callFunc(curPlayer)
@@ -1530,20 +1523,21 @@
return callFunc(curPlayer, addExp, expViewType)
-## 副本扫荡询问
-def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, cnt, isFinish, dataEx):
+def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, cnt, dataEx):
+ ## 副本扫荡询问
+ # @return: None - 不可扫荡
+ # @return: 非None - 可以扫荡,且返回值直接传给 OnPlayerFBSweepResult
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerFBSweepAsk"))
- # 没有额外条件判断默认返回True
if callFunc == None:
- return True
+ return
- return callFunc(curPlayer, mapID, lineID, cnt, isFinish, dataEx)
+ return callFunc(curPlayer, mapID, lineID, cnt, dataEx)
-## 副本扫荡结果
-def OnPlayerFBSweepResult(curPlayer, mapID, lineID, cnt, isFinish, dataEx):
+def OnPlayerFBSweepResult(curPlayer, mapID, lineID, cnt, dataEx, askRet):
+ ## 副本扫荡结果
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerFBSweepResult"))
@@ -1551,7 +1545,7 @@
if callFunc == None:
return False
- return callFunc(curPlayer, mapID, lineID, cnt, isFinish, dataEx)
+ return callFunc(curPlayer, mapID, lineID, cnt, dataEx, askRet)
## 开始公共CD副本扫荡
def OnStartPubCDFBSweep(curPlayer, mapID, lineID, cnt, dataEx):
@@ -2250,17 +2244,6 @@
return
return callFunc()
-## 是否需要做进入副本通用检查条件逻辑,默认需要检查
-def OnNeedCheckCanEnterFBComm(curPlayer, mapID, lineID):
- do_FBLogic_ID = __GetFBLogic_MapID(mapID)
-
- callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnNeedCheckCanEnterFBComm"))
-
- if callFunc == None:
- return True
-
- return callFunc(curPlayer, mapID, lineID)
-
def OnTurnFightRequest(curPlayer, mapID, funcLineID, tagType, tagID, valueList):
## 回合战斗请求 - 地图验证
# @return: 是否允许
@@ -2298,6 +2281,28 @@
return callFunc(curPlayer, mapID, funcLineID)
+def GetFBNPCInitAttr(curPlayer, turnFight, npcObj):
+ ## 获取副本指定NPC初始化属性
+ do_FBLogic_ID = __GetFBLogic_MapID(turnFight.mapID)
+
+ callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetFBNPCInitAttr"))
+ if callFunc == None:
+ return
+
+ return callFunc(curPlayer, turnFight, npcObj)
+
+def OnFBNPCKilledBefore(curPlayer, turnFight, gameObj, killer):
+ ## 副本NPC被击杀前处理,一般用于处理一些不被击杀的副本NPC逻辑
+ # @return: 可否被正常击杀
+ do_FBLogic_ID = __GetFBLogic_MapID(turnFight.mapID)
+
+ callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnFBNPCKilledBefore"))
+ if callFunc == None:
+ # 不需要逻辑时默认可被正常击杀
+ return True
+
+ return callFunc(curPlayer, turnFight, gameObj, killer)
+
def OnPlayerLineupAttackResult(curPlayer, atkObj, killObjList, useSkill, mapID, funcLineID):
## 回合战斗主动发起的玩家阵容攻击结果额外处理 ,一般处理副本相关的掉落、奖励等
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
--
Gitblit v1.8.0