8483 【后端】【主干】【changwei】【bt】协助方和被协助方任何模式不会互相造成伤害(优化协助同一玩家的情况)
1个文件已修改
32 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCHurtManager.py 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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):