8346 【恺英】【后端】协助系统(添加第一名无归属时原因日志)
| | |
| | | {
|
| | | DWORD _NPCID; //ID
|
| | | DWORD MapID; //地图ID
|
| | | BYTE RefreshLine; //刷新线路
|
| | | BYTE RefreshMark; //刷新标识点
|
| | | BYTE IsNeedShunt; //是否需要分流
|
| | | BYTE RelatedType; //刷怪关联类型
|
| | |
| | | Def_FBMapID_MagicWeapon = 41110
|
| | |
|
| | | #BOSS之家
|
| | | Def_FBMapID_BossHome = 31020
|
| | | Def_FBMapID_BossHome = 31270 #31020地图ID修改,不使用副本类型
|
| | |
|
| | | #古神禁地
|
| | | Def_FBMapID_GodArea = 31150
|
| | |
| | | # 进入副本需要发送到GameServer的地图
|
| | | Def_MapID_SendToGameServer = [Def_FBMapID_HorsePetBoss, Def_FBMapID_FamilyInvade, Def_FBMapID_FamilyBossMap, Def_FBMapID_SealDemon, Def_FBMapID_DemonKing,
|
| | | Def_FBMapID_FamilyWar, Def_FBMapID_ZhuXianBoss, Def_FBMapID_AllFamilyBoss] + Def_MapID_LineIDToPropertyID
|
| | |
|
| | | ## 进入副本需要根据请求的功能线路处理的地图, hxp-改了进入模式,暂不需要了 180320
|
| | | #Def_MapID_ReqFBFuncLine = [Def_FBMapID_KirinHome, Def_FBMapID_BZZD, Def_FBMapID_SealDemonEx,
|
| | | # Def_FBMapID_BossHome, Def_FBMapID_MunekadoTrial, Def_FBMapID_QueenRelics, Def_FBMapID_DuJie] \
|
| | | # + Def_FBMapID_ClearDevil
|
| | |
|
| | | # 刷新标识点在无玩家的情况下也需要刷新的地图
|
| | | Def_NoPlayerNeedProcessRefreshPointMap = [Def_FBMapID_HorsePetBoss, Def_FBMapID_SealDemon, Def_FBMapID_GodArea, Def_FBMapID_BossHome, Def_FBMapID_GatherSoul, Def_FBMapID_ZhuXianBoss, Def_FBMapID_AllFamilyBoss]
|
| | |
| | | "BOSSInfo":(
|
| | | ("DWORD", "NPCID", 1),
|
| | | ("DWORD", "MapID", 0),
|
| | | ("BYTE", "RefreshLine", 0),
|
| | | ("BYTE", "RefreshMark", 0),
|
| | | ("BYTE", "IsNeedShunt", 0),
|
| | | ("BYTE", "RelatedType", 0),
|
| | |
| | | def __init__(self): |
| | | self.NPCID = 0
|
| | | self.MapID = 0
|
| | | self.RefreshLine = 0
|
| | | self.RefreshMark = 0
|
| | | self.IsNeedShunt = 0
|
| | | self.RelatedType = 0
|
| | |
| | | |
| | | def GetNPCID(self): return self.NPCID # ID
|
| | | def GetMapID(self): return self.MapID # 地图ID
|
| | | def GetRefreshLine(self): return self.RefreshLine # 刷新线路
|
| | | def GetRefreshMark(self): return self.RefreshMark # 刷新标识点
|
| | | def GetIsNeedShunt(self): return self.IsNeedShunt # 是否需要分流
|
| | | def GetRelatedType(self): return self.RelatedType # 刷怪关联类型
|
| | |
| | | if GameWorld.IsCrossServer():
|
| | | __DoRefreshWorldBossCrossServer(npcRefresh, tick)
|
| | | return
|
| | | rebornLineID = 0
|
| | | mapID = GameWorld.GetMap().GetMapID()
|
| | | refreshMark = npcRefresh.GetRefreshMark()
|
| | | lineID = GameWorld.GetGameWorld().GetLineID()
|
| | |
| | | bossID = GameLogic_ZhuXianBoss.CurFBLineBOSSID()
|
| | | stoneNPCID = 0
|
| | | else:
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition('BOSSInfo', {'RefreshMark':refreshMark, 'MapID':mapID}, isLogNone=False)
|
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('BOSSInfo', {'RefreshMark':refreshMark, 'MapID':mapID}, True, isLogNone=False)
|
| | | if not ipyDataList:
|
| | | return
|
| | | if len(ipyDataList) == 1:
|
| | | ipyData = ipyDataList[0]
|
| | | else:
|
| | | # 同地图同标试点有多条数据的则为不同指定分线
|
| | | ipyData = None
|
| | | for ipyD in ipyDataList:
|
| | | refreshLine = ipyD.GetRefreshLine()
|
| | | rebornLineID = refreshLine - 1
|
| | | if rebornLineID == lineID:
|
| | | ipyData = ipyD
|
| | | break
|
| | | if not ipyData:
|
| | | return
|
| | | stoneNPCID = ipyData.GetStoneNPCID()
|
| | |
| | | bosskey = ShareDefine.Def_Notify_WorldKey_GameWorldBossReborn % bossID
|
| | | rebornBossState = gameWorldMgr.GetGameWorldDictByKey(bosskey)
|
| | |
|
| | | rebornLineID = 0
|
| | | activityLineID = 0 # 活动线, 默认1线
|
| | | activityMapLineDict = IpyGameDataPY.GetFuncEvalCfg("MapLine", 2, {})
|
| | | if mapID in activityMapLineDict:
|