ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_801.py
@@ -3,7 +3,7 @@
#
#
##@package Buff_801
# @todo: 麒麟盾,吸收XX%伤害,护盾吸收伤害达到血量上限的xx%值或者3秒后爆发所吸收的伤害
# @todo: 麒麟盾,吸收XX%伤害
#
# @author Alee
# @date 2017-10-31 14:10
@@ -21,31 +21,6 @@
import PySkillManager
import GameObj
#===============================================================================
# ## 根据释放方的属性添加效果
# #  @param defender Buff承受者
# #  @param curEffect 技能效果
# #  @param calcDict 技能效果累加总表
# #  @return None
# def OnCalcBuffEx(curObj, curEffect, calcDict, curBuff):
#    GameWorld.DebugLog("801 ǰ OnCalcBuffEx-------------%s"%curEffect.GetEffectValue(0))
#    buffValue = curEffect.GetEffectValue(0) + PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(
#                                            curObj, None, curBuff.GetSkill(), ChConfig.TriggerType_AbsorbShield)
#    GameWorld.DebugLog("801 ǰ OnCalcBuffEx------buffValue-------%s"%buffValue)
#    # 吸收伤害比率, SetAtkAbsorb记录已吸收伤害值
#    curObj.SetDefanceAbsorb(buffValue)
#    maxValue = int(curEffect.GetEffectValue(1)/float(ChConfig.Def_MaxRateValue)*GameObj.GetMaxHP(curObj))
#    curObj.SetAtkAbsorb(maxValue)
#    return
#
#
# ## 返回buff类型,线性与否
# #  @param None
# #  @return 线性
# #  @remarks 函数详细说明.
# def GetCalcType():
#    return ChConfig.TYPE_Linear
#===============================================================================
## 添加BUFF后的逻辑
#  @param None
@@ -55,9 +30,6 @@
                                            curObj, None, addBuff.GetSkill(), ChConfig.TriggerType_AbsorbShield)
    # 战斗属性 在刷新的时候会清空,不能用在此函数中
    curObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShieldValue, buffValue)  # 吸收的伤害百分比
    maxValue = int(curEffect.GetEffectValue(1)/float(ChConfig.Def_MaxRateValue)*GameObj.GetMaxHP(curObj))
    curObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShieldMax, maxValue)  # 吸收上限值
    return
##吸收伤害百分比
@@ -72,29 +44,5 @@
    return [changeBuffValueDict.get(i, 0) for i in range(ChConfig.Def_BuffValue_Count)]
def OnBuffDisappear(curObj, curSkill, curBuff, curEffect, tick):
    if not curObj.GetDictByKey(ChConfig.Def_PlayerKey_AbsorbShield):
        curObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShieldValue, 0)  # 吸收的伤害百分比
        curObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShieldMax, 0)  # 吸收上限值
        curObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShield, 0)
        return
    #效果值 第三个值为技能ID
    boomID = curEffect.GetEffectValue(2)
    skillData = GameWorld.GetGameData().GetSkillBySkillID(boomID)
    if not skillData:
        curObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShieldValue, 0)  # 吸收的伤害百分比
        curObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShieldMax, 0)  # 吸收上限值
        curObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShield, 0)
        return
    # 存储起来用于伤害
    curObj.SetDict(ChConfig.Def_PlayerKey_MoreHurtValue,
                   curObj.GetDictByKey(ChConfig.Def_PlayerKey_AbsorbShield))
    SkillShell.Trigger_UseSkill(curObj, None, skillData, tick, curObj.GetPosX(), curObj.GetPosY())
    curObj.SetDict(ChConfig.Def_PlayerKey_MoreHurtValue, 0)
    curObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShieldValue, 0)  # 吸收的伤害百分比
    curObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShieldMax, 0)  # 吸收上限值
    curObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShield, 0)
    return