From 6ccc82cff0bc5ecd2734253d4c5ef1ae2bb748da Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 17 九月 2020 12:24:13 +0800
Subject: [PATCH] 8483 【后端】【主干】【changwei】【bt】协助方和被协助方任何模式不会互相造成伤害(优化协助同一玩家的情况)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCHurtManager.py |   32 +++++++++++++++++++++-----------
 1 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCHurtManager.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCHurtManager.py
index f4b8f72..38c2670 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCHurtManager.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCHurtManager.py
@@ -266,18 +266,28 @@
     def IsAssistPlayer(self, playerID):
         ## 是否助战伤血玩家
         return playerID in self.__assistPlayerIDDict
-    
-    def __IsAssistRelation(self, playerID, assistPlayerID):
-        ## 是否存在协助关系
-        if assistPlayerID not in self.__assistPlayerIDDict:
-            return False
-        return self.__assistPlayerIDDict[assistPlayerID] == playerID
+        
     def IsAssistRelation(self, playerID, tagPlayerID):
-        ## 玩家双方是否协助关系
-        if self.__IsAssistRelation(playerID, tagPlayerID):
-            return True
-        if self.__IsAssistRelation(tagPlayerID, playerID):
-            return True
+        ## 玩家双方是否存在协助关系
+        
+        # A协助B
+        if playerID in self.__assistPlayerIDDict:
+            if self.__assistPlayerIDDict[playerID] == tagPlayerID:
+                #GameWorld.DebugLog("%s 协助  %s" % (playerID, tagPlayerID))
+                return True
+            
+        # B协助A
+        elif tagPlayerID in self.__assistPlayerIDDict:
+            if self.__assistPlayerIDDict[tagPlayerID] == playerID:
+                #GameWorld.DebugLog("%s 协助  %s" % (tagPlayerID, playerID))
+                return True
+            
+        # 协助同一个玩家
+        for assPlayerIDList in self.__noAssitPlayerIDDict.values():
+            if playerID in assPlayerIDList and tagPlayerID in assPlayerIDList:
+                #GameWorld.DebugLog("协助同一玩家! %s %s" % (playerID, tagPlayerID))
+                return True
+            
         return False
     
     def OnHurtPlayerEnterTeam(self, playerID, playerName, befTeamID, newTeam, tick):

--
Gitblit v1.8.0