New file |
| | |
| | | #计算玩家本次攻击伤害
|
| | | #计算类型: 1.物理攻击; 2.魔法攻击
|
| | | #对象标识: 玩家(P), 宠物(Pet), NPC(E); 除玩家及宠物外, 其他暂时都算NPC
|
| | | #公式key格式: |
| | | # 1. 对象标识+V+对象标识_计算类型, 如 "PVP_1" 代表玩家对玩家物理攻击
|
| | | # 2. 对象标识+V+对象标识_计算类型_地图ID, 如 "PVE_1_20000" 代表地图ID为20000的玩家对NPC物理攻击
|
| | | # 3. 对象标识+V+对象标识_计算类型_NPC压制等级组, 如 "EVP_1_70" 代表NPC压制等级组为70的对玩家的物理攻击
|
| | | #
|
| | | # 特殊key
|
| | | # SuppressValueLV_是否boss NPC攻击玩家时的 等级最终压制值(suppressValueLV), 可作为参数用于计算伤害
|
| | | # SuppressValueFP_是否boss NPC攻击玩家时的 战力最终压制值(suppressValueFP), 可作为参数用于计算伤害
|
| | | #
|
| | | #公式参数: 默认值如果未特殊说明则均默认为0
|
| | | #
|
| | | # rand 0~1间的随机小数
|
| | | # atkSkillPer 技能表配置技能伤害百分比, 程序已除10000, 故这里代表的是具体倍值, 普攻时默认倍值为1
|
| | | # atkSkillValue 技能表配置技能附加伤害
|
| | | # suppressLV 压制等级差, 当攻击方为NPC且防守方为玩家时有值, max(0, NPC等级 - 玩家等级), 默认0
|
| | | # suppressReMaxHP NPC压制等级生命值, 当攻击方为NPC且防守方为玩家时有值, 压制等级差大于0时有值, 等级表中NPC等级对应的数据
|
| | | # suppressFightPower 压制战力差, 当攻击方为NPC且防守方为玩家时有值, max(0, NPC压制战力 - 玩家战力), 默认0
|
| | | # suppressNPCFightPower NPC压制战力, 当攻击方为NPC且防守方为玩家时有值, NPC表配置
|
| | | # suppressValueLV 等级最终压制值, 由公式 SuppressValueLV_是否boss 计算得出,无压制默认值为0
|
| | | # suppressValueFP 战力最终压制值, 由公式 SuppressValueFP_是否boss 计算得出,无压制默认值为0
|
| | | # suppressRealm 境界压制差, 可为负数 PVP 攻击方境界所属组 - 防守方境界所属组 PVE 攻击方境界等级 - 防守方境界等级
|
| | | # SuppressValueRealmRate 境界最终压制伤害增减比例, 由公式 SuppressValueRealmAdd (高境界打低境界伤害增加)及 SuppressValueRealmDec (低境界打高境界伤害减少)计算得出, 默认10000,PVP PVE都有效,宠物无效
|
| | | # suppressRealmHurtPer 境界压制加成百分比,存在负数, 配表获取
|
| | | # isLuckyHit 是否会心一击 0否1是
|
| | | # isSuperHit 是否暴击 0否1是
|
| | | # wReFightPower 世界等级对应等级表参考战力 固定值
|
| | | #
|
| | | # 攻击方:
|
| | | # aLV 等级 固定值
|
| | | # aLuckyHit 会心一击伤害加成 万分率, 默认0, 会心一击时有值
|
| | | # aSuperHit 暴击伤害 固定值, 默认0, 暴击时有值
|
| | | # aMinAtk 最小攻击 固定值
|
| | | # aMaxAtk 最大攻击 固定值
|
| | | # aIceAtk 真实伤害 固定值
|
| | | # aFightPower 战斗力 固定值
|
| | | # aIgnoreDefRate 无视防御比率 万分率
|
| | | # aSkillAtkRate 技能伤害加成 万分率
|
| | | # aDamagePer 伤害加成 万分率
|
| | | # aDamagePerPVP PVP伤害加成 万分率
|
| | | # aFinalHurt 最终伤害加成 固定值
|
| | | # aIceAtkSuperHit 真实伤害暴击倍值 倍值, 默认1
|
| | | # aFinalHurtPer 最终伤害百分比 万分率, *** 可能为负值, 使用时请注意 ***
|
| | | # aOnlyFinalHurt 附加伤害 固定值
|
| | | # aReFightPower 等级表参考战力 固定值
|
| | | # aNPCHurtAddPer pve附加伤害 百分比
|
| | | # 防守方:
|
| | | # dMinAtk 最低攻击
|
| | | # dMaxAtk 最高攻击
|
| | | # dLV 等级 固定值
|
| | | # dLuckyHitReduce 会心一击伤害减少 万分率, 默认0, 会心一击时有值
|
| | | # dSuperHitReduce 暴击伤害减少 万分率, 默认0, 暴击时有值
|
| | | # dDamChanceDef 抵御伤害比例 万分率, 默认0, 只在格挡成功才有值, 格挡成功率默认20%
|
| | | # dDef 防御值 固定值
|
| | | # dIceDef 真实伤害防御 固定值
|
| | | # dFightPower 战斗力 固定值
|
| | | # dIgnoreDefRateReduce 无视防御比率抗性 万分率
|
| | | # dSkillAtkRateReduce 技能伤害减少 万分率
|
| | | # dDamReduce 伤害减少 万分率
|
| | | # dDamagePerPVPReduce PVP伤害减少 万分率
|
| | | # dFinalHurtReduce 最终伤害减少 固定值
|
| | | # dDamChanceDef 抵御伤害比例 万分率
|
| | | # dBeHurtPer 被击受伤增加
|
| | | # dHP 当前生命
|
| | | # dMaxHP 防守方生命上限
|
| | | # PVPSuppressValueRealm PVP境界压制 境界最终压制伤害增减比例, 由公式 PVPSuppressValueRealm (高境界打低境界伤害增加)及 SuppressValueRealmDec计算得出, 默认10000 PVE有效,宠物无效 大境界压制
|
| | | # PVESuppressValueRealm PVE境界压制 境界最终压制伤害增减比例, 由公式 PVESuppressValueRealm (高境界打低境界伤害增加)及 SuppressValueRealmDec计算得出, 默认10000 PVE有效,宠物无效 小境界压制
|
| | | # EVPSuppressValueRealm EVP境界压制 境界最终压制伤害增减比例, 由公式 EVPSuppressValueRealm (高境界打低境界伤害增加)及 SuppressValueRealmDec计算得出, 默认10000 PVE有效,宠物无效 小境界压制
|
| | | (
|
| | |
|
| | | {
|
| | | #压制使用 0_小怪,1_BOSS
|
| | | "SuppressValueLV_0":"(min(max(suppressLV-10,0),10)*0.02+min(max(suppressLV-20,0),10)*0.03+min(max(suppressLV-30,0),10)*0.05+min(max(suppressLV-40,0),10)*1+min(max(suppressLV-50,0),50)*0.1)",
|
| | | "SuppressValueLV_1":"(min(max(suppressLV-10,0),10)*0.01+min(max(suppressLV-15,0),5)*0.03+min(max(suppressLV-20,0),5)*0.05+min(max(suppressLV-25,0),5)*0.07+max(suppressLV-30,0)*0.1)",
|
| | | "SuppressValueFP_0":"min(max(suppressFightPower*1.0/suppressNPCFightPower-0,0),0.05)*5+min(max(suppressFightPower*1.0/suppressNPCFightPower-0.05,0),0.15)*8+min(max(suppressFightPower*1.0/suppressNPCFightPower-0.2,0),1)*10",
|
| | | "SuppressValueFP_1":"min(max(suppressFightPower*1.0/suppressNPCFightPower-0,0),0.05)*5+min(max(suppressFightPower*1.0/suppressNPCFightPower-0.05,0),0.15)*8+min(max(suppressFightPower*1.0/suppressNPCFightPower-0.2,0),1)*10",
|
| | | "PVPSuppressValueRealm":"min(max(5000, 10000+max(suppressRealm,-6)*1000),15000)",
|
| | | "PVESuppressValueRealm":"min(max(9000, 10000+max(suppressRealm,-6)*1000),11000)",
|
| | | "EVPSuppressValueRealm":"max(min(suppressRealmHurtPer,10000),-1000)+10000",
|
| | | |
| | | #常规公式-通用
|
| | | "PVP_1" :"int(SuppressValueRealmRate/10000.0*max((((max((aMaxAtk if isLuckyHit else (aMinAtk + (aMaxAtk - aMinAtk)*rand))- dDef*(1-max(aIgnoreDefRate - dIgnoreDefRateReduce,0)/10000.0),0))*(1+(aLuckyHit/10000.0 if isLuckyHit else 0))+ (aSuperHit*max(1-dSuperHitReduce/10000.0,0) if isSuperHit else 0)+ max(aIceAtkSuperHit*aIceAtk - dIceDef, 0))*(atkSkillPer+max(aSkillAtkRate-dSkillAtkRateReduce,0)/10000.0)*(1+(aDamagePer+aDamagePerPVP)/10000.0)*(1-min(dDamReduce,8000)/10000.0)*(1-min(dDamagePerPVPReduce,8000)/10000.0)*(1-min(dDamChanceDef,8000)/10000.0)+max(aFinalHurt+aOnlyFinalHurt-dFinalHurtReduce, 0)+atkSkillValue)*(1+dBeHurtPer/10000.0),(aMinAtk+aMaxAtk)/2*0.05 + (aMinAtk+aMaxAtk)/2*0.1*rand))",
|
| | | "PVE_1" :"int(max((((max((aMaxAtk if isLuckyHit else (aMinAtk + (aMaxAtk - aMinAtk)*rand))-dDef*max(1-aIgnoreDefRate/10000.0,0),1))*(1+(aLuckyHit/10000.0 if isLuckyHit else 0))+(aSuperHit if isSuperHit else 0)+ max(aIceAtkSuperHit*aIceAtk - dIceDef, 0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1+aDamagePer/10000.0)+max(aFinalHurt+aOnlyFinalHurt-dFinalHurtReduce, 0)+atkSkillValue)*(1+dBeHurtPer/10000.0)*max(1+aFinalHurtPer/10000.0,1)+aNPCHurtAddPer/10000.0*(aMinAtk+aMaxAtk)/2.0,(aMinAtk+aMaxAtk)/2*0.05 + (aMinAtk+aMaxAtk)/2*0.1*rand))",
|
| | | "EVP_1" :"int(max(((max((aMinAtk+aMaxAtk)/2.0*(1+suppressValueLV)-dDef,0)+max(aIceAtk - dIceDef, 0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1-min(dDamReduce,8000)/10000.0)*(1-min(dDamChanceDef,8000)/10000.0)+max(aFinalHurt-dFinalHurtReduce, 0)+atkSkillValue)*(1+dBeHurtPer/10000.0)*(1+suppressValueFP),aMaxAtk*0.05+rand*aMaxAtk*0.05))",
|
| | | "EVE_1" :"max(aMaxAtk-dDef,1)",
|
| | | "PetVE_1":"max(((aMinAtk + aMaxAtk)/2.0-dDef)*(atkSkillPer+aSkillAtkRate/10000.0)*(1+aDamagePer/10000.0),(aMinAtk+aMaxAtk)/2.0*0.05 + (aMinAtk+aMaxAtk)/2.0*0.1*rand)",
|
| | | "PetVP_1":"max(max((aMinAtk+aMaxAtk)/2.0-dDef,0)*atkSkillPer*(1+aDamagePer/10000.0)*(1-min(dDamReduce,8000)/10000.0)*(1-min(dDamChanceDef,8000)/10000.0),(aMinAtk+aMaxAtk)/2*0.05 + (aMinAtk+aMaxAtk)/2*0.1*rand)",
|
| | |
|
| | | #世界小怪等级压制公式
|
| | | "EVP_1_2" :"max(((max((aMinAtk+aMaxAtk)/2.0*(1+suppressValueLV*min(max((aMinAtk+aMaxAtk)/2.0-dDef,0)+max(suppressLV-20,0),1))-dDef,0)+max(aIceAtk - dIceDef, 0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1-min(dDamReduce,8000)/10000.0)*(1-min(dDamChanceDef,8000)/10000.0)+max(min(suppressLV,1)*min(max((aMaxAtk+aMinAtk)/2.0-dDef,0),1)*aMaxAtk+aFinalHurt+suppressValueFP*dMaxHP-dFinalHurtReduce, 0)+min(suppressLV,1)*atkSkillValue*0.2+atkSkillValue*0.8)*(1+dBeHurtPer/10000.0),aMaxAtk*0.05+rand*aMaxAtk*0.05)",
|
| | | |
| | | #仙魔之争
|
| | | "EVP_1_31010":"int(aFightPower*0.34/8.0/2.8*atkSkillPer*min(1*((aFightPower/(dFightPower*1.0))*0.2+pow(aFightPower/(dFightPower*1.0),2)*0.3+pow(aFightPower/(dFightPower*1.0),3)*0.5),5))",
|
| | | "PetVE_1_31010":"max(((aMinAtk + aMaxAtk)/2.0-dDef),(aMinAtk+aMaxAtk)/2.0*0.05 + (aMinAtk+aMaxAtk)/2.0*0.1*rand)",
|
| | | "PetVP_1_31010":"max(((aMinAtk + aMaxAtk)/2.0-dDef),(aMinAtk+aMaxAtk)/2.0*0.05 + (aMinAtk+aMaxAtk)/2.0*0.1*rand)",
|
| | | |
| | | #火炬特殊伤害
|
| | | "EVP_1_4" :"int(max((1250-(dMinAtk+dMaxAtk)/2.0)*10,1)+max(((max((aMinAtk+aMaxAtk)/2.0*(1+suppressValueLV)-dDef,0)+max(aIceAtk - dIceDef, 0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1-min(dDamReduce,8000)/10000.0)*(1-min(dDamChanceDef,8000)/10000.0)+max(aFinalHurt-dFinalHurtReduce, 0)+atkSkillValue)*(1+dBeHurtPer/10000.0),aMaxAtk*0.05+rand*aMaxAtk*0.05))",
|
| | |
|
| | |
|
| | | #渡劫
|
| | | "PVE_1_31110" :"int(SuppressValueRealmRate/10000.0*max((((max((aMaxAtk if isLuckyHit else (aMinAtk + (aMaxAtk - aMinAtk)*rand))-dDef*max(1-aIgnoreDefRate/10000.0,0),1))*(1+(aLuckyHit/10000.0 if isLuckyHit else 0))+(aSuperHit if isSuperHit else 0)+ max(aIceAtkSuperHit*aIceAtk - dIceDef, 0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1+aDamagePer/10000.0)+max(aFinalHurt+aOnlyFinalHurt-dFinalHurtReduce, 0)+atkSkillValue)*(1+dBeHurtPer/10000.0)+aNPCHurtAddPer/10000.0*(aMinAtk+aMaxAtk)/2.0,(aMinAtk+aMaxAtk)/2*0.05 + (aMinAtk+aMaxAtk)/2*0.1*rand))",
|
| | | "EVP_1_31110" :"int(max(min(SuppressValueRealmRate/10000.0,1.1),0.9)*max(((max((aMinAtk+aMaxAtk)/2.0*(1+suppressValueLV)-dDef,0)+max(aIceAtk - dIceDef, 0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1-min(dDamReduce,8000)/10000.0)*(1-min(dDamChanceDef,8000)/10000.0)+max(aFinalHurt-dFinalHurtReduce, 0)+atkSkillValue)*(1+dBeHurtPer/10000.0)*(1+suppressValueFP),aMaxAtk*0.05+rand*aMaxAtk*0.05))",
|
| | |
|
| | | #符印塔特殊公式等级压制
|
| | | #_100 前2座塔,等级碾压
|
| | | "EVP_1_100" :"int(SuppressValueRealmRate/10000.0*max(((max((aMinAtk+aMaxAtk)/2.0-dDef,0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1-min(dDamReduce,8000)/10000.0)*(1-min(dDamChanceDef,8000)/10000.0)+max(aFinalHurt+min(suppressLV,1)*0.2*dMaxHP+suppressValueFP-dFinalHurtReduce, 0)+atkSkillValue)*(1+dBeHurtPer/10000.0),aMaxAtk*0.05+rand*aMaxAtk*0.05))",
|
| | | #_101 后10座塔,战力压制
|
| | | "EVP_1_101" :"int(SuppressValueRealmRate/10000.0*max(((max((aMinAtk+aMaxAtk)/2.0-dDef,0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1-min(dDamReduce,8000)/10000.0)*(1-min(dDamChanceDef,8000)/10000.0)+max(aFinalHurt+suppressValueFP-dFinalHurtReduce, 0)+atkSkillValue)*(1+dBeHurtPer/10000.0)+(suppressFightPower*1.0/suppressNPCFightPower*4*dMaxHP),aMaxAtk*0.05+rand*aMaxAtk*0.05))",
|
| | |
|
| | |
|
| | | #BOSS境界压制公式
|
| | | "PVE_1_3" :"int(SuppressValueRealmRate/10000.0*max((((max((aMaxAtk if isLuckyHit else (aMinAtk + (aMaxAtk - aMinAtk)*rand))-dDef*max(1-aIgnoreDefRate/10000.0,0),1))*(1+(aLuckyHit/10000.0 if isLuckyHit else 0))+(aSuperHit if isSuperHit else 0)+ max(aIceAtkSuperHit*aIceAtk - dIceDef, 0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1+aDamagePer/10000.0)+max(aFinalHurt+aOnlyFinalHurt-dFinalHurtReduce, 0)+atkSkillValue)*(1+dBeHurtPer/10000.0)+aNPCHurtAddPer/10000.0*(aMinAtk+aMaxAtk)/2.0,(aMinAtk+aMaxAtk)/2*0.05 + (aMinAtk+aMaxAtk)/2*0.1*rand))",
|
| | | "EVP_1_3" :"int(SuppressValueRealmRate/10000.0*max(((max((aMinAtk+aMaxAtk)/2.0*(1+suppressValueLV)-dDef,0)+max(aIceAtk - dIceDef, 0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1-min(dDamReduce,8000)/10000.0)*(1-min(dDamChanceDef,8000)/10000.0)+max(aFinalHurt-dFinalHurtReduce, 0)+atkSkillValue)*(1+dBeHurtPer/10000.0)*(1+suppressValueFP),aMaxAtk*0.05+rand*aMaxAtk*0.05))",
|
| | |
|
| | |
|
| | | #抢boss
|
| | | "PVE_1_5" :"int((wReFightPower/15.0+SuppressValueRealmRate/10000.0*max((((max((aMaxAtk if isLuckyHit else (aMinAtk + (aMaxAtk - aMinAtk)*rand))-dDef*max(1-aIgnoreDefRate/10000.0,0),1))*(1+(aLuckyHit/10000.0 if isLuckyHit else 0))+(aSuperHit if isSuperHit else 0)+ max(aIceAtkSuperHit*aIceAtk - dIceDef, 0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1+aDamagePer/10000.0)+max(aFinalHurt+aOnlyFinalHurt-dFinalHurtReduce, 0)+atkSkillValue)*(1+dBeHurtPer/10000.0)+aNPCHurtAddPer/10000.0*(aMinAtk+aMaxAtk)/2.0,(aMinAtk+aMaxAtk)/2*0.05 + (aMinAtk+aMaxAtk)/2*0.1*rand))*(1+aFinalHurtPer/10000.0))",
|
| | |
|
| | | }
|
| | |
|
| | | )
|