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