1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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)",  
 |  },  
 |    
 |  # µÈ¼¶³É³¤ÊôÐÔ¹«Ê½  
 |  {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},  
 |    
 |  ]  
 |    
 |  ) 
 |  
  |