hxp
2019-03-19 06233c1cb36e7a1bdd10d7d88d94473878e96dba
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -1419,6 +1419,21 @@
        PYView_UseSkillPos(attacker, skillID, battleType, useSkillPosX, useSkillPosY, g_skillHurtList, False)
    
    return
# 通知客户端表现封包 无其他作用
def Sync_AttackResult(attacker, curSkill):
    global g_skillHurtList
    g_skillHurtList.Clear()
    defender = None
    if SkillShell.GetSkillFireAim(curSkill) == ChConfig.Def_UseSkillAim_Obj:
        useSkillTagID = attacker.GetUseSkillTagID()
        useSkillTagType = attacker.GetUseSkillTagType()
        defender = GameWorld.GetObj(useSkillTagID, useSkillTagType)
    __Sync_AttackResult(attacker, defender, curSkill)
##############################主动攻击成功#############################
## 玩家攻击成功
#  @param curPlayer 攻击Obj
@@ -1484,9 +1499,10 @@
        curPlayerSkill = curPlayer.GetSkillManager().FindSkillBySkillTypeID(skillTypeID)
        
        if curPlayerSkill:
            #设置玩家所学技能冷却CD
            SkillCommon.SetSkillRemainTime(curPlayerSkill, PlayerControl.GetReduceSkillCDPer(curPlayer), tick, curPlayer)
            if not IsSkipSkillCD:
                #设置玩家所学技能冷却CD
                SkillCommon.SetSkillRemainTime(curPlayerSkill, PlayerControl.GetReduceSkillCDPer(curPlayer), tick, curPlayer)
            #调用任务触发器
            #EventShell.EventRespons_UseSkillOK(curPlayer, skillTypeID)
            #执行连环被动技能处理
@@ -1501,6 +1517,27 @@
    # 普攻和对敌技能
    UseSkillOver(curPlayer, target, curSkill, tick)
    return True
# 无冷却状态
def IsSkipSkillCD(curPlayer, target, curSkill, tick):
    # 暴击情况下
    isSuperHit = False
    for i in xrange(g_skillHurtList.GetHurtCount()):
        hurtObj = g_skillHurtList.GetHurtAt(i)
        if not hurtObj:
            continue
        if hurtObj.GetAttackType() == ChConfig.Def_HurtType_SuperHit:
            isSuperHit = True
            break
    if isSuperHit:
        if PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(curPlayer, None, curSkill, ChConfig.TriggerType_SuperHitSkipCD):
            return True
        if PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(curPlayer, None, curSkill, ChConfig.TriggerType_SuperHitSkipCD):
            return True
    return False
    
# 根据伤血类型触发技能,群攻只触发一次,放在伤血列表被清之前
def OnHurtTypeTriggerSkill(attacker, target, curSkill, tick):
@@ -1627,7 +1664,8 @@
    tagFaintRate = PlayerControl.GetFaintDefRate(defender) if defender.GetGameObjType() == IPY_GameWorld.gotPlayer else 0
    rate = max(PlayerControl.GetFaintRate(attacker) - tagFaintRate, 0)
    # 添加最高60%击晕效果
    rate = min(max(PlayerControl.GetFaintRate(attacker) - tagFaintRate, 0), 6000)
    if not GameWorld.CanHappen(rate):
        return