From f089bf39d557fc228f7bd3b2eb8c85c7b402e7dc Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期五, 02 十一月 2018 18:40:13 +0800 Subject: [PATCH] 4575 脱机挂测试 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py | 26 +++++++++++++++++++------- 1 files changed, 19 insertions(+), 7 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py index 3ef7bf5..a575402 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py +++ b/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(): -- Gitblit v1.8.0