ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py
@@ -315,6 +315,16 @@
def NPCRefresh_218(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_219(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_220(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_221(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_222(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_223(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_224(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_225(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_226(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_227(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_228(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_229(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
def NPCRefresh_230(npcRefresh, tick):__DoRefreshWorldBoss(npcRefresh, tick)
## 世界boss刷怪
#  @param npcRefresh 刷新实例
@@ -526,6 +536,7 @@
    lineID = GameWorld.GetGameWorld().GetLineID()
    realMapID = GameWorld.GetGameWorld().GetRealMapID()
    copyMapID = GameWorld.GetGameWorld().GetCopyMapID()
    relatedType, relatedID = 0, ""
    
    if mapID == ChConfig.Def_FBMapID_CrossDemonKing:
        bossID = GameLogic_CrossDemonKing.GetCurFBLineBOSSID()
@@ -539,7 +550,9 @@
        
        stoneNPCID = bossIpyData.GetStoneNPCID()
        bossID = bossIpyData.GetNPCID()
        relatedType = bossIpyData.GetRelatedType()
        relatedID = bossIpyData.GetRelatedID()
        if mapID not in ChConfig.Def_CrossZoneMapTableName:
            return
        tableName = ChConfig.Def_CrossZoneMapTableName[mapID]
@@ -554,8 +567,34 @@
        return
    
    gameFB = GameWorld.GetGameFB()
    bosskey = ShareDefine.Def_Notify_WorldKey_GameWorldBossRebornCross % (zoneID, bossID)
    rebornBossState = GameWorld.GetGameWorld().GetGameWorldDictByKey(bosskey)
    gameWorldMgr = GameWorld.GetGameWorld()
    forceReborn = False # 强制重生
    actBossRebornSign = 0
    mapActBossRebornSign = 0
    # 关联日常活动
    if relatedType == 1:
        relatedID = int(relatedID)
        actionKey = ShareDefine.Def_Notify_WorldKey_CrossDailyActionState % relatedID
        rebornBossState = 1 if gameWorldMgr.GetGameWorldDictByKey(actionKey) else 0
    # 关联运营活动,待扩展
    elif relatedType == 2:
        pass
    else:
        bosskey = ShareDefine.Def_Notify_WorldKey_GameWorldBossRebornCross % (zoneID, bossID)
        rebornBossState = GameWorld.GetGameWorld().GetGameWorldDictByKey(bosskey)
    # 关联活动boss
    if relatedType:
        # 关联活动boss只要复活标记与上次不同,则强制重生
        actBossRebornSign = gameWorldMgr.GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ActionBossRebornSign % relatedID)
        mapActBossRebornSign = gameFB.GetGameFBDictByKey(ChConfig.Map_NPC_ActBossLastRebornSign % refreshMark)
        rebornBossState = rebornBossState and actBossRebornSign
        if rebornBossState and actBossRebornSign != mapActBossRebornSign:
            forceReborn = True
    curNPC = None
    if npcRefresh.GetCount() > 0:
        curNPC = npcRefresh.GetAt(0)
@@ -563,11 +602,16 @@
    # 复活状态
    if rebornBossState:
        if curNPC:
            if curNPC.GetNPCID() == bossID:
            if not forceReborn and curNPC.GetNPCID() == bossID:
                return
            #去掉非bossNPC
            NPCCommon.SetDeadEx(curNPC)
            
        if mapActBossRebornSign and actBossRebornSign == mapActBossRebornSign:
            #GameWorld.DebugLog("活动线已经刷过不再刷活动boss: lineID=%s,refreshMark=%s,bossID=%s,actBossRebornSign=%s"
            #                   % (lineID, refreshMark, bossID, actBossRebornSign))
            return
    # 死亡状态
    else:
        if curNPC:
@@ -598,6 +642,9 @@
    __InitNewBornNPC(npcRefresh, tick)
    gameFB.SetGameFBDict(rebornTickKey, tick)
    
    if actBossRebornSign and rebornBossState:
        gameFB.SetGameFBDict(ChConfig.Map_NPC_ActBossLastRebornSign % refreshMark, actBossRebornSign)
    GameWorld.DebugLog("CrossBossRefresh mapID=%s,realMapID=%s,copyMapID=%s,refreshMark=%s,rebornNPCID=%s,OK!" 
                       % (mapID, realMapID, copyMapID, refreshMark, rebornNPCID), lineID)
    return