hxp
4 天以前 4e3d1ff7e0b98fc18b0b6e63e449f3d7577c0ba6
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -1001,13 +1001,17 @@
            
    # 统计击杀
    killObjList = [] # 击杀其他阵营目标列表
    dieObjList = [] # 死亡的单位列表
    for tagObj in useSkill.GetTagObjList():
        tagID = tagObj.GetID()
        if tagObj.IsAlive() and tagObj.GetHP() <= 0 and tagObj.GetFaction() != curObj.GetFaction():
            killObjList.append(tagObj)
            TurnAttack.SetObjKilled(turnFight, tagObj, curObj, useSkill)
        if tagObj.IsAlive() and tagObj.GetHP() <= 0:
            dieObjList.append(tagObj)
            if tagObj.GetFaction() != curObj.GetFaction():
                killObjList.append(tagObj)
                TurnAttack.SetObjKilled(turnFight, tagObj, curObj, useSkill)
    useSkill.SetKillObjList(killObjList)
    if curObj.IsAlive() and curObj.GetHP() <= 0:
        dieObjList.append(curObj)
        TurnAttack.SetObjKilled(turnFight, curObj)
        
    # 统计伤血,可能单个技能对同一目标造成多次伤害
@@ -1087,6 +1091,23 @@
            TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_KillOneObj, tagObj, connSkill=useSkill)
        TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_KillTagObj, tagObj, connSkill=useSkill)
        
    if dieObjList:
        for faction in [ChConfig.Def_FactionA, ChConfig.Def_FactionB]:
            batFaction = turnFight.getBatFaction(faction)
            for lineupNum in batFaction.lineupDict.keys():
                batLineup = batFaction.getBatlineup(lineupNum)
                for lineupObjID in batLineup.posObjIDDict.values():
                    lineupObj = batObjMgr.getBatObj(lineupObjID)
                    if not lineupObj.IsAlive():
                        continue
                    for dieObj in dieObjList:
                        # 敌方单位死亡时
                        if lineupObj.GetFaction() != dieObj.GetFaction():
                            TurnPassive.OnTriggerPassiveEffect(turnFight, lineupObj, ChConfig.TriggerWay_EnemyDie, dieObj, connSkill=useSkill)
                        # 己方单位死亡时
                        else:
                            TurnPassive.OnTriggerPassiveEffect(turnFight, lineupObj, ChConfig.TriggerWay_FriendDie, dieObj, connSkill=useSkill)
    triggerOne = False
    batType = useSkill.GetBatType()
    isAttackDirect = (isUseSkill and not SkillCommon.IsBuff(useSkill) and useSkill.GetSkillType() in [ChConfig.Def_SkillType_Atk])
@@ -1107,7 +1128,10 @@
            TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeAttackedDirect, curObj, connSkill=useSkill)
        else:
            TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeAnyEffect, curObj, connSkill=useSkill)
            # 受到持续伤害
            if tagID in beHurtObjIDList:
                TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeDOTHurt, curObj, connSkill=useSkill)
        # 使用技能后
        if isUseSkill:
            if not triggerOne:
@@ -1432,6 +1456,7 @@
    '''计算伤害,默认按攻击计算
    '''
    
    mapID = turnFight.mapID
    skillID = curSkill.GetSkillID()
    pmType = GetPMType(atkObj, curSkill)
    ignoreDef = IsIgnoreDef(curSkill)
@@ -1547,6 +1572,11 @@
    if batType == ChConfig.TurnBattleType_Pursue:
        aPursueDamPer = atkObj.GetBatAttrValue(ChConfig.AttrID_PursueDamPer)
        
    aArenaDamPer, dArenaDamPerDef = 0, 0 # 竞技增伤、竞技减伤
    if mapID == ChConfig.Def_FBMapID_ArenaBattle:
        aArenaDamPer = atkObj.GetBatAttrValue(ChConfig.AttrID_ArenaDamPer)
        dArenaDamPerDef = atkObj.GetBatAttrValue(ChConfig.AttrID_ArenaDamPerDef)
    # 所有万分率参数统一除10000.0
    atkSkillPer /= 10000.0
    aNormalSkillPer /= 10000.0
@@ -1562,6 +1592,8 @@
    dFinalDamPerDef /= 10000.0
    aComboDamPer /= 10000.0
    aPursueDamPer /= 10000.0
    aArenaDamPer /= 10000.0
    dArenaDamPerDef /= 10000.0
    
    if calcType != ChConfig.Def_Calc_Attack:
        aAtk = GetCalcBaseValue(calcType, atkObj, defObj, curSkill)