From 8a5822a3e2b2d1c536f01e0b6e006bf3d9727226 Mon Sep 17 00:00:00 2001
From: cehua_LC <tingame100@163.com>
Date: 星期二, 11 十二月 2018 19:45:06 +0800
Subject: [PATCH] Merge branch '1.3' of http://192.168.0.87:10010/r/snxx_server into 1.3
---
ZoneServerGroup/map1_8G/MapServer/MapServerData/MapServerConfig/PlayerAttack/CalcAttackValue.txt | 127 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 127 insertions(+), 0 deletions(-)
diff --git a/ZoneServerGroup/map1_8G/MapServer/MapServerData/MapServerConfig/PlayerAttack/CalcAttackValue.txt b/ZoneServerGroup/map1_8G/MapServer/MapServerData/MapServerConfig/PlayerAttack/CalcAttackValue.txt
new file mode 100644
index 0000000..c419f35
--- /dev/null
+++ b/ZoneServerGroup/map1_8G/MapServer/MapServerData/MapServerConfig/PlayerAttack/CalcAttackValue.txt
@@ -0,0 +1,127 @@
+#计算玩家本次攻击伤害
+#计算类型: 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*(1+int(min(suppressNPCFightPower/1000000.0,3))+int(min(suppressNPCFightPower/20000000.0,1)))*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))",
+
+ #助战机器人:参数: suppressNPCFightPower-助战玩家战力; fbFightPower-副本战力; fbBaseHurt-保底伤害
+ "HelpRobot_Atk" :"int(fbBaseHurt*suppressNPCFightPower*1.0/fbFightPower)",
+ "HelpRobot_Def" :"int(fbBaseHurt*fbFightPower/(suppressNPCFightPower if suppressNPCFightPower else fbFightPower))",
+}
+
+)
--
Gitblit v1.8.0