xdh
2018-09-03 1c34f0edac641d381c0fe45839bbfb9e4b0ce4b6
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py
@@ -46,6 +46,7 @@
import SkillShell
import FBLogic
import PassiveBuffEffMng
import IpyGameDataPY
#---------------------------------------------------------------------
#导入所有的NPCAI
GameWorld.ImportAll("Script\\NPC\\" , "NPCAI")
@@ -96,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"))
@@ -136,11 +144,25 @@
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)