From 72631597752ca0876bbbb434a5b148d89c942ab5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 23 十二月 2019 21:18:32 +0800
Subject: [PATCH] 8346 【恺英】【后端】协助系统(修复第一名伤血无归属玩家时,会默认给其他玩家归属bug)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py |   66 ++++++++++++++++-----------------
 1 files changed, 32 insertions(+), 34 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
index 70c5423..5f574ff 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -5297,40 +5297,38 @@
                     
         elif ownerType == ChConfig.Def_NPCHurtTypeTeam:
             curTeam = GameWorld.GetTeamManager().FindTeam(ownerID)
-            if not curTeam:
-                return
-            
-            # 因为有击杀次数限制,所以不是所有的队员都可以获得归属,所以这里设置为特殊指定玩家掉落
-            hurtType, hurtID = ChConfig.Def_NPCHurtTypeSpecial, 0
-            if isDead:
-                GameWorld.Log("队伍成员数: %s" % (curTeam.GetMemberCount()))
-            refreshPoint = curNPC.GetRefreshPosAt(curNPC.GetCurRefreshPointIndex())
-            for i in xrange(curTeam.GetMemberCount()):
-                curTeamPlayer = curTeam.GetMember(i)
-                if curTeamPlayer == None or curTeamPlayer.GetPlayerID() == 0:
-                    if isDead:
-                        GameWorld.Log("    i=%s, 成员不存在!" % (i))
-                    continue
-                
-                if curTeamPlayer.GetCopyMapID() == GameWorld.GetGameWorld().GetCopyMapID() \
-                    and (not hurtList or hurtList.HaveHurtValue(curTeamPlayer.GetPlayerID()))\
-                    and AttackCommon.CheckKillNPCByCnt(curTeamPlayer, curNPC, False) and curTeamPlayer.GetVisible():
-                    self.__AddDropOwnerPlayerBuff(curTeamPlayer, tick)
-                    killerDict[curTeamPlayer.GetPlayerID()] = curTeamPlayer
-                    if isDead:
-                        GameWorld.Log("    i=%s, 成员有归属权! memPlayerID=%s,背包剩余空格=%s" 
-                                      % (i, curTeamPlayer.GetPlayerID(), ItemCommon.GetItemPackSpace(curTeamPlayer, IPY_GameWorld.rptItem)))
-                        
-                # 不同线、或者距离超出boss范围的队员不加归属buff
-                else:
-                    isOk = BuffSkill.DelBuffBySkillID(curTeamPlayer, ChConfig.Def_SkillID_DropOwnerBuff, tick, buffOwner=curNPC)
-                    if isOk:
-                        GameWorld.DebugLog("删除归属队员buff: teamID=%s,playerID=%s" % (ownerID, curTeamPlayer.GetPlayerID()))
-                    if isDead:
-                        GameWorld.Log("    i=%s, 成员无归属权! memPlayerID=%s,copyMapID=%s,pos(%s,%s),CheckKillNPCByCnt=%s" 
-                                      % (i, curTeamPlayer.GetPlayerID(), curTeamPlayer.GetCopyMapID(), 
-                                         curTeamPlayer.GetPosX(), curTeamPlayer.GetPosY(), 
-                                         AttackCommon.CheckKillNPCByCnt(curTeamPlayer, curNPC, False)))
+            if curTeam:
+                # 因为有击杀次数限制,所以不是所有的队员都可以获得归属,所以这里设置为特殊指定玩家掉落
+                hurtType, hurtID = ChConfig.Def_NPCHurtTypeSpecial, 0
+                if isDead:
+                    GameWorld.Log("队伍成员数: %s" % (curTeam.GetMemberCount()))
+                refreshPoint = curNPC.GetRefreshPosAt(curNPC.GetCurRefreshPointIndex())
+                for i in xrange(curTeam.GetMemberCount()):
+                    curTeamPlayer = curTeam.GetMember(i)
+                    if curTeamPlayer == None or curTeamPlayer.GetPlayerID() == 0:
+                        if isDead:
+                            GameWorld.Log("    i=%s, 成员不存在!" % (i))
+                        continue
+                    
+                    if curTeamPlayer.GetCopyMapID() == GameWorld.GetGameWorld().GetCopyMapID() \
+                        and (not hurtList or hurtList.HaveHurtValue(curTeamPlayer.GetPlayerID()))\
+                        and AttackCommon.CheckKillNPCByCnt(curTeamPlayer, curNPC, False) and curTeamPlayer.GetVisible():
+                        self.__AddDropOwnerPlayerBuff(curTeamPlayer, tick)
+                        killerDict[curTeamPlayer.GetPlayerID()] = curTeamPlayer
+                        if isDead:
+                            GameWorld.Log("    i=%s, 成员有归属权! memPlayerID=%s,背包剩余空格=%s" 
+                                          % (i, curTeamPlayer.GetPlayerID(), ItemCommon.GetItemPackSpace(curTeamPlayer, IPY_GameWorld.rptItem)))
+                            
+                    # 不同线、或者距离超出boss范围的队员不加归属buff
+                    else:
+                        isOk = BuffSkill.DelBuffBySkillID(curTeamPlayer, ChConfig.Def_SkillID_DropOwnerBuff, tick, buffOwner=curNPC)
+                        if isOk:
+                            GameWorld.DebugLog("删除归属队员buff: teamID=%s,playerID=%s" % (ownerID, curTeamPlayer.GetPlayerID()))
+                        if isDead:
+                            GameWorld.Log("    i=%s, 成员无归属权! memPlayerID=%s,copyMapID=%s,pos(%s,%s),CheckKillNPCByCnt=%s" 
+                                          % (i, curTeamPlayer.GetPlayerID(), curTeamPlayer.GetCopyMapID(), 
+                                             curTeamPlayer.GetPosX(), curTeamPlayer.GetPosY(), 
+                                             AttackCommon.CheckKillNPCByCnt(curTeamPlayer, curNPC, False)))
                         
         elif ownerType == ChConfig.Def_NPCHurtTypeFamily:
             

--
Gitblit v1.8.0