hxp
2019-12-30 01bb36eca00e1fcd14bef76d78a6aa2e1ce0d803
8346 【恺英】【后端】协助系统(添加第一名无归属时原因日志)
4个文件已修改
28 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -942,6 +942,7 @@
{
    DWORD        _NPCID;    //ID
    DWORD        MapID;    //地图ID
    BYTE        RefreshLine;    //刷新线路
    BYTE        RefreshMark;    //刷新标识点
    BYTE        IsNeedShunt;    //是否需要分流
    BYTE        RelatedType;    //刷怪关联类型
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -1730,7 +1730,7 @@
Def_FBMapID_MagicWeapon = 41110
#BOSS之家
Def_FBMapID_BossHome = 31020
Def_FBMapID_BossHome = 31270 #31020地图ID修改,不使用副本类型
#古神禁地
Def_FBMapID_GodArea = 31150
@@ -1839,11 +1839,6 @@
# 进入副本需要发送到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]
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -776,6 +776,7 @@
                "BOSSInfo":(
                        ("DWORD", "NPCID", 1),
                        ("DWORD", "MapID", 0),
                        ("BYTE", "RefreshLine", 0),
                        ("BYTE", "RefreshMark", 0),
                        ("BYTE", "IsNeedShunt", 0),
                        ("BYTE", "RelatedType", 0),
@@ -3121,6 +3122,7 @@
    def __init__(self):
        self.NPCID = 0
        self.MapID = 0
        self.RefreshLine = 0
        self.RefreshMark = 0
        self.IsNeedShunt = 0
        self.RelatedType = 0
@@ -3131,6 +3133,7 @@
        
    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 # 刷怪关联类型
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py
@@ -351,6 +351,7 @@
    if GameWorld.IsCrossServer():
        __DoRefreshWorldBossCrossServer(npcRefresh, tick)
        return
    rebornLineID = 0
    mapID = GameWorld.GetMap().GetMapID()
    refreshMark = npcRefresh.GetRefreshMark()
    lineID = GameWorld.GetGameWorld().GetLineID()
@@ -366,7 +367,20 @@
        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()
@@ -391,7 +405,6 @@
        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: