hch
2019-04-18 2f95eaf5e679b2b798d3fa1988636a3795656cce
6516 【后端】【2.0】战斗公式增加系数

去除属性 暴击伤害加成 和 会心伤害加成; 保留属性条目
伤害公式参数去除 aSuperHitPer, aLuckyHitPer, aIceAtkSuperHit
装备评分公式参数去除 SuperHitPer
战斗力公式参数去除 SuperHitPer, LuckyHitPer;添加参数Luck 慧根
脱机挂经验公式参数去除 aSuperHitPer,aLuckyHitPer
9个文件已修改
56 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTJG.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -851,12 +851,10 @@
CDBPlayerRefresh_NormalHurtPer,         # 属性普通攻击加成:普通攻击附加的伤害百分比 207
CDBPlayerRefresh_FabaoHurt,             # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害 208
CDBPlayerRefresh_FabaoHurtPer,          # 属性法宝技能加成:法宝技能攻击附加的伤害百分比 209
CDBPlayerRefresh_SuperHitPer,          # 暴击伤害加成 210
CDBPlayerRefresh_SuperHitRateReduce,   # 暴击概率抗性
CDBPlayerRefresh_LuckyHitPer,          # 会心一击伤害加成
CDBPlayerRefresh_SuperHitRateReduce,   # 暴击概率抗性 210
CDBPlayerRefresh_LuckyHitReduce,        # 会心伤害减免固定值 
CDBPlayerRefresh_FinalHurtReducePer,   # 最终伤害减少百分比
) = range(146, 215)
) = range(146, 213)
TYPE_Price_Gold_Paper_Money = 5    # 金钱类型,(先用礼券,再用金子)
TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -2011,8 +2011,6 @@
    dDamChanceDef = hurtTypeResultDict[ChConfig.Def_HurtType_Parry][2] # 抵御, 大于0代表触发抵御效果
    isZhuxianHit, aZhuxianHurtPer, dZhuxianReducePer = hurtTypeResultDict[ChConfig.Def_HurtType_Zhuxian] # 诛仙一击
    isDeadlyHit = hurtTypeResultDict[ChConfig.Def_HurtType_DeadlyHit][0] # 致命一击
    aSuperHitPer = PlayerControl.GetSuperHitPer(atkObj) if isSuperHit else 0    # 暴击伤害加成万分率
    aLuckyHitPer = PlayerControl.GetLuckyHitPer(atkObj) if isLuckyHit else 0   # 会心一击伤害加成万分率
    if PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_OneDamage):
        return 1, hurtType
@@ -2040,12 +2038,6 @@
    atkSkillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer)
    
    atkSkillPer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer)
    aIceAtkSuperHit = 1 # 元素真伤倍值,暂时默认为1,之后扩展
    aIceAtkSuperHit += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddIceAtkPer)
    aIceAtkSuperHit += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddIceAtkPer)
    
    if isSuperHit:
        addASuperHit = PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_SuperHitValue)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -68,7 +68,7 @@
Def_BuffValue_Count = 3     # buff记录的value个数
#游戏对象属性--------------------------------------------
Def_Calc_AllAttrType_MAX = 132
Def_Calc_AllAttrType_MAX = 130
#基本属性BUFF计算,顺序与 ObjProperty_AttrByIndex 对应,同时也为buff效果ID同步通知策划
TYPE_Calc_AttrList = (
TYPE_Calc_Metal,                        # 金 1
@@ -211,8 +211,6 @@
TYPE_Calc_NormalHurtPer,                # 普通攻击加成 
TYPE_Calc_FabaoHurt,                    # 法宝技能增伤 
TYPE_Calc_FabaoHurtPer,                 # 法宝技能加成 
TYPE_Calc_SuperHitPer,                  # 暴击伤害万分率加成
TYPE_Calc_LuckyHitPer,                  # 会心一击伤害万分率加成 130
TYPE_Calc_FinalHurtReducePer,           # 最终伤害减少百分比
) = range(1, Def_Calc_AllAttrType_MAX)
@@ -3007,8 +3005,6 @@
# key的长度不能超过29个字节
Def_PlayerKey_SelectObjID = "selectID"   # 锁定模式选中,不用SetActionObj
Def_PlayerKey_SelectObjType = "selectType"   # 锁定模式选中
Def_PlayerKey_LuckyHitPer = "LuckyHitPer"   # 会心一击伤害万分率
Def_PlayerKey_SuperHitPer = "SuperHitPer" # 暴击伤害万分率
Def_PlayerKey_NormalHurt = "NormalHurt"   # 属性普通攻击增伤:普通攻击附加的固定值伤害
Def_PlayerKey_NormalHurtPer = "NormalHurtPer"    # 属性普通攻击加成:普通攻击附加的伤害百分比
Def_PlayerKey_FabaoHurt = "FabaoHurt"    # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害
@@ -4158,19 +4154,19 @@
    ShareDefine.Def_Effect_ProDefAbsorb:[[TYPE_Calc_ProDefAbsorb], False, TYPE_Linear],
    ShareDefine.Def_Effect_OnlyFinalHurt:[[TYPE_Calc_OnlyFinalHurt], False, TYPE_Linear],
    ShareDefine.Def_Effect_PVPAtkBackHP:[[TYPE_Calc_PVPAtkBackHP], False, TYPE_Linear],
    ShareDefine.Def_Effect_SuperHitPer:[[TYPE_Calc_SuperHitPer], False, TYPE_Linear],
    ShareDefine.Def_Effect_NormalHurt:[[TYPE_Calc_NormalHurt], False, TYPE_Linear],
    ShareDefine.Def_Effect_NormalHurtPer:[[TYPE_Calc_NormalHurtPer], False, TYPE_Linear],
    ShareDefine.Def_Effect_FabaoHurt:[[TYPE_Calc_FabaoHurt], False, TYPE_Linear],
    ShareDefine.Def_Effect_FabaoHurtPer:[[TYPE_Calc_FabaoHurtPer], False, TYPE_Linear],
    ShareDefine.Def_Effect_SuperHitRateReduce:[[TYPE_Calc_SuperHitRateReduce], False, TYPE_Linear], # 暴击概率抗性
    ShareDefine.Def_Effect_LuckyHitReduce:[[TYPE_Calc_LuckyHitReduce], False, TYPE_Linear],# 会心一击伤害固定减伤
    ShareDefine.Def_Effect_LuckyHitPer:[[TYPE_Calc_LuckyHitPer], False, TYPE_Linear], # 会心一击伤害百分比
    ShareDefine.Def_Effect_DamagePVE:[[TYPE_Calc_DamagePVE], False, TYPE_Linear],  # PVE固定伤害
    ShareDefine.Def_Effect_FinalHurtPer:[[TYPE_Calc_FinalHurtPer], False, TYPE_Linear],   # 最终伤害万分率
    ShareDefine.Def_Effect_FinalHurtReducePer:[[TYPE_Calc_FinalHurtReducePer], False, TYPE_Linear],   # 最终伤害减少万分
    #战斗非线性
    ShareDefine.Def_Effect_SuperHitPer:[[TYPE_Calc_SuperHit], False, TYPE_NoLinear],
    ShareDefine.Def_Effect_LuckyHitPer:[[TYPE_Calc_LuckyHit], False, TYPE_NoLinear], # 会心一击伤害百分比
    ShareDefine.Def_Effect_MaxHPPer:[[TYPE_Calc_AttrMaxHP], False, TYPE_NoLinear],
    ShareDefine.Def_Effect_DefPer:[[TYPE_Calc_AttrDEF], False, TYPE_NoLinear],
    ShareDefine.Def_Effect_HitRate:[[TYPE_Calc_AttrHit], False, TYPE_NoLinear],
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
@@ -485,7 +485,6 @@
    DamagePer = 0#attrDict.get(ShareDefine.Def_Effect_DamagePer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetDamagePerC())
    SuperHitRate = 0#attrDict.get(ShareDefine.Def_Effect_SuperHitRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuperHitRateC())
    SuperHit = attrDict.get(ShareDefine.Def_Effect_SuperHit, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuperHitC())
    SuperHitPer = attrDict.get(ShareDefine.Def_Effect_SuperHitPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuperHitPerC())
    DamReducePer = 0#attrDict.get(ShareDefine.Def_Effect_DamReducePer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetDamReducePerC())
    MaxHPPer = 0#attrDict.get(ShareDefine.Def_Effect_MaxHPPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetMaxHPPerC())
    DefPer = 0#attrDict.get(ShareDefine.Def_Effect_DefPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetDefPerC())
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -3541,12 +3541,10 @@
        SuperHitRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitRateReduce) # 暴击概率抗性
        SuperHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHit) # 暴击伤害固定值
        SuperHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitReduce) * fpParam.GetCftSuperHitReduce() # 暴击固定减伤
        SuperHitPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitPer) # 暴击伤害万分率加成
        LuckyHitRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitRate) # 会心一击
        LuckyHitRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitRateReduce) * fpParam.GetCftLuckyHitRateReduce() # 会心一击概率抗性
        LuckyHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHit) # 会心一击伤害固定值
        LuckyHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitReduce) # 会心一击伤害固定减伤
        LuckyHitPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitPer) # 会心一击伤害百分比
        SkillAtkRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SkillAtkRate) * fpParam.GetCftSkillAtkRate() # 技能攻击比例加成
        SkillAtkRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SkillAtkRateReduce) * fpParam.GetCftSkillAtkRateReduce() # 技能攻击比例减少
        DamagePVP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePVP) * fpParam.GetCftDamagePer() # PVP固定伤害
@@ -3585,6 +3583,7 @@
        NormalHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_NormalHurtPer) 
        FabaoHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FabaoHurt)
        FabaoHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FabaoHurtPer)
        Luck = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_Luck)
        ComboRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_ComboRate) # 连击几率
        ComboDamPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_ComboDamPer) # 连击伤害
@@ -6637,16 +6636,6 @@
#法宝技能加成:法宝技能攻击附加的伤害百分比
def GetFabaoHurtPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FabaoHurtPer)
def SetFabaoHurtPer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_FabaoHurtPer, value)
# 暴击万分率加成
def GetSuperHitPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitPer)
def SetSuperHitPer(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitPer, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SuperHitPer, value, False)
# 会心一击万分率加成
def GetLuckyHitPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_LuckyHitPer)
def SetLuckyHitPer(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_LuckyHitPer, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_LuckyHitPer, value, False)
## 计算功能背包物品属性 
#  @param curPlayer 当前玩家
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTJG.py
@@ -310,7 +310,6 @@
    aMaxAtk = curPlayer.GetMaxAtk()        # 攻击方最大攻击
    aSuperHitRate = curPlayer.GetSuperHitRate() # 暴击率
    aSuperHit = curPlayer.GetSuperHit() # 暴击伤害固定值
    aSuperHitPer = PlayerControl.GetSuperHitPer(curPlayer) # 暴击伤害固定值
    aIceAtk = curPlayer.GetIceAtk()        # 真实伤害
    aDamagePVE = PlayerControl.GetDamagePVE(curPlayer)     # PVE固定伤害
    aSkillAtkRate = curPlayer.GetSkillAtkRate()    # 技能攻击力加成
@@ -320,7 +319,6 @@
    atkSpeed = PlayerControl.GetAtkSpeed(curPlayer) # 攻击速度
    aIgnoreDefRate = curPlayer.GetIgnoreDefRate()  # 无视防御比率
    aLuckyHit = curPlayer.GetLuckyHitVal()  # 会心一击固定值
    aLuckyHitPer = PlayerControl.GetLuckyHitPer(curPlayer)  # 会心一击万分率
    aLuckyHitRate = curPlayer.GetLuckyHitRate() # 会心一击概率
    aBleedDamage = PlayerControl.GetBleedDamage(curPlayer) # 流血伤害 万分率
    aFinalHurt = PlayerControl.GetFinalHurt(curPlayer)     # 最终固定伤害
@@ -364,11 +362,11 @@
             
    if GameWorld.GetGameWorld().GetDebugLevel():
        GameWorld.DebugLog("""CalcTJGExp--%s-%s-%s-%s-reExp:%s, attackEff:%s, aMinAtk:%s, aMaxAtk:%s, aSuperHitRate:%s, aSuperHit:%s,
        aSuperHitPer:%s, aLuckyHitPer:%s, aNPCHurtAddPer:%s, aFinalHurtPer:%s,
        aNPCHurtAddPer:%s, aFinalHurtPer:%s,
        aIceAtk:%s, aDamagePVE:%s, aSkillAtkRate:%s, petMinAtk:%s, petMaxAtk:%s, petDamPer:%s, atkSpeed:%s,
        aIgnoreDefRate:%s, aLuckyHit:%s, aLuckyHitRate:%s, aBleedDamage:%s, aFinalHurt:%s, npcExp:%s, npcMaxHP:%s, npcCommendFightPower:%s,
        petSkillLV:%s, petSkillPer:%s, skill:%s, petSkill:%s"""%(curPlayer.GetID(), curPlayer.GetLV(), times, npcData.GetNPCID(),
            reExp, attackEff, aMinAtk, aMaxAtk, aSuperHitRate, aSuperHit, aSuperHitPer, aLuckyHitPer, aNPCHurtAddPer, aFinalHurtPer,
            reExp, attackEff, aMinAtk, aMaxAtk, aSuperHitRate, aSuperHit, aNPCHurtAddPer, aFinalHurtPer,
            aIceAtk, aDamagePVE, aSkillAtkRate, petMinAtk, petMaxAtk, petDamPer,
            atkSpeed, aIgnoreDefRate, aLuckyHit, aLuckyHitRate, aBleedDamage, aFinalHurt, npcExp, npcMaxHP, npcCommendFightPower, petSkillLV,
            petSkillPer, eval("[" +", ".join(["skill%s"%i for i in range(1, 11)]) + "]"), 
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -851,12 +851,10 @@
CDBPlayerRefresh_NormalHurtPer,         # 属性普通攻击加成:普通攻击附加的伤害百分比 207
CDBPlayerRefresh_FabaoHurt,             # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害 208
CDBPlayerRefresh_FabaoHurtPer,          # 属性法宝技能加成:法宝技能攻击附加的伤害百分比 209
CDBPlayerRefresh_SuperHitPer,          # 暴击伤害加成 210
CDBPlayerRefresh_SuperHitRateReduce,   # 暴击概率抗性
CDBPlayerRefresh_LuckyHitPer,          # 会心一击伤害加成
CDBPlayerRefresh_SuperHitRateReduce,   # 暴击概率抗性 210
CDBPlayerRefresh_LuckyHitReduce,        # 会心伤害减免固定值 
CDBPlayerRefresh_FinalHurtReducePer,   # 最终伤害减少百分比
) = range(146, 215)
) = range(146, 213)
TYPE_Price_Gold_Paper_Money = 5    # 金钱类型,(先用礼券,再用金子)
TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
@@ -168,8 +168,6 @@
   [lambda curObj:PlayerControl.GetNormalHurtPer(curObj), lambda curObj, value:PlayerControl.SetNormalHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_NormalHurtPer, 1, 0],  # 属性普通攻击加成
   [lambda curObj:PlayerControl.GetFabaoHurt(curObj), lambda curObj, value:PlayerControl.SetFabaoHurt(curObj, value), ShareDefine.CDBPlayerRefresh_FabaoHurt, 1, 0],  # 属性法宝技能增伤
   [lambda curObj:PlayerControl.GetFabaoHurtPer(curObj), lambda curObj, value:PlayerControl.SetFabaoHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_FabaoHurtPer, 1, 0],  # 属性法宝技能加成
   [lambda curObj:PlayerControl.GetSuperHitPer(curObj), lambda curObj, value:PlayerControl.SetSuperHitPer(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitPer, 1, 0],   # 暴击伤害加成
   [lambda curObj:PlayerControl.GetLuckyHitPer(curObj), lambda curObj, value:PlayerControl.SetLuckyHitPer(curObj, value), ShareDefine.CDBPlayerRefresh_LuckyHitPer, 1, 0],   # 会心一击伤害加成
   [lambda curObj:PlayerControl.GetFinalHurtReducePer(curObj), lambda curObj, value:PlayerControl.SetFinalHurtReducePer(curObj, value), ShareDefine.CDBPlayerRefresh_FinalHurtReducePer, 1, 0],      # 最终伤害减少百分比
]
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -305,7 +305,7 @@
             4021:ChConfig.TriggerType_AddSingleSkillPer,   # 持续性攻击的单次攻击逐次增加技能伤害18,
             4022:ChConfig.TriggerType_SkillOverNoAttack,   # 技能释放后 与TriggerType_AttackOver相反19,
             4023:ChConfig.TriggerType_BeAttackOver,   # 被攻击后触发 20
             4024:ChConfig.TriggerType_AddIceAtkPer,    # 攻击附加真实伤害百分比 21
             #4024:ChConfig.TriggerType_AddIceAtkPer,    # 攻击附加真实伤害百分比 21
             4025:ChConfig.TriggerType_AddIceAtk,    # 攻击附加真实伤害固定值 22
             4026:ChConfig.TriggerType_DebuffOff,    # 抵消一次debuff 23
             4027:ChConfig.TriggerType_AttackKill,   # նɱ 24
@@ -392,7 +392,7 @@
             4512:ChConfig.TriggerType_ReduceHurtHPPer, # 百分比减少攻击计算后伤害 
             4513:ChConfig.TriggerType_AttackAddFinalValue,   #攻击增加输出伤害11
             4514:ChConfig.TriggerType_Buff_BeAttackSubLayer,  # BUFF类:被攻击减buff层,0消失
             4515:ChConfig.TriggerType_AddIceAtkPer,    # BUFF类:攻击附加真实伤害百分比
             #4515:ChConfig.TriggerType_AddIceAtkPer,    # BUFF类:攻击附加真实伤害百分比
             4516:ChConfig.TriggerType_ChangeHurtToHP,    # BUFF类:buff中把受到伤害的xx%转化为生命值
             4517:ChConfig.TriggerType_DebuffOff,   # BUFF类: 抵消debuff
             4518:ChConfig.TriggerType_ForbidenCure, # BUFF类: 禁止治疗 53