| | |
| | | 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)
|
| | |
|