Formula

CommonFun.calcBeingNpcAttrValue

formula.lua
1function CommonFun.calcBeingNpcAttrValue(attr, npcid, npclevel, srcUser)
2  local result = {}
3  if srcUser == nil then
4    return result
5  end
6  local Vit = srcUser:GetProperty("Vit")
7  local Str = srcUser:GetProperty("Str")
8  local Int = srcUser:GetProperty("Int")
9  local Dex = srcUser:GetProperty("Dex")
10  local MaxHp = srcUser:GetProperty("MaxHp")
11  local mapid, maptype = srcUser:GetMapInfo()
12  if maptype == PVP_MAPS then
13    MaxHp = MaxHp / 4
14  end
15  local Atk = srcUser:GetProperty("Atk")
16  local MAtk = srcUser:GetProperty("MAtk")
17  local Def = srcUser:GetProperty("Def")
18  local MDef = srcUser:GetProperty("MDef")
19  local Refine = srcUser:GetProperty("Refine")
20  local MRefine = srcUser:GetProperty("MRefine")
21  local Hit = srcUser:GetProperty("Hit")
22  local Flee = srcUser:GetProperty("Flee")
23  local Cri = srcUser:GetProperty("Cri")
24  local CriRes = srcUser:GetProperty("CriRes")
25  local npcSkillId_1 = srcUser:GetLernedSkillLevel(416_RUNE_KNIGHT:HOMUNCULUS_STRENGTH_I)
26  local npcSkillId_2 = srcUser:GetLernedSkillLevel(428_RUNE_KNIGHT:HOMUNCULUS_STRENGTH_II)
27  local npcSkillId_3 = srcUser:GetLernedSkillLevel(1127_ARCANE_MASTER:HEALTH_LINK)
28  local QualityRatio = 2
29  local lianjie = 0
30  if srcUser:HasBuffID(116310_HEALTH_LINK_PEAK_PLAYER_EMPTY_BUFF_:MAX_STACK_0) then
31    lianjie = 0.05 * npcSkillId_3 - 0.25
32  end
33  local RefineLv7 = srcUser:GetEquipedRefineLv(7_WEAPON)
34  local Atk_7 = 0
35  if srcUser:HasBuffID(90001586_BATTLE_BERDYSZ_TIER_7_:MAX_STACK_0) and 5 < RefineLv7 then
36    Atk_7 = (RefineLv7 - 5) * 10
37  end
38  if srcUser:HasBuffID(42010_DEVASTATION_AXE_:MAX_STACK_0) and 5 < RefineLv7 then
39    Atk_7 = (RefineLv7 - 5) * 10
40  end
41  local AtkPer_7 = 0
42  if srcUser:HasBuffID(90001587_BATTLE_BERDYSZ_TIER_8_:MAX_STACK_0) and 10 < RefineLv7 then
43    AtkPer_7 = (RefineLv7 - 10) * 0.01
44  end
45  if srcUser:HasBuffID(42010_DEVASTATION_AXE_:MAX_STACK_0) and 10 < RefineLv7 then
46    AtkPer_7 = (RefineLv7 - 10) * 0.01
47  end
48  if srcUser:HasBuffID(90004484_WAR_AXE_OF_DESTRUCTION_1_TIER_5_:MAX_STACK_0) then
49    AtkPer_7 = AtkPer_7 + 0.15
50  end
51  local MAXHPPER_7 = 0
52  if srcUser:HasBuffID(90004484_WAR_AXE_OF_DESTRUCTION_1_TIER_5_:MAX_STACK_0) then
53    MAXHPPER_7 = MAXHPPER_7 + 0.15
54  end
55  local GemValue1 = srcUser:GetGemValue(132023_HOMUNCULUS_ATK_PERCENTAGE)
56  local GemValue2 = srcUser:GetGemValue(132053_HOMUNCULUS_ATK_PERCENTAGE)
57  local GemDam = 1 + GemValue1 / 100000 + GemValue2 / 100000
58  if npcid == 600010 then
59    result[CommonFun.RoleData.EATTRTYPE_STR] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_STR]
60    result[CommonFun.RoleData.EATTRTYPE_AGI] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_AGI]
61    result[CommonFun.RoleData.EATTRTYPE_VIT] = (7 + (npclevel - 1) * 0.04) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_VIT]
62    result[CommonFun.RoleData.EATTRTYPE_INT] = (7 + (npclevel - 1) * 0.35) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_INT]
63    result[CommonFun.RoleData.EATTRTYPE_DEX] = (3 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_DEX]
64    result[CommonFun.RoleData.EATTRTYPE_LUK] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_LUK]
65    local BeingBase_ATK = (28 + (npclevel - 1) * 0.96) * 1.5
66    local BeingBase_MATK = (66 + (npclevel - 1) * 2.81) * 1.5
67    local BeingBase_DEF = 28 + (npclevel - 1) * 1.38
68    local BeingBase_MDEF = 42 + (npclevel - 1) * 2.09
69    local BeingBase_MAXHP = 130 + (npclevel - 1) * 129.93
70    local BeingBase_HIT = 62 + (npclevel - 1) * 0.6
71    local BeingBase_FLEE = 54 + (npclevel - 1) * 0.19
72    local BeingBase_CRI = 51.32 + (npclevel - 1) * 0.07
73    local BeingBase_CRIRES = 50.8 + (npclevel - 1) * 0.04
74    local BeingToUser_ATK = (Str * 0.5 + Atk * 0.02 + Refine * 0.3) * 1.5
75    local BeingToUser_MATK = (Int * 3 + MAtk * 0.02 + MRefine * 0.3) * 1.5
76    local BeingToUser_DEF = Vit * 2 + Def * 0.3
77    local BeingToUser_MDEF = Int * 2 + MDef * 0.3
78    local BeingToUser_MAXHP = Vit * 300 + MaxHp * 0.6
79    local BeingToUser_HIT = 0
80    local BeingToUser_FLEE = Flee * 0.5
81    local BeingToUser_CRI = 0
82    local BeingToUser_CRIRES = CriRes * 0.5
83    result[CommonFun.RoleData.EATTRTYPE_ATK] = (BeingBase_ATK + BeingToUser_ATK + Atk_7 + attr[CommonFun.RoleData.EATTRTYPE_ATK] + attr[CommonFun.RoleData.EATTRTYPE_STR] * 4.02 + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2 + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 0.2) * (1 + attr[CommonFun.RoleData.EATTRTYPE_ATKPER]) * (1 + AtkPer_7) * GemDam
84    result[CommonFun.RoleData.EATTRTYPE_MATK] = (BeingBase_MATK + BeingToUser_MATK + Atk_7 + attr[CommonFun.RoleData.EATTRTYPE_MATK] + attr[CommonFun.RoleData.EATTRTYPE_INT] * 2.01 + npcSkillId_1 * 100) * (1 + npcSkillId_2 * 0.01) * (1 + attr[CommonFun.RoleData.EATTRTYPE_MATKPER]) * (1 + AtkPer_7) * GemDam
85    result[CommonFun.RoleData.EATTRTYPE_DEF] = BeingBase_DEF + BeingToUser_DEF + attr[CommonFun.RoleData.EATTRTYPE_DEF] + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 1
86    result[CommonFun.RoleData.EATTRTYPE_MDEF] = BeingBase_MDEF + BeingToUser_MDEF + attr[CommonFun.RoleData.EATTRTYPE_MDEF] + attr[CommonFun.RoleData.EATTRTYPE_INT] * 1 + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 0.5
87    result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (BeingBase_MAXHP + BeingToUser_MAXHP + attr[CommonFun.RoleData.EATTRTYPE_MAXHP] + npcSkillId_1 * 2000) * (1 + attr[CommonFun.RoleData.EATTRTYPE_VIT] / 100) * (1 + attr[CommonFun.RoleData.EATTRTYPE_MAXHPPER] + MAXHPPER_7)
88    if maptype == PVP_MAPS then
89      result[CommonFun.RoleData.EATTRTYPE_MAXHP] = result[CommonFun.RoleData.EATTRTYPE_MAXHP] * 4
90    end
91    result[CommonFun.RoleData.EATTRTYPE_HIT] = BeingToUser_HIT + BeingToUser_HIT + attr[CommonFun.RoleData.EATTRTYPE_HIT] + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 1
92    result[CommonFun.RoleData.EATTRTYPE_FLEE] = BeingBase_FLEE + BeingToUser_FLEE + attr[CommonFun.RoleData.EATTRTYPE_FLEE] + attr[CommonFun.RoleData.EATTRTYPE_AGI] * 1
93    result[CommonFun.RoleData.EATTRTYPE_CRI] = BeingBase_CRI + BeingToUser_CRI + attr[CommonFun.RoleData.EATTRTYPE_CRI] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.33
94    result[CommonFun.RoleData.EATTRTYPE_CRIRES] = BeingBase_CRIRES + BeingToUser_CRIRES + attr[CommonFun.RoleData.EATTRTYPE_CRIRES] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2
95    result[CommonFun.RoleData.EATTRTYPE_ATKSPD] = 1.5
96    result[CommonFun.RoleData.EATTRTYPE_DAMREDUC] = npcSkillId_2 * 0.02 + lianjie + attr[CommonFun.RoleData.EATTRTYPE_DAMREDUC]
97    result[CommonFun.RoleData.EATTRTYPE_REFINEDAMREDUC] = 0.75
98    result[CommonFun.RoleData.EATTRTYPE_REFINEMDAMREDUC] = 0.75
99  elseif npcid == 600020 then
100    result[CommonFun.RoleData.EATTRTYPE_STR] = (6 + (npclevel - 1) * 0.3) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_STR]
101    result[CommonFun.RoleData.EATTRTYPE_AGI] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_AGI]
102    result[CommonFun.RoleData.EATTRTYPE_VIT] = (8 + (npclevel - 1) * 0.4) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_VIT]
103    result[CommonFun.RoleData.EATTRTYPE_INT] = (2 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_INT]
104    result[CommonFun.RoleData.EATTRTYPE_DEX] = (2 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_DEX]
105    result[CommonFun.RoleData.EATTRTYPE_LUK] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_LUK]
106    local BeingBase_ATK = (108 + (npclevel - 1) * 4.94) * 1.5
107    local BeingBase_MATK = (26 + (npclevel - 1) * 0.79) * 1.5
108    local BeingBase_DEF = 32 + (npclevel - 1) * 1.6
109    local BeingBase_MDEF = 24 + (npclevel - 1) * 1.19
110    local BeingBase_MAXHP = 134 + (npclevel - 1) * 141.43
111    local BeingBase_HIT = 58 + (npclevel - 1) * 0.38
112    local BeingBase_FLEE = 54 + (npclevel - 1) * 0.19
113    local BeingBase_CRI = 51.32 + (npclevel - 1) * 0.07
114    local BeingBase_CRIRES = 50.8 + (npclevel - 1) * 0.04
115    local BeingToUser_ATK = (Str * 5 + Atk * 0.02 + Refine * 0.3) * 1.5
116    local BeingToUser_MATK = (Int * 0.5 + MAtk * 0.02 + MRefine * 0.3) * 1.5
117    local BeingToUser_DEF = Vit * 4 + Def * 0.6
118    local BeingToUser_MDEF = Int * 4 + MDef * 0.6
119    local BeingToUser_MAXHP = Vit * 500 + MaxHp * 0.8
120    local BeingToUser_HIT = Hit * 0.5
121    local BeingToUser_FLEE = Flee * 0.5
122    local BeingToUser_CRI = Cri * 0.5
123    local BeingToUser_CRIRES = CriRes * 0.5
124    local Num1 = srcUser:GetBuffLayer(91000141_ALLOY_MAIL_BERDYSZ_:MAX_STACK_3)
125    local Num2 = srcUser:GetBuffLayer(91000721_ALLOY_MAIL_BERDYSZ_:MAX_STACK_3)
126    local Num3 = srcUser:GetBuffLayer(91001121_BRIGHT_ARMOR_BERDYSZ_:MAX_STACK_3)
127    local Num4 = srcUser:GetBuffLayer(91001131_BRIGHT_ARMOR_SHATTERING_WAR_AXE_:MAX_STACK_3)
128    local AtkPer_1 = 0.03
129    local AtkPer_2 = 0
130    if srcUser:HasBuffID(91000141_ALLOY_MAIL_BERDYSZ_:MAX_STACK_3) or srcUser:HasBuffID(91000721_ALLOY_MAIL_BERDYSZ_:MAX_STACK_3) or srcUser:HasBuffID(91001121_BRIGHT_ARMOR_BERDYSZ_:MAX_STACK_3) or srcUser:HasBuffID(91001131_BRIGHT_ARMOR_SHATTERING_WAR_AXE_:MAX_STACK_3) then
131      AtkPer_2 = (Num1 + Num2 + Num3 + Num4) * AtkPer_1
132    end
133    local WeaponRefineLv = srcUser:GetEquipedRefineLv(7_WEAPON)
134    if (srcUser:HasBuffID(90001583_BATTLE_BERDYSZ_TIER_4_:MAX_STACK_0) or srcUser:HasBuffID(42010_DEVASTATION_AXE_:MAX_STACK_0)) and 15 <= WeaponRefineLv then
135      AtkPer_2 = AtkPer_2 + 0.1
136    end
137    result[CommonFun.RoleData.EATTRTYPE_ATK] = (BeingBase_ATK + BeingToUser_ATK + Atk_7 + attr[CommonFun.RoleData.EATTRTYPE_ATK] + attr[CommonFun.RoleData.EATTRTYPE_STR] * 4.02 + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2 + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 0.2 + npcSkillId_1 * 100) * (1 + AtkPer_2 + AtkPer_7) * (1 + attr[CommonFun.RoleData.EATTRTYPE_ATKPER]) * GemDam
138    result[CommonFun.RoleData.EATTRTYPE_MATK] = (BeingBase_MATK + BeingToUser_MATK + Atk_7 + attr[CommonFun.RoleData.EATTRTYPE_MATK] + attr[CommonFun.RoleData.EATTRTYPE_INT] * 2.01) * (1 + attr[CommonFun.RoleData.EATTRTYPE_MATKPER]) * (1 + AtkPer_7) * GemDam
139    result[CommonFun.RoleData.EATTRTYPE_DEF] = BeingBase_DEF + BeingToUser_DEF + attr[CommonFun.RoleData.EATTRTYPE_DEF] + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 1
140    result[CommonFun.RoleData.EATTRTYPE_MDEF] = BeingBase_MDEF + BeingToUser_MDEF + attr[CommonFun.RoleData.EATTRTYPE_MDEF] + attr[CommonFun.RoleData.EATTRTYPE_INT] * 1 + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 0.5
141    result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (BeingBase_MAXHP + BeingToUser_MAXHP + attr[CommonFun.RoleData.EATTRTYPE_MAXHP]) * (1 + attr[CommonFun.RoleData.EATTRTYPE_VIT] / 100) * (1 + npcSkillId_2 * 0.01) * (1 + attr[CommonFun.RoleData.EATTRTYPE_MAXHPPER] + MAXHPPER_7)
142    if maptype == PVP_MAPS then
143      result[CommonFun.RoleData.EATTRTYPE_MAXHP] = result[CommonFun.RoleData.EATTRTYPE_MAXHP] * 4
144    end
145    result[CommonFun.RoleData.EATTRTYPE_HIT] = BeingToUser_HIT + BeingToUser_HIT + attr[CommonFun.RoleData.EATTRTYPE_HIT] + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 1
146    result[CommonFun.RoleData.EATTRTYPE_FLEE] = BeingBase_FLEE + BeingToUser_FLEE + attr[CommonFun.RoleData.EATTRTYPE_FLEE] + attr[CommonFun.RoleData.EATTRTYPE_AGI] * 1
147    result[CommonFun.RoleData.EATTRTYPE_CRI] = BeingBase_CRI + BeingToUser_CRI + attr[CommonFun.RoleData.EATTRTYPE_CRI] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.33
148    result[CommonFun.RoleData.EATTRTYPE_CRIRES] = BeingBase_CRIRES + BeingToUser_CRIRES + attr[CommonFun.RoleData.EATTRTYPE_CRIRES] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2
149    result[CommonFun.RoleData.EATTRTYPE_ATKSPD] = 1 + npcSkillId_1 * 0.05 + npcSkillId_2 * 0.05
150    result[CommonFun.RoleData.EATTRTYPE_REFINEDAMREDUC] = 0.75
151    result[CommonFun.RoleData.EATTRTYPE_REFINEMDAMREDUC] = 0.75
152  elseif npcid == 600030 then
153    result[CommonFun.RoleData.EATTRTYPE_STR] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_STR]
154    result[CommonFun.RoleData.EATTRTYPE_AGI] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_AGI]
155    result[CommonFun.RoleData.EATTRTYPE_VIT] = (6 + (npclevel - 1) * 0.35) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_VIT]
156    result[CommonFun.RoleData.EATTRTYPE_INT] = (8 + (npclevel - 1) * 0.4) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_INT]
157    result[CommonFun.RoleData.EATTRTYPE_DEX] = (3 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_DEX]
158    result[CommonFun.RoleData.EATTRTYPE_LUK] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_LUK]
159    local BeingBase_ATK = (28 + (npclevel - 1) * 0.96) * 1.5
160    local BeingBase_MATK = (74 + (npclevel - 1) * 3.21) * 1.5
161    local BeingBase_DEF = 24 + (npclevel - 1) * 1.19
162    local BeingBase_MDEF = 44 + (npclevel - 1) * 2.19
163    local BeingBase_MAXHP = 126 + (npclevel - 1) * 118.44
164    local BeingBase_HIT = 62 + (npclevel - 1) * 0.6
165    local BeingBase_FLEE = 54 + (npclevel - 1) * 0.19
166    local BeingBase_CRI = 51.32 + (npclevel - 1) * 0.07
167    local BeingBase_CRIRES = 50.8 + (npclevel - 1) * 0.04
168    local BeingToUser_ATK = (Str * 1 + Atk * 0.02 + Refine * 0.3) * 1.5
169    local BeingToUser_MATK = (Int * 4.5 + MAtk * 0.02 + MRefine * 0.3) * 1.5
170    local BeingToUser_DEF = Vit * 1 + Def * 0.3
171    local BeingToUser_MDEF = Int * 1 + MDef * 0.3
172    local BeingToUser_MAXHP = Vit * 300 + MaxHp * 0.6
173    local BeingToUser_HIT = 0
174    local BeingToUser_FLEE = Flee * 0.5
175    local BeingToUser_CRI = 0
176    local BeingToUser_CRIRES = CriRes * 0.5
177    result[CommonFun.RoleData.EATTRTYPE_ATK] = (BeingBase_ATK + BeingToUser_ATK + Atk_7 + attr[CommonFun.RoleData.EATTRTYPE_ATK] + attr[CommonFun.RoleData.EATTRTYPE_STR] * 4.02 + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2 + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 0.2) * (1 + attr[CommonFun.RoleData.EATTRTYPE_ATKPER]) * (1 + AtkPer_7) * GemDam
178    result[CommonFun.RoleData.EATTRTYPE_MATK] = (BeingBase_MATK + BeingToUser_MATK + Atk_7 + attr[CommonFun.RoleData.EATTRTYPE_MATK] + attr[CommonFun.RoleData.EATTRTYPE_INT] * 2.01 + npcSkillId_1 * 100) * (1 + npcSkillId_2 * 0.01) * (1 + attr[CommonFun.RoleData.EATTRTYPE_MATKPER]) * (1 + AtkPer_7) * GemDam
179    result[CommonFun.RoleData.EATTRTYPE_DEF] = BeingBase_DEF + BeingToUser_DEF + attr[CommonFun.RoleData.EATTRTYPE_DEF] + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 1 + npcSkillId_1 * 40
180    result[CommonFun.RoleData.EATTRTYPE_MDEF] = BeingBase_MDEF + BeingToUser_MDEF + attr[CommonFun.RoleData.EATTRTYPE_MDEF] + attr[CommonFun.RoleData.EATTRTYPE_INT] * 1 + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 0.5
181    result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (BeingBase_MAXHP + BeingToUser_MAXHP + attr[CommonFun.RoleData.EATTRTYPE_MAXHP]) * (1 + attr[CommonFun.RoleData.EATTRTYPE_VIT] / 100) * (1 + attr[CommonFun.RoleData.EATTRTYPE_MAXHPPER] + MAXHPPER_7)
182    if maptype == PVP_MAPS then
183      result[CommonFun.RoleData.EATTRTYPE_MAXHP] = result[CommonFun.RoleData.EATTRTYPE_MAXHP] * 4
184    end
185    result[CommonFun.RoleData.EATTRTYPE_HIT] = BeingToUser_HIT + BeingToUser_HIT + attr[CommonFun.RoleData.EATTRTYPE_HIT] + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 1
186    result[CommonFun.RoleData.EATTRTYPE_FLEE] = BeingBase_FLEE + BeingToUser_FLEE + attr[CommonFun.RoleData.EATTRTYPE_FLEE] + attr[CommonFun.RoleData.EATTRTYPE_AGI] * 1
187    result[CommonFun.RoleData.EATTRTYPE_CRI] = BeingBase_CRI + BeingToUser_CRI + attr[CommonFun.RoleData.EATTRTYPE_CRI] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.33
188    result[CommonFun.RoleData.EATTRTYPE_CRIRES] = BeingBase_CRIRES + BeingToUser_CRIRES + attr[CommonFun.RoleData.EATTRTYPE_CRIRES] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2
189    result[CommonFun.RoleData.EATTRTYPE_ATKSPD] = 1.5
190    result[CommonFun.RoleData.EATTRTYPE_DAMREDUC] = npcSkillId_2 * 0.02 + lianjie + attr[CommonFun.RoleData.EATTRTYPE_DAMREDUC]
191    result[CommonFun.RoleData.EATTRTYPE_REFINEDAMREDUC] = 0.75
192    result[CommonFun.RoleData.EATTRTYPE_REFINEMDAMREDUC] = 0.75
193  elseif npcid == 591010 then
194    result[CommonFun.RoleData.EATTRTYPE_STR] = (6 + (npclevel - 1) * 0.3) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_STR]
195    result[CommonFun.RoleData.EATTRTYPE_AGI] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_AGI]
196    result[CommonFun.RoleData.EATTRTYPE_VIT] = (8 + (npclevel - 1) * 0.4) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_VIT]
197    result[CommonFun.RoleData.EATTRTYPE_INT] = (2 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_INT]
198    result[CommonFun.RoleData.EATTRTYPE_DEX] = (2 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_DEX]
199    result[CommonFun.RoleData.EATTRTYPE_LUK] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_LUK]
200    local BeingBase_ATK = (108 + (npclevel - 1) * 4.94) * 1.5
201    local BeingBase_MATK = (26 + (npclevel - 1) * 0.79) * 1.5
202    local BeingBase_DEF = 32 + (npclevel - 1) * 1.6
203    local BeingBase_MDEF = 24 + (npclevel - 1) * 1.19
204    local BeingBase_MAXHP = 134 + (npclevel - 1) * 141.43
205    local BeingBase_HIT = 58 + (npclevel - 1) * 0.38
206    local BeingBase_FLEE = 54 + (npclevel - 1) * 0.19
207    local BeingBase_CRI = 51.32 + (npclevel - 1) * 0.07
208    local BeingBase_CRIRES = 50.8 + (npclevel - 1) * 0.04
209    local BeingToUser_ATK = (Str * 5 + Dex * 2 + Atk * 0.02 + Refine * 0.3) * 1.5
210    local BeingToUser_MATK = (Int * 0.5 + MAtk * 0.02 + MRefine * 0.3) * 1.5
211    local BeingToUser_DEF = Vit * 4 + Def * 0.6
212    local BeingToUser_MDEF = Int * 4 + MDef * 0.6
213    local BeingToUser_MAXHP = Vit * 500 + MaxHp * 0.7
214    local BeingToUser_HIT = Hit * 0.5
215    local BeingToUser_FLEE = Flee * 0.5
216    local BeingToUser_CRI = Cri * 0.5
217    local BeingToUser_CRIRES = CriRes * 0.5
218    result[CommonFun.RoleData.EATTRTYPE_ATK] = (BeingBase_ATK + BeingToUser_ATK + Atk_7 + attr[CommonFun.RoleData.EATTRTYPE_ATK] + attr[CommonFun.RoleData.EATTRTYPE_STR] * 4.02 + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2 + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 0.2 + npcSkillId_1 * 100) * (1 + AtkPer_7 + npcSkillId_2 * 0.01) * (1 + attr[CommonFun.RoleData.EATTRTYPE_ATKPER]) * GemDam
219    result[CommonFun.RoleData.EATTRTYPE_MATK] = (BeingBase_MATK + BeingToUser_MATK + Atk_7 + attr[CommonFun.RoleData.EATTRTYPE_MATK] + attr[CommonFun.RoleData.EATTRTYPE_INT] * 2.01) * (1 + attr[CommonFun.RoleData.EATTRTYPE_MATKPER]) * (1 + AtkPer_7) * GemDam
220    result[CommonFun.RoleData.EATTRTYPE_DEF] = BeingBase_DEF + BeingToUser_DEF + attr[CommonFun.RoleData.EATTRTYPE_DEF] + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 1
221    result[CommonFun.RoleData.EATTRTYPE_MDEF] = BeingBase_MDEF + BeingToUser_MDEF + attr[CommonFun.RoleData.EATTRTYPE_MDEF] + attr[CommonFun.RoleData.EATTRTYPE_INT] * 1 + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 0.5
222    result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (BeingBase_MAXHP + BeingToUser_MAXHP + attr[CommonFun.RoleData.EATTRTYPE_MAXHP]) * (1 + attr[CommonFun.RoleData.EATTRTYPE_VIT] / 100) * 1 * (1 + attr[CommonFun.RoleData.EATTRTYPE_MAXHPPER] + MAXHPPER_7)
223    if maptype == PVP_MAPS then
224      result[CommonFun.RoleData.EATTRTYPE_MAXHP] = result[CommonFun.RoleData.EATTRTYPE_MAXHP] * 4
225    end
226    result[CommonFun.RoleData.EATTRTYPE_HIT] = BeingToUser_HIT + BeingToUser_HIT + attr[CommonFun.RoleData.EATTRTYPE_HIT] + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 1
227    result[CommonFun.RoleData.EATTRTYPE_FLEE] = BeingBase_FLEE + BeingToUser_FLEE + attr[CommonFun.RoleData.EATTRTYPE_FLEE] + attr[CommonFun.RoleData.EATTRTYPE_AGI] * 1
228    result[CommonFun.RoleData.EATTRTYPE_CRI] = BeingBase_CRI + BeingToUser_CRI + attr[CommonFun.RoleData.EATTRTYPE_CRI] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.33
229    result[CommonFun.RoleData.EATTRTYPE_CRIRES] = BeingBase_CRIRES + BeingToUser_CRIRES + attr[CommonFun.RoleData.EATTRTYPE_CRIRES] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2
230    result[CommonFun.RoleData.EATTRTYPE_IgnoreDef] = npcSkillId_1 * 0.05
231    result[CommonFun.RoleData.EATTRTYPE_DAMREDUC] = npcSkillId_2 * 0.02 + lianjie + attr[CommonFun.RoleData.EATTRTYPE_DAMREDUC]
232    result[CommonFun.RoleData.EATTRTYPE_REFINEDAMREDUC] = 0.75
233    result[CommonFun.RoleData.EATTRTYPE_REFINEMDAMREDUC] = 0.75
234  end
235  return result
236end
Formula Graph

Connected Archive Data

See which cards, equipment, headwears, buffs, and other archived records connect to this formula.

Loading graph filters

CommonFun.calcBeingNpcAttrValue

commonfun-calcbeingnpcattrvalue

Nodes

0

Edges

0

Related Nodes

Select at least one node type.