ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py
@@ -90,11 +90,26 @@
#  @remarks 函数详细说明.
def OnNPCDie(curNPC,HurtType,HurtID):
    PassiveBuffEffMng.GetPassiveEffManager().RemovePassiveEff((curNPC.GetID(), IPY_GameWorld.gotNPC))
    # 召唤NPC死亡触发被动技能
    owner = NPCCommon.GetSummonNPCOwner(IPY_GameWorld.gotPlayer, curNPC)
    if owner:
        owner.SetDict("summondie", curNPC.GetNPCID())
        PassiveBuffEffMng.OnPassiveSkillTrigger(owner, None, None, ChConfig.TriggerType_SummonDie,
                                                GameWorld.GetGameWorld().GetTick())
    callFunc = GameWorld.GetExecFunc(NPCAI, "AIType_%d.%s"%(curNPC.GetAIType(), "OnDie"))
    if callFunc == None:
        return None
    
    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):
@@ -119,7 +134,13 @@
    callFunc(atkObj, curNPC, skill, tick)
    
    PlayerActivity.OnAttackNPCActivity(atkObj, curNPC)
def OnCheckCanDie(atkObj, curNPC, skill, tick):
    callFunc = GameWorld.GetExecFunc(NPCAI, "AIType_%d.%s"%(curNPC.GetAIType(), "OnCheckCanDie"))
    if callFunc == None:
        return True
    return callFunc(atkObj, curNPC, skill, tick)
#---------------------------------------------------------------------
## 初始化NPC 
#  @param tick 当前时间
@@ -199,7 +220,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 +312,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():
@@ -332,7 +358,19 @@
    for curNPC in gameTruck_List:
        ProcessNPCAI(curNPC, tick)
    
    # 宠物AI
    ProcessPetAI(gameWorld, gameNPC, tick)
# 宠物AI需求减弱特殊处理, 减少性能消耗
def ProcessPetAI(gameWorld, gameNPC, tick):
    #---处理宠物的AI---
    #未到刷新间隔
    if tick - gameWorld.GetTickByType(ChConfig.TYPE_Map_Tick_PetAITick) < \
                ChConfig.TYPE_Map_Tick_Time[ChConfig.TYPE_Map_Tick_PetAITick]:
        return
    gameWorld.SetTickByType(ChConfig.TYPE_Map_Tick_PetAITick, tick)
    gamePet_List = []
    
    for index in range(0, gameNPC.GetPetCount()):