From 90e08c4c72c7a42f5fcbb53e834dbc4ac88d8b56 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期五, 21 九月 2018 11:20:48 +0800 Subject: [PATCH] 3357 优化脱机战斗表现-- 190级以下脱机挂玩家,6个中随机5个隐身,前期太多玩家 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py | 24 +++++++++++++++++++++++- 1 files changed, 23 insertions(+), 1 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..138d27e 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) -- Gitblit v1.8.0