ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -68,6 +68,9 @@
            GameWorld.DebugLog("技能使用处于buff状态限制中! skillID=%s,buffStateGroups=%s,limitState=%s" % (skillID, buffStateGroups, limitState))
            return
        
    if CheckSkillUseCntLimit(curBatObj, useSkill):
        return
    #没有指定目标,则按技能自身的目标逻辑
    if not tagObjList:
        tagObjList = GetSkillTags(turnFight, curBatObj, useSkill)
@@ -157,6 +160,32 @@
    if usePoolSkill:
        poolMgr.release(useSkill)
    return True
def CheckSkillUseCntLimit(batObj, useSkill):
    ## 检查技能使用次数是否受限
    # @return: 是否受限
    if not hasattr(useSkill, "GetEffectByID"):
        return
    effect = useSkill.GetEffectByID(ChConfig.SkillEff_SkillUseCntLimit)
    if not effect:
        return
    useCntLimit = effect.GetEffectValue(0) # 每场战斗最大次数,0不限
    turnUseCntLimit = effect.GetEffectValue(1) # 每大回合最大次数,0不限
    skillID = useSkill.GetSkillID()
    if useCntLimit:
        useCnt = batObj.GetSkillUseCnt(skillID)
        if useCnt >= useCntLimit:
            GameWorld.DebugLog("技能每场战斗使用次数受限! skillID=%s,useCnt=%s >= %s" % (skillID, useCnt, useCntLimit))
            return True
    if turnUseCntLimit:
        turnUseCnt = batObj.GetSkillTurnUseCnt(skillID)
        if turnUseCnt >= turnUseCntLimit:
            GameWorld.DebugLog("技能每大回合使用次数受限! skillID=%s,turnUseCnt=%s >= %s" % (skillID, turnUseCnt, turnUseCntLimit))
            return True
    return
def IsNeedSyncSkill(useSkill):
    ## 使用需要同步B427使用技能
@@ -976,7 +1005,8 @@
    # 统计伤血,可能单个技能对同一目标造成多次伤害
    totalHurtValue = 0
    isSuperHit, isStun, isSuckHP = False, False, False
    missObjIDList, immuneObjIDList = [], []
    missObjIDList, immuneObjIDList = [], [] # 闪避、免疫对象ID列表
    beHurtObjIDList = [] # 受伤的对象ID列表
    for hurtObj in useSkill.GetHurtObjList():
        hurtObjID = hurtObj.GetObjID()
        tagObj = batObjMgr.getBatObj(hurtObjID)
@@ -988,6 +1018,9 @@
            
        if hurtObj.HaveHurtType(ChConfig.HurtType_Normal):
            totalHurtValue += hurtObj.GetHurtHP()
            if hurtObj.GetLostHP() > 0: # 有掉血的
                if hurtObjID not in beHurtObjIDList:
                    beHurtObjIDList.append(hurtObjID)
            
        if hurtObj.HaveHurtType(ChConfig.HurtType_Miss):
            if hurtObjID not in missObjIDList:
@@ -1054,6 +1087,10 @@
        if tagID in effIgnoreObjIDList:
            continue
        
        # 掉血时
        if tagID in beHurtObjIDList:
            TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeHurt, curObj, connSkill=useSkill)
        # 直接攻击
        if isAttackDirect:
            if not triggerOne: