cehua_ZWJ
2019-01-23 9b4777443370dcfea5455637ec8202ec16daec77
ZoneServerGroup/map1_8G/MapServer/MapServerData/MapServerConfig/NPCLogic/NPCAttrStrengthen.txt
@@ -1,94 +1,122 @@
# NPC属性增强公式配置
# 可用参数:
# 参考玩家属性参数
#   ReMaxHP               最大生命值
#   ReAtk               攻击(最小、最大攻击)
#   ReDef               防御
#   ReHit               命中
#   ReMiss               闪避
#   ReAtkSpeed            攻击速度
#   ReSkillAtkRate         技能伤害比例
#   ReDamagePer            增加伤害
#   ReDamReduce            减少伤害
#   ReIgnoreDefRate         无视防御比例
#   ReLuckyHitRate         会心一击率
#   ReLuckyHit            会心一击伤害
#   ReBleedDamage         流血伤害增加
#   ReIceAtk            真实伤害
#   ReIceDef            真实抵御
#   RePetAtk            灵宠攻击
#   RePetSkillAtkRate      灵宠技能
#   RePetDamPer            灵宠伤害增加
#   ReFinalHurt            固定伤害增加
#   ReFinalHurtReduce      固定伤害减少
#   RePotionReply         血瓶恢复量
#   RePotionCD            ѪƿCD
#
# 固定参数
#   HitTime               怪物受击次数
#   DefCoefficient         人物防御系数
#   AtkCoefficient         人物攻击系数
#   AdjustCoefficient      调整系数比例
(
[
# 过程参数公式
{
   # 怪物攻击回复调整值
   "AtkReplyCoefficient":"(RePotionReply/(RePotionCD*1.0)+(0 if MaxEnduranceTime==0 else ReMaxHP/(MaxEnduranceTime*1.0)))/(MonterNum*1.0)*AtkInterval/(1+SkillAtkRate/10000.0)/(1-ReDamReduce/10000.0)*AdjustCoefficient/10000.0",
   # 怪物固定伤害 暂时没用
   "MonterHurt":"100",
   # 玩家每秒掉血量
   "LostHPPerSecond":"0 if MaxEnduranceTime==0 else ReMaxHP/(MaxEnduranceTime*1.0)",
},
# 等级成长属性公式
[
   ["Hit","0.95*ReMiss/(1-HitRate/10000.0)-ReMiss"],
   ["Miss","ReHit*MissRate/10000.0/(0.95-MissRate/10000.0)"],
   ["IceAtk","IceAtkCoefficient/10000.0*ReIceAtk"],
   ["IceDef","IceDefCoefficient/10000.0*ReIceDef"],
   ["MinAtk","DefCoefficient/10000.0*ReDef+AtkReplyCoefficient"],
   ["MaxAtk","DefCoefficient/10000.0*ReDef+AtkReplyCoefficient"],
   ["Def","ReAtk*AtkCoefficient/10000.0"],
   ["FireAtk","(RePotionReply/(RePotionCD*1.0)+LostHPPerSecond)/(MonterNum*1.0)*(1-AdjustCoefficient/10000.0)*AtkInterval/(1+SkillAtkRate/10000.0)+ReFinalHurtReduce/(MonterNum*1.0)*AtkInterval"],
   ["MaxHP","((ReAtk-Def*(1-ReIgnoreDefRate/10000.0))*ReSkillAtkRate/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0))+max((RePetAtk-Def)*(1+RePetDamPer/10000.0)*RePetSkillAtkRate/10000.0,0)+max((ReIceAtk-IceDef)*ReSkillAtkRate/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0)),0)+ReFinalHurt)*HitTime/100.0*math.sqrt((ReAtkSpeed+10000)/10000.0)+(ReAtk-Def*(1-ReIgnoreDefRate/10000.0))*ReBleedDamage/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0))*HitTime/100.0"],
],
# 地图人数对应属性额外成长系数 {mapID:{"属性名":{组队进入人数:系数, ...}, ...}, ...}
# key支持两个格式:1-直接配,2-范围用小括号(min,max)
{
   # 娲皇遗迹
   51010:{"MaxHP":{1:1, 2:1.8, 3:2.46, 4:3}, "Def":{4:1, 3:1, 2:1, 1:1}},
   # 混乱妖域
   31180:{"MaxHP":{1:1, 2:1.3, 3:1.5, 4:1.6}, "Def":{4:1, 3:1, 2:1, 1:1}},
   #守卫人皇
   31170:{"MaxHP":{1:1, 2:1.9, 3:2.7, 4:3.4, 5:4, 6:4.5, 7:4.9,(8,100):5.5}, "Def":{(1,10):1, (11,100):1}},
   # 仙盟boss
   31210:{"MaxHP":{1:1, 2:1.8, 3:2.4, 4:2.8, 5:3, 6:3.3, 7:3.5,(8,100):4}, "Def":{(1,10):1, (11,100):1}},
   #宗门试炼
   60010:{"MaxHP":{1:1, 2:1.8, 3:2.25, 4:2.4}, "Def":{4:1, 3:1, 2:1, 1:1}},
   #大境界渡劫
   31110:{"MaxHP":{1:1, 2:1.3, 3:1.5, 4:1.6}, "Def":{4:1, 3:1, 2:1, 1:1}},
},
# 动态等级的地图ID列表,默认已刷新出来的NPC等级不会再变更,下次刷出来的怪物等级变更 [地图ID, ...]
[31170],
# 动态人数系数的地图ID {地图ID:是否马上刷新属性, ...}
{31170:1, 51010:1, 31210:1},
]
# NPC属性增强公式配置
# 可用参数:
# 参考玩家属性参数
#   ReMaxHP               最大生命值
#   ReAtk               攻击(最小、最大攻击)
#   ReDef               防御
#   ReHit               命中
#   ReMiss               闪避
#   ReAtkSpeed            攻击速度
#   ReSkillAtkRate         技能伤害比例
#   ReDamagePer            增加伤害
#   ReDamReduce            减少伤害
#   ReIgnoreDefRate         无视防御比例
#   ReLuckyHitRate         会心一击率
#   ReLuckyHit            会心一击伤害
#   ReBleedDamage         流血伤害增加
#   ReIceAtk            真实伤害
#   ReIceDef            真实抵御
#   RePetAtk            灵宠攻击
#   RePetSkillAtkRate      灵宠技能
#   RePetDamPer            灵宠伤害增加
#   ReFinalHurt            固定伤害增加
#   ReFinalHurtReduce      固定伤害减少
#   RePotionReply         血瓶恢复量
#   RePotionCD            ѪƿCD
#
# 固定参数
#   HitTime               怪物受击次数
#   DefCoefficient         人物防御系数
#   AtkCoefficient         人物攻击系数
#   AdjustCoefficient      调整系数比例
(
[
# 过程参数公式
{
   # 怪物攻击回复调整值
   "AtkReplyCoefficient":"(RePotionReply/(RePotionCD*1.0)+(0 if MaxEnduranceTime==0 else ReMaxHP/(MaxEnduranceTime*1.0)))/(MonterNum*1.0)*AtkInterval/(1+SkillAtkRate/10000.0)/(1-ReDamReduce/10000.0)*AdjustCoefficient/10000.0",
   # 怪物固定伤害 暂时没用
   "MonterHurt":"100",
   # 玩家每秒掉血量
   "LostHPPerSecond":"0 if MaxEnduranceTime==0 else ReMaxHP/(MaxEnduranceTime*1.0)",
},
# 等级成长属性公式
{0:
[
   ["Hit","0.95*ReMiss/(1-HitRate/10000.0)-ReMiss"],
   ["Miss","ReHit*MissRate/10000.0/(0.95-MissRate/10000.0)"],
   ["IceAtk","IceAtkCoefficient/10000.0*ReIceAtk"],
   ["IceDef","IceDefCoefficient/10000.0*ReIceDef"],
   ["MinAtk","DefCoefficient/10000.0*ReDef+AtkReplyCoefficient"],
   ["MaxAtk","DefCoefficient/10000.0*ReDef+AtkReplyCoefficient"],
   ["Def","ReAtk*AtkCoefficient/10000.0"],
   ["FireAtk","(RePotionReply/(RePotionCD*1.0)+LostHPPerSecond)/(MonterNum*1.0)*(1-AdjustCoefficient/10000.0)*AtkInterval/(1+SkillAtkRate/10000.0)+ReFinalHurtReduce/(MonterNum*1.0)*AtkInterval"],
   ["MaxHP","((ReAtk-Def*(1-ReIgnoreDefRate/10000.0))*ReSkillAtkRate/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0))+max((RePetAtk-Def)*(1+RePetDamPer/10000.0)*RePetSkillAtkRate/10000.0,0)+max((ReIceAtk-IceDef)*ReSkillAtkRate/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0)),0)+ReFinalHurt)*HitTime/100.0*math.sqrt((ReAtkSpeed+10000)/10000.0)+(ReAtk-Def*(1-ReIgnoreDefRate/10000.0))*ReBleedDamage/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0))*HitTime/100.0"],
],
1:
[
   ["Hit","0.95*ReMiss/(1-HitRate/10000.0)-ReMiss"],
   ["Miss","ReHit*MissRate/10000.0/(0.95-MissRate/10000.0)"],
   ["IceAtk","IceAtkCoefficient/10000.0*ReIceAtk"],
   ["IceDef","IceDefCoefficient/10000.0*ReIceDef"],
   ["Def","ReAtk*AtkCoefficient/10000.0"],
   ["MinAtk","(((ReAtk-Def*(1-ReIgnoreDefRate/10000.0))*ReSkillAtkRate/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0))+max((RePetAtk-Def)*(1+RePetDamPer/10000.0)*RePetSkillAtkRate/10000.0,0)+max((ReIceAtk-IceDef)*ReSkillAtkRate/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0)),0)+ReFinalHurt)*HitTime/100.0*math.sqrt((ReAtkSpeed+10000)/10000.0)+(ReAtk-Def*(1-ReIgnoreDefRate/10000.0))*ReBleedDamage/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0))*HitTime/100.0)*max((1-max(strengthenLV-350,0)/10*0.03),0.75)/60.0"],
   ["MaxAtk","(((ReAtk-Def*(1-ReIgnoreDefRate/10000.0))*ReSkillAtkRate/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0))+max((RePetAtk-Def)*(1+RePetDamPer/10000.0)*RePetSkillAtkRate/10000.0,0)+max((ReIceAtk-IceDef)*ReSkillAtkRate/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0)),0)+ReFinalHurt)*HitTime/100.0*math.sqrt((ReAtkSpeed+10000)/10000.0)+(ReAtk-Def*(1-ReIgnoreDefRate/10000.0))*ReBleedDamage/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0))*HitTime/100.0)*max((1-max(strengthenLV-350,0)/10*0.03),0.75)/60.0"],
   ["FireAtk","0"],
   ["MaxHP","(((ReAtk-Def*(1-ReIgnoreDefRate/10000.0))*ReSkillAtkRate/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0))+max((RePetAtk-Def)*(1+RePetDamPer/10000.0)*RePetSkillAtkRate/10000.0,0)+max((ReIceAtk-IceDef)*ReSkillAtkRate/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0)),0)+ReFinalHurt)*HitTime/100.0*math.sqrt((ReAtkSpeed+10000)/10000.0)+(ReAtk-Def*(1-ReIgnoreDefRate/10000.0))*ReBleedDamage/10000.0*(1+ReDamagePer/10000.0)*(1-ReLuckyHitRate/10000.0+ReLuckyHitRate/10000.0*(1.2+ReLuckyHit/10000.0))*HitTime/100.0)*max((1-max(strengthenLV-350,0)/10*0.03),0.75)"],
],
},
# 地图人数对应属性额外成长系数 {mapID:{"属性名":{组队进入人数:系数, ...}, ...}, ...}  或 {mapID:{"属性名":"人数成长系数公式", ...}, ...}
# key支持两个格式:1-直接配,2-范围用小括号(min,max); 公式人数参数名: strengthenPlayerCnt
{
   # 娲皇遗迹
   51010:{"MaxHP":{1:1, 2:1.4, 3:1.8, 4:2}, "Def":{4:1, 3:1, 2:1, 1:1}},
   # 混乱妖域
   31180:{"MaxHP":{1:1, 2:1.3, 3:1.5, 4:1.6}, "Def":{4:1, 3:1, 2:1, 1:1}},
   #守卫人皇
   31170:{"MaxHP":{1:1, 2:1.9, 3:2.7, 4:3.4, 5:4, 6:4.5, 7:4.9,(8,100):5.5}, "Def":{(1,10):1, (11,100):1}},
   # 仙盟boss
   31210:{"MaxHP":{1:1, 2:1.8, 3:2.4, 4:2.8, 5:3, 6:3.3, 7:3.5,(8,100):4}, "Def":{(1,10):1, (11,100):1}},
   #宗门试炼
   60010:{"MaxHP":{1:1, 2:1.4, 3:1.8, 4:2}, "Def":{4:1, 3:1, 2:1, 1:1}},
   #大境界渡劫
   31110:{"MaxHP":{1:1, 2:1.2, 3:1.2, 4:1.2}, "Def":{4:1, 3:1, 2:1, 1:1}},
},
# NPC特殊成长人数对应属性额外成长系数 {npcID:{"属性名":{人数:系数, ...}, ...}, ...}, 优先级大于地图人数系数 或 {npcID:{"属性名":"人数成长系数公式", ...}, ...}
# key支持两个格式:1-直接配,2-范围用小括号(min,max); 公式 人数参数名: strengthenPlayerCnt,   成长等级:strengthenLV 等级由成长表配置的类型决定
{
   #骑宠boss
   50103001:{"MaxHP":"(1+(min(max(strengthenPlayerCnt-10,0),50)*0.09)+min(max(strengthenPlayerCnt-60,0),40)*0.07+min(max(strengthenPlayerCnt-100,0),40)*0.04+min(max(strengthenPlayerCnt-110,0),99999)*0.01)*min(max(strengthenLV-200,0.6),1)"},
   50103002:{"MaxHP":"(1+(min(max(strengthenPlayerCnt-10,0),50)*0.09)+min(max(strengthenPlayerCnt-60,0),40)*0.07+min(max(strengthenPlayerCnt-100,0),40)*0.04+min(max(strengthenPlayerCnt-110,0),99999)*0.01)*min(max(strengthenLV-200,0.6),1)"},
   50103003:{"MaxHP":"(1+(min(max(strengthenPlayerCnt-10,0),50)*0.09)+min(max(strengthenPlayerCnt-60,0),40)*0.07+min(max(strengthenPlayerCnt-100,0),40)*0.04+min(max(strengthenPlayerCnt-110,0),99999)*0.01)*min(max(strengthenLV-200,0.6),1)"},
   50103004:{"MaxHP":"(1+(min(max(strengthenPlayerCnt-10,0),50)*0.09)+min(max(strengthenPlayerCnt-60,0),40)*0.07+min(max(strengthenPlayerCnt-100,0),40)*0.04+min(max(strengthenPlayerCnt-110,0),99999)*0.01)*min(max(strengthenLV-200,0.6),1)"},
   50103005:{"MaxHP":"(1+(min(max(strengthenPlayerCnt-10,0),50)*0.09)+min(max(strengthenPlayerCnt-60,0),40)*0.07+min(max(strengthenPlayerCnt-100,0),40)*0.04+min(max(strengthenPlayerCnt-110,0),99999)*0.01)*min(max(strengthenLV-200,0.6),1)"},
   50103006:{"MaxHP":"(1+(min(max(strengthenPlayerCnt-10,0),50)*0.09)+min(max(strengthenPlayerCnt-60,0),40)*0.07+min(max(strengthenPlayerCnt-100,0),40)*0.04+min(max(strengthenPlayerCnt-110,0),99999)*0.01)*min(max(strengthenLV-200,0.6),1)"},
   50103007:{"MaxHP":"(1+(min(max(strengthenPlayerCnt-10,0),50)*0.09)+min(max(strengthenPlayerCnt-60,0),40)*0.07+min(max(strengthenPlayerCnt-100,0),40)*0.04+min(max(strengthenPlayerCnt-110,0),99999)*0.01)*min(max(strengthenLV-200,0.6),1)"},
},
# 动态等级的地图ID列表,默认已刷新出来的NPC等级不会再变更,下次刷出来的怪物等级变更 [地图ID, ...]
[31160,31170,31080],
# 动态人数系数的地图ID {地图ID:是否马上刷新属性, ...}
{31170:1, 51010:1, 31210:1},
]
)