ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -124,20 +124,19 @@
        curBatObj.SetMainTagIDList(tagIDList)
        
    useTag = ""
    # 主技能额外触发的技能可不下发,前端视为仅释放一个主技能
    if batType != ChConfig.TurnBattleType_Enhance:
        # 因为可能触发连击,所以标记需带上累计使用技能次数,确保唯一
        useTag = "Skill_%s_%s_%s" % (objID, skillID, curBatObj.GetSkillUseCnt(skillID) + 1)
        clientPack = poolMgr.acquire(ChPyNetSendPack.tagSCTurnFightTag)
        clientPack.Tag = useTag
        clientPack.Len = len(clientPack.Tag)
        clientPack.Sign = 0
        turnFight.addBatPack(clientPack)
    #这个技能是Buff
    if SkillCommon.IsBuff(useSkill):
        __doAddBuff(turnFight, curBatObj, useSkill)
    else:
        # 主技能额外触发的技能可不下发,前端视为仅释放一个主技能
        if batType != ChConfig.TurnBattleType_Enhance:
            # 因为可能触发连击,所以标记需带上累计使用技能次数,确保唯一
            useTag = "Skill_%s_%s_%s" % (objID, skillID, curBatObj.GetSkillUseCnt(skillID) + 1)
            clientPack = poolMgr.acquire(ChPyNetSendPack.tagSCTurnFightTag)
            clientPack.Tag = useTag
            clientPack.Len = len(clientPack.Tag)
            clientPack.Sign = 0
            turnFight.addBatPack(clientPack)
        __doUseSkill(turnFight, curBatObj, useSkill)
        
    DoAttackResult(turnFight, curBatObj, useSkill)
@@ -209,6 +208,7 @@
            if tagNum not in lineupNumList:
                lineupNumList.append(tagNum)
                
    batLineup = None
    aimObjList = [] # 先筛选出范围目标
    for num in lineupNumList:
        batLineup = batFaction.getBatlineup(num)
@@ -305,6 +305,21 @@
        sneerObjFirst = False
        aimObjList.sort(key=lambda o:(o.IsInControlled()))
        GameWorld.DebugLog("未被控制优先: %s" % [[o.GetID(), o.IsInControlled()] for o in aimObjList])
    # 灼烧/玄火目标优先
    elif tagAffect == ChConfig.SkillTagAffect_Burn:
        relativeObj = __GetRelativeObjDefault(batObjMgr, curBatObj, posNum, batLineup)
        sortObjList = [] # 优先灼烧目标,再对位
        for aimObj in aimObjList:
            sortValue = 0
            buffMgr = aimObj.GetBuffManager()
            if buffMgr.FindBuffListByState(ChConfig.BatObjState_Burn) or buffMgr.FindBuffListByState(ChConfig.BatObjState_BurnPlus):
                sortValue = 2
            elif relativeObj and relativeObj.GetID() == aimObj.GetID():
                sortValue = 1
            sortObjList.append([sortValue, aimObj])
        sortObjList.sort(reverse=True)
        aimObjList = [s[1] for s in sortObjList]
        
    else:
        # 范围目标超过个数,则随机取
@@ -409,7 +424,8 @@
def __GetRelativeObjDefault(batObjMgr, curBatObj, posNum, batLineup):
    ## 获取在某一阵营中的默认对位目标
    if not batLineup:
        return
    tagAffect = ChConfig.SkillTagAffect_None # 默认对位目标不需要细分目标,默认规则即可
    inColNum = ChConfig.GetInColNum(posNum) # 玩家所在纵列
    # 优先自己所在纵
@@ -1599,6 +1615,10 @@
    dHP = defObj.GetHP()
    GameWorld.DebugLog("结算dot: atkID=%s,defID=%s,buffID=%s,skillID=%s,ownerID=%s,hurtValue=%s,hurtTypes=%s,dHP=%s" 
                       % (atkID, defID, buffID, skillID, ownerID, hurtValue, hurtTypes, dHP))
    layer = curBuff.GetLayer()
    if layer > 0:
        hurtValue *= layer
        GameWorld.DebugLog("    多层buff伤害: hurtValue=%s,layer=%s" % (hurtValue, layer))
    hurtValue, realHurtHP, hurtTypes = CalcHurtHPWithBuff(turnFight, atkObj, defObj, useSkill, hurtValue, hurtTypes)
    
    # dot的反弹、吸血待定