From f460b6035d693dd40c361f7c289c5dac2a2a32a1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 16 十月 2018 16:30:12 +0800
Subject: [PATCH] 4201 【主干】【后端】新增战斗力参数:移动速度百分比
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py | 33 ++++++++++++++++++++++++++++++---
1 files changed, 30 insertions(+), 3 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 92e89fd..a575402 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py
+++ b/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)
@@ -184,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:
@@ -272,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