|  |  | 
 |  |  | import SkillShell
 | 
 |  |  | import FBLogic
 | 
 |  |  | import PassiveBuffEffMng
 | 
 |  |  | import IpyGameDataPY
 | 
 |  |  | #---------------------------------------------------------------------
 | 
 |  |  | #导入所有的NPCAI
 | 
 |  |  | GameWorld.ImportAll("Script\\NPC\\" , "NPCAI")
 | 
 |  |  | 
 |  |  |     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"))
 | 
 |  |  | 
 |  |  | def __Func_InitNPC(tick):
 | 
 |  |  |     #调用NPC AI击杀触发
 | 
 |  |  |     NPCCommon.OnNPCDie = OnNPCDie
 | 
 |  |  |     GameWorld.Log("NPC Initing...FB %d"%GameWorld.GetGameWorld().GetCurGameWorldIndex())
 | 
 |  |  |     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)
 | 
 |  |  |         if gameWorldIndex == activityLineID:
 | 
 |  |  |             hideNPCIDList = IpyGameDataPY.GetFuncEvalCfg("MapLine", 3)
 | 
 |  |  |             GameWorld.Log("    hideNPCIDList=%s" % hideNPCIDList)
 | 
 |  |  |              | 
 |  |  |     gameNPC = GameWorld.GetNPCManager()
 | 
 |  |  |     npcCount = gameNPC.GetNPCCount()
 | 
 |  |  |     for i in xrange(npcCount):
 | 
 |  |  |         curNPC = gameNPC.GetNPCByIndex(i)
 | 
 |  |  |         if curNPC.GetNPCID() in hideNPCIDList:
 | 
 |  |  |             curNPC.SetVisible(False)
 | 
 |  |  |             continue
 | 
 |  |  |         #初始化
 | 
 |  |  |         NPCCommon.InitNPC(curNPC) 
 | 
 |  |  |         
 |