8483 【后端】【主干】【changwei】【bt】协助方和被协助方任何模式不会互相造成伤害
2个文件已修改
26 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCHurtManager.py 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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:
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)