From c69a7bc72805a3234da12ff30ff92ca68fe11282 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 30 八月 2018 11:31:24 +0800
Subject: [PATCH] Add: 增加活动线隐藏NPC逻辑支持;      骑宠争夺伤害前x名广播提示修改;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/KillScreenNPC.py    |    3 ++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FamilyRobBoss.py |    7 ++++---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py                    |   17 ++++++++++++++++-
 3 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/KillScreenNPC.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/KillScreenNPC.py
index 3675312..b876c90 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/KillScreenNPC.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/KillScreenNPC.py
@@ -86,7 +86,8 @@
         return
     if curNPC.GetType() not in [IPY_GameWorld.ntMonster]:
         return
-    
+    if not curNPC.GetVisible():
+        return
     curHP = GameObj.GetHP(curNPC)
     AttackCommon.NPCAddObjInHurtList(curPlayer, curNPC, curHP, curHP)
     
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FamilyRobBoss.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FamilyRobBoss.py
index 63e03d9..5113087 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FamilyRobBoss.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FamilyRobBoss.py
@@ -258,7 +258,7 @@
     curNPCPlayerOrderAwardDict = ownerFamilyPlayerOrderAwardDict.get(bossID, {})
     maxOrder = max(curNPCPlayerOrderAwardDict) if curNPCPlayerOrderAwardDict else 0
     curOrder = 0
-    #orderPlayerNameList = []
+    orderPlayerNameList = []
     for hurtPlayer in npcHisHurtPlayerList:
         # 只算归属仙盟的
         if hurtPlayer.familyID != ownerFamilyID:
@@ -268,13 +268,14 @@
         batchPlayerIDList.append([hurtPlayer.objID])
         batchAddItemList.append(awardItemList)
         batchParamList.append([bossID, curOrder])
-        #orderPlayerNameList.append(hurtPlayer.name)
+        orderPlayerNameList.append(hurtPlayer.name)
         GameWorld.Log("    归属仙盟第%s名额外奖励: %s" % (curOrder, awardItemList))
         if curOrder >= maxOrder:
             break
     if batchPlayerIDList:
         PlayerControl.SendMailBatch("FairyGrabBoss2", batchPlayerIDList, batchAddItemList, batchParamList)
-        #PlayerControl.WorldNotify(0, "FairyGrabBossRank", orderPlayerNameList + [bossID])
+        orderPlayerName = ShareDefine.Def_Space.join(orderPlayerNameList)
+        PlayerControl.WorldNotify(0, "FairyGrabBossRank", [orderPlayerName, bossID])
         
     # 参与仙盟历史伤血奖励, 算历史伤血
     joinAwardNeedHurtHPPer = IpyGameDataPY.GetFuncCfg("FairyGrabBoss", 2)
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..3ef7bf5 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")
@@ -136,11 +137,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()
+    # 由于某些常规线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)
+        
     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