6516 【后端】【2.0】战斗公式增加系数
去除属性 暴击伤害加成 和 会心伤害加成; 保留属性条目
伤害公式参数去除 aSuperHitPer, aLuckyHitPer, aIceAtkSuperHit
装备评分公式参数去除 SuperHitPer
战斗力公式参数去除 SuperHitPer, LuckyHitPer;添加参数Luck 慧根
脱机挂经验公式参数去除 aSuperHitPer,aLuckyHitPer
| | |
| | | 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 # 战盟贡献度(活跃度转换得来)
|
| | |
| | | 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
|
| | |
| | | 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)
|
| | |
| | | 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
|
| | |
| | | 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)
|
| | |
|
| | |
| | | # 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" # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害
|
| | |
| | | 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],
|
| | |
| | | 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())
|
| | |
| | | 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固定伤害
|
| | |
| | | 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) # 连击伤害
|
| | |
| | | #法宝技能加成:法宝技能攻击附加的伤害百分比
|
| | | 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 当前玩家
|
| | |
| | | aMaxAtk = curPlayer.GetMaxAtk() # 攻击方最大攻击
|
| | | aSuperHitRate = curPlayer.GetSuperHitRate() # 暴击率
|
| | | aSuperHit = curPlayer.GetSuperHit() # 暴击伤害固定值
|
| | | aSuperHitPer = PlayerControl.GetSuperHitPer(curPlayer) # 暴击伤害固定值
|
| | | aIceAtk = curPlayer.GetIceAtk() # 真实伤害
|
| | | aDamagePVE = PlayerControl.GetDamagePVE(curPlayer) # PVE固定伤害
|
| | | aSkillAtkRate = curPlayer.GetSkillAtkRate() # 技能攻击力加成
|
| | |
| | | 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) # 最终固定伤害
|
| | |
| | |
|
| | | 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)]) + "]"),
|
| | |
| | | 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 # 战盟贡献度(活跃度转换得来)
|
| | |
| | | [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], # 最终伤害减少百分比
|
| | | ]
|
| | |
|
| | |
| | | 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
|
| | |
| | | 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
|