hxp
2018-10-12 066b40acecd07aa07cb07849f98f4e39d67eb189
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py
@@ -97,6 +97,13 @@
    callFunc(curNPC,HurtType,HurtID)
    return
def OnNPCSetDead(curNPC):
    callFunc = GameWorld.GetExecFunc(NPCAI, "AIType_%d.%s"%(curNPC.GetAIType(), "OnNPCSetDead"))
    if callFunc == None:
        return None
    callFunc(curNPC)
    return
def OnNPCReborn(curNPC):
    FBLogic.OnNPCRebornInFB(curNPC)
    callFunc = GameWorld.GetExecFunc(NPCAI, "AIType_%d.%s"%(curNPC.GetAIType(), "OnNPCReborn"))
@@ -140,15 +147,15 @@
    gameWorldIndex = GameWorld.GetGameWorld().GetCurGameWorldIndex()
    GameWorld.Log("NPC Initing...FB %d" % gameWorldIndex)
    mapID = GameWorld.GetMap().GetMapID()
    hideNPCIDList = [] # 需要隐藏的NPCID列表
    # 由于某些常规线boss区域要重复利用,所以活动线独立,不开放给玩家,仅特定活动时系统传入
    activityMapLineDict = IpyGameDataPY.GetFuncEvalCfg("MapLine", 2, {})
    if mapID in activityMapLineDict:
        activityLineID = max(0, activityMapLineDict[mapID] - 1)
    hideNPCIDList = [] # 需要隐藏的NPCID列表
    if gameWorldIndex == activityLineID:
        hideNPCIDList = IpyGameDataPY.GetFuncEvalCfg("MapLine", 3)
        GameWorld.Log("    hideNPCIDList=%s" % hideNPCIDList)
        if gameWorldIndex == activityLineID:
            hideNPCIDList = IpyGameDataPY.GetFuncEvalCfg("MapLine", 3)
            GameWorld.Log("    hideNPCIDList=%s" % hideNPCIDList)
    gameNPC = GameWorld.GetNPCManager()
    npcCount = gameNPC.GetNPCCount()
    for i in xrange(npcCount):
@@ -199,7 +206,11 @@
            
            if curNPC == None:
                continue
            #2018.10.9修改:增加boss条件过滤,用标试点刷出来的boss也是召唤兽,放在bossAI中处理,此处不处理
            if ChConfig.IsGameBoss(curNPC):
                continue
        normal_NPC_List.append(curNPC)
    
    for curNPC in normal_NPC_List:
@@ -287,9 +298,10 @@
        if curNPC.GetType() == IPY_GameWorld.ntElf:
            continue
        
        if curNPC.GetOwner() == None:
        if curNPC.GetOwner() == None and not ChConfig.IsGameBoss(curNPC):
            #2009.8.17修改
            #如果一个召唤兽的主人为None, 划归为普通NPC, 为了减少副本中的CPU使用率
            #2018.10.9修改:增加boss条件过滤,用标试点刷出来的boss也是召唤兽,也需要处理
            continue
        
        if not curNPC.IsAlive():