From f15a181fbf2b61631b51e5e3a431c7cff6b15029 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 17 九月 2020 11:27:48 +0800 Subject: [PATCH] 8483 【后端】【主干】【changwei】【bt】协助方和被协助方任何模式不会互相造成伤害 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCHurtManager.py | 22 ++++++++++++++++++++++ ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py | 4 ++++ 2 files changed, 26 insertions(+), 0 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py index 72a5b60..10ef793 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py @@ -2785,6 +2785,10 @@ elif curPlayerAttackMode == IPY_GameWorld.amAll: pass + # 协助关系不可攻击 + if NPCHurtManager.IsAssistRelation(curPlayer, tagPlayer): + return ChConfig.Type_Relation_Friend, ChConfig.Def_PASysMessage_NotAttackTeam + # 以下为所属区域的一些特殊处理 #普通区 if curPlayerAreaType == IPY_GameWorld.gatNormal: 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 9eae451..f4b8f72 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCHurtManager.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCHurtManager.py @@ -267,6 +267,19 @@ ## 是否助战伤血玩家 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 + return False + def OnHurtPlayerEnterTeam(self, playerID, playerName, befTeamID, newTeam, tick): ''' 伤血玩家加入队伍 个人伤害并入队伍伤害,个人所有协助玩家伤害重新统计,表现在协助伤害排行榜,协助玩家之后的伤害计入队伍伤害 @@ -1037,6 +1050,15 @@ return False return defendHurtList.IsAssistPlayer(playerID) +def IsAssistRelation(curPlayer, tagPlayer): + ## 双方是否协助关系 + playerID = curPlayer.GetPlayerID() + tagPlayerID = tagPlayer.GetPlayerID() + for hurtList in PyGameData.g_npcHurtDict.values(): + if hurtList.IsAssistRelation(playerID, tagPlayerID): + return True + return False + def CheckPlayerCanAttackFBNPC(curPlayer, curNPC, mapID, isNotify=False): ## 检查玩家可否攻击有副本次数的NPC enterCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntDay % mapID) -- Gitblit v1.8.0