Formula
CommonFun.calcBeingNpcAttrValue
function CommonFun.calcBeingNpcAttrValue(attr, npcid, npclevel, srcUser)
local result = {}
if srcUser == nil then
return result
end
local Vit = srcUser:GetProperty("Vit")
local Str = srcUser:GetProperty("Str")
local Int = srcUser:GetProperty("Int")
local Dex = srcUser:GetProperty("Dex")
local MaxHp = srcUser:GetProperty("MaxHp")
local mapid, maptype = srcUser:GetMapInfo()
if maptype == PVP_MAPS then
MaxHp = MaxHp / 4
end
local Atk = srcUser:GetProperty("Atk")
local MAtk = srcUser:GetProperty("MAtk")
local Def = srcUser:GetProperty("Def")
local MDef = srcUser:GetProperty("MDef")
local Refine = srcUser:GetProperty("Refine")
local MRefine = srcUser:GetProperty("MRefine")
local Hit = srcUser:GetProperty("Hit")
local Flee = srcUser:GetProperty("Flee")
local Cri = srcUser:GetProperty("Cri")
local CriRes = srcUser:GetProperty("CriRes")
local npcSkillId_1 = srcUser:GetLernedSkillLevel(416_RUNE_KNIGHT:HOMUNCULUS_STRENGTH_I)
local npcSkillId_2 = srcUser:GetLernedSkillLevel(428_RUNE_KNIGHT:HOMUNCULUS_STRENGTH_II)
local npcSkillId_3 = srcUser:GetLernedSkillLevel(1127_ARCANE_MASTER:HEALTH_LINK)
local QualityRatio = 2
local lianjie = 0
if srcUser:HasBuffID(116310_HEALTH_LINK_PEAK_PLAYER_EMPTY_BUFF_:MAX_STACK_0) then
lianjie = 0.05 * npcSkillId_3 - 0.25
end
local RefineLv7 = srcUser:GetEquipedRefineLv(7_WEAPON)
local Atk_7 = 0
if srcUser:HasBuffID(90001586_BATTLE_BERDYSZ_R7_:MAX_STACK_0) and 5 < RefineLv7 then
Atk_7 = (RefineLv7 - 5) * 10
end
if srcUser:HasBuffID(42010_DEVASTATION_AXE_:MAX_STACK_0) and 5 < RefineLv7 then
Atk_7 = (RefineLv7 - 5) * 10
end
local AtkPer_7 = 0
if srcUser:HasBuffID(90001587_BATTLE_BERDYSZ_R8_:MAX_STACK_0) and 10 < RefineLv7 then
AtkPer_7 = (RefineLv7 - 10) * 0.01
end
if srcUser:HasBuffID(42010_DEVASTATION_AXE_:MAX_STACK_0) and 10 < RefineLv7 then
AtkPer_7 = (RefineLv7 - 10) * 0.01
end
if srcUser:HasBuffID(90004484_WAR_AXE_OF_DESTRUCTION_1_T5_:MAX_STACK_0) then
AtkPer_7 = AtkPer_7 + 0.15
end
local MAXHPPER_7 = 0
if srcUser:HasBuffID(90004484_WAR_AXE_OF_DESTRUCTION_1_T5_:MAX_STACK_0) then
MAXHPPER_7 = MAXHPPER_7 + 0.15
end
local GemValue1 = srcUser:GetGemValue(132023_HOMUNCULUS_ATK_PERCENTAGE)
local GemValue2 = srcUser:GetGemValue(132053_HOMUNCULUS_ATK_PERCENTAGE)
local GemDam = 1 + GemValue1 / 100000 + GemValue2 / 100000
if npcid == 600010 then
result[CommonFun.RoleData.EATTRTYPE_STR] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_STR]
result[CommonFun.RoleData.EATTRTYPE_AGI] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_AGI]
result[CommonFun.RoleData.EATTRTYPE_VIT] = (7 + (npclevel - 1) * 0.04) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_VIT]
result[CommonFun.RoleData.EATTRTYPE_INT] = (7 + (npclevel - 1) * 0.35) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_INT]
result[CommonFun.RoleData.EATTRTYPE_DEX] = (3 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_DEX]
result[CommonFun.RoleData.EATTRTYPE_LUK] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_LUK]
local BeingBase_ATK = (28 + (npclevel - 1) * 0.96) * 1.5
local BeingBase_MATK = (66 + (npclevel - 1) * 2.81) * 1.5
local BeingBase_DEF = 28 + (npclevel - 1) * 1.38
local BeingBase_MDEF = 42 + (npclevel - 1) * 2.09
local BeingBase_MAXHP = 130 + (npclevel - 1) * 129.93
local BeingBase_HIT = 62 + (npclevel - 1) * 0.6
local BeingBase_FLEE = 54 + (npclevel - 1) * 0.19
local BeingBase_CRI = 51.32 + (npclevel - 1) * 0.07
local BeingBase_CRIRES = 50.8 + (npclevel - 1) * 0.04
local BeingToUser_ATK = (Str * 0.5 + Atk * 0.02 + Refine * 0.3) * 1.5
local BeingToUser_MATK = (Int * 3 + MAtk * 0.02 + MRefine * 0.3) * 1.5
local BeingToUser_DEF = Vit * 2 + Def * 0.3
local BeingToUser_MDEF = Int * 2 + MDef * 0.3
local BeingToUser_MAXHP = Vit * 300 + MaxHp * 0.6
local BeingToUser_HIT = 0
local BeingToUser_FLEE = Flee * 0.5
local BeingToUser_CRI = 0
local BeingToUser_CRIRES = CriRes * 0.5
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
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
result[CommonFun.RoleData.EATTRTYPE_DEF] = BeingBase_DEF + BeingToUser_DEF + attr[CommonFun.RoleData.EATTRTYPE_DEF] + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 1
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
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)
if maptype == PVP_MAPS then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = result[CommonFun.RoleData.EATTRTYPE_MAXHP] * 4
end
result[CommonFun.RoleData.EATTRTYPE_HIT] = BeingToUser_HIT + BeingToUser_HIT + attr[CommonFun.RoleData.EATTRTYPE_HIT] + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 1
result[CommonFun.RoleData.EATTRTYPE_FLEE] = BeingBase_FLEE + BeingToUser_FLEE + attr[CommonFun.RoleData.EATTRTYPE_FLEE] + attr[CommonFun.RoleData.EATTRTYPE_AGI] * 1
result[CommonFun.RoleData.EATTRTYPE_CRI] = BeingBase_CRI + BeingToUser_CRI + attr[CommonFun.RoleData.EATTRTYPE_CRI] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.33
result[CommonFun.RoleData.EATTRTYPE_CRIRES] = BeingBase_CRIRES + BeingToUser_CRIRES + attr[CommonFun.RoleData.EATTRTYPE_CRIRES] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2
result[CommonFun.RoleData.EATTRTYPE_ATKSPD] = 1.5
result[CommonFun.RoleData.EATTRTYPE_DAMREDUC] = npcSkillId_2 * 0.02 + lianjie + attr[CommonFun.RoleData.EATTRTYPE_DAMREDUC]
result[CommonFun.RoleData.EATTRTYPE_REFINEDAMREDUC] = 0.75
result[CommonFun.RoleData.EATTRTYPE_REFINEMDAMREDUC] = 0.75
elseif npcid == 600020 then
result[CommonFun.RoleData.EATTRTYPE_STR] = (6 + (npclevel - 1) * 0.3) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_STR]
result[CommonFun.RoleData.EATTRTYPE_AGI] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_AGI]
result[CommonFun.RoleData.EATTRTYPE_VIT] = (8 + (npclevel - 1) * 0.4) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_VIT]
result[CommonFun.RoleData.EATTRTYPE_INT] = (2 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_INT]
result[CommonFun.RoleData.EATTRTYPE_DEX] = (2 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_DEX]
result[CommonFun.RoleData.EATTRTYPE_LUK] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_LUK]
local BeingBase_ATK = (108 + (npclevel - 1) * 4.94) * 1.5
local BeingBase_MATK = (26 + (npclevel - 1) * 0.79) * 1.5
local BeingBase_DEF = 32 + (npclevel - 1) * 1.6
local BeingBase_MDEF = 24 + (npclevel - 1) * 1.19
local BeingBase_MAXHP = 134 + (npclevel - 1) * 141.43
local BeingBase_HIT = 58 + (npclevel - 1) * 0.38
local BeingBase_FLEE = 54 + (npclevel - 1) * 0.19
local BeingBase_CRI = 51.32 + (npclevel - 1) * 0.07
local BeingBase_CRIRES = 50.8 + (npclevel - 1) * 0.04
local BeingToUser_ATK = (Str * 5 + Atk * 0.02 + Refine * 0.3) * 1.5
local BeingToUser_MATK = (Int * 0.5 + MAtk * 0.02 + MRefine * 0.3) * 1.5
local BeingToUser_DEF = Vit * 4 + Def * 0.6
local BeingToUser_MDEF = Int * 4 + MDef * 0.6
local BeingToUser_MAXHP = Vit * 500 + MaxHp * 0.8
local BeingToUser_HIT = Hit * 0.5
local BeingToUser_FLEE = Flee * 0.5
local BeingToUser_CRI = Cri * 0.5
local BeingToUser_CRIRES = CriRes * 0.5
local Num1 = srcUser:GetBuffLayer(91000141_ALLOY_MAIL_BERDYSZ_:MAX_STACK_3)
local Num2 = srcUser:GetBuffLayer(91000721_ALLOY_MAIL_BERDYSZ_:MAX_STACK_3)
local Num3 = srcUser:GetBuffLayer(91001121_BRIGHT_ARMOR_BERDYSZ_:MAX_STACK_3)
local Num4 = srcUser:GetBuffLayer(91001131_BRIGHT_ARMOR_SHATTERING_WAR_AXE_:MAX_STACK_3)
local AtkPer_1 = 0.03
local AtkPer_2 = 0
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
AtkPer_2 = (Num1 + Num2 + Num3 + Num4) * AtkPer_1
end
local WeaponRefineLv = srcUser:GetEquipedRefineLv(7_WEAPON)
if (srcUser:HasBuffID(90001583_BATTLE_BERDYSZ_R4_:MAX_STACK_0) or srcUser:HasBuffID(42010_DEVASTATION_AXE_:MAX_STACK_0)) and 15 <= WeaponRefineLv then
AtkPer_2 = AtkPer_2 + 0.1
end
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
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
result[CommonFun.RoleData.EATTRTYPE_DEF] = BeingBase_DEF + BeingToUser_DEF + attr[CommonFun.RoleData.EATTRTYPE_DEF] + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 1
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
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)
if maptype == PVP_MAPS then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = result[CommonFun.RoleData.EATTRTYPE_MAXHP] * 4
end
result[CommonFun.RoleData.EATTRTYPE_HIT] = BeingToUser_HIT + BeingToUser_HIT + attr[CommonFun.RoleData.EATTRTYPE_HIT] + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 1
result[CommonFun.RoleData.EATTRTYPE_FLEE] = BeingBase_FLEE + BeingToUser_FLEE + attr[CommonFun.RoleData.EATTRTYPE_FLEE] + attr[CommonFun.RoleData.EATTRTYPE_AGI] * 1
result[CommonFun.RoleData.EATTRTYPE_CRI] = BeingBase_CRI + BeingToUser_CRI + attr[CommonFun.RoleData.EATTRTYPE_CRI] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.33
result[CommonFun.RoleData.EATTRTYPE_CRIRES] = BeingBase_CRIRES + BeingToUser_CRIRES + attr[CommonFun.RoleData.EATTRTYPE_CRIRES] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2
result[CommonFun.RoleData.EATTRTYPE_ATKSPD] = 1 + npcSkillId_1 * 0.05 + npcSkillId_2 * 0.05
result[CommonFun.RoleData.EATTRTYPE_REFINEDAMREDUC] = 0.75
result[CommonFun.RoleData.EATTRTYPE_REFINEMDAMREDUC] = 0.75
elseif npcid == 600030 then
result[CommonFun.RoleData.EATTRTYPE_STR] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_STR]
result[CommonFun.RoleData.EATTRTYPE_AGI] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_AGI]
result[CommonFun.RoleData.EATTRTYPE_VIT] = (6 + (npclevel - 1) * 0.35) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_VIT]
result[CommonFun.RoleData.EATTRTYPE_INT] = (8 + (npclevel - 1) * 0.4) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_INT]
result[CommonFun.RoleData.EATTRTYPE_DEX] = (3 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_DEX]
result[CommonFun.RoleData.EATTRTYPE_LUK] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_LUK]
local BeingBase_ATK = (28 + (npclevel - 1) * 0.96) * 1.5
local BeingBase_MATK = (74 + (npclevel - 1) * 3.21) * 1.5
local BeingBase_DEF = 24 + (npclevel - 1) * 1.19
local BeingBase_MDEF = 44 + (npclevel - 1) * 2.19
local BeingBase_MAXHP = 126 + (npclevel - 1) * 118.44
local BeingBase_HIT = 62 + (npclevel - 1) * 0.6
local BeingBase_FLEE = 54 + (npclevel - 1) * 0.19
local BeingBase_CRI = 51.32 + (npclevel - 1) * 0.07
local BeingBase_CRIRES = 50.8 + (npclevel - 1) * 0.04
local BeingToUser_ATK = (Str * 1 + Atk * 0.02 + Refine * 0.3) * 1.5
local BeingToUser_MATK = (Int * 4.5 + MAtk * 0.02 + MRefine * 0.3) * 1.5
local BeingToUser_DEF = Vit * 1 + Def * 0.3
local BeingToUser_MDEF = Int * 1 + MDef * 0.3
local BeingToUser_MAXHP = Vit * 300 + MaxHp * 0.6
local BeingToUser_HIT = 0
local BeingToUser_FLEE = Flee * 0.5
local BeingToUser_CRI = 0
local BeingToUser_CRIRES = CriRes * 0.5
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
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
result[CommonFun.RoleData.EATTRTYPE_DEF] = BeingBase_DEF + BeingToUser_DEF + attr[CommonFun.RoleData.EATTRTYPE_DEF] + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 1 + npcSkillId_1 * 40
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
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)
if maptype == PVP_MAPS then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = result[CommonFun.RoleData.EATTRTYPE_MAXHP] * 4
end
result[CommonFun.RoleData.EATTRTYPE_HIT] = BeingToUser_HIT + BeingToUser_HIT + attr[CommonFun.RoleData.EATTRTYPE_HIT] + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 1
result[CommonFun.RoleData.EATTRTYPE_FLEE] = BeingBase_FLEE + BeingToUser_FLEE + attr[CommonFun.RoleData.EATTRTYPE_FLEE] + attr[CommonFun.RoleData.EATTRTYPE_AGI] * 1
result[CommonFun.RoleData.EATTRTYPE_CRI] = BeingBase_CRI + BeingToUser_CRI + attr[CommonFun.RoleData.EATTRTYPE_CRI] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.33
result[CommonFun.RoleData.EATTRTYPE_CRIRES] = BeingBase_CRIRES + BeingToUser_CRIRES + attr[CommonFun.RoleData.EATTRTYPE_CRIRES] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2
result[CommonFun.RoleData.EATTRTYPE_ATKSPD] = 1.5
result[CommonFun.RoleData.EATTRTYPE_DAMREDUC] = npcSkillId_2 * 0.02 + lianjie + attr[CommonFun.RoleData.EATTRTYPE_DAMREDUC]
result[CommonFun.RoleData.EATTRTYPE_REFINEDAMREDUC] = 0.75
result[CommonFun.RoleData.EATTRTYPE_REFINEMDAMREDUC] = 0.75
elseif npcid == 591010 then
result[CommonFun.RoleData.EATTRTYPE_STR] = (6 + (npclevel - 1) * 0.3) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_STR]
result[CommonFun.RoleData.EATTRTYPE_AGI] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_AGI]
result[CommonFun.RoleData.EATTRTYPE_VIT] = (8 + (npclevel - 1) * 0.4) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_VIT]
result[CommonFun.RoleData.EATTRTYPE_INT] = (2 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_INT]
result[CommonFun.RoleData.EATTRTYPE_DEX] = (2 + (npclevel - 1) * 0.1) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_DEX]
result[CommonFun.RoleData.EATTRTYPE_LUK] = (1 + (npclevel - 1) * 0.05) * QualityRatio + attr[CommonFun.RoleData.EATTRTYPE_LUK]
local BeingBase_ATK = (108 + (npclevel - 1) * 4.94) * 1.5
local BeingBase_MATK = (26 + (npclevel - 1) * 0.79) * 1.5
local BeingBase_DEF = 32 + (npclevel - 1) * 1.6
local BeingBase_MDEF = 24 + (npclevel - 1) * 1.19
local BeingBase_MAXHP = 134 + (npclevel - 1) * 141.43
local BeingBase_HIT = 58 + (npclevel - 1) * 0.38
local BeingBase_FLEE = 54 + (npclevel - 1) * 0.19
local BeingBase_CRI = 51.32 + (npclevel - 1) * 0.07
local BeingBase_CRIRES = 50.8 + (npclevel - 1) * 0.04
local BeingToUser_ATK = (Str * 5 + Dex * 2 + Atk * 0.02 + Refine * 0.3) * 1.5
local BeingToUser_MATK = (Int * 0.5 + MAtk * 0.02 + MRefine * 0.3) * 1.5
local BeingToUser_DEF = Vit * 4 + Def * 0.6
local BeingToUser_MDEF = Int * 4 + MDef * 0.6
local BeingToUser_MAXHP = Vit * 500 + MaxHp * 0.7
local BeingToUser_HIT = Hit * 0.5
local BeingToUser_FLEE = Flee * 0.5
local BeingToUser_CRI = Cri * 0.5
local BeingToUser_CRIRES = CriRes * 0.5
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
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
result[CommonFun.RoleData.EATTRTYPE_DEF] = BeingBase_DEF + BeingToUser_DEF + attr[CommonFun.RoleData.EATTRTYPE_DEF] + attr[CommonFun.RoleData.EATTRTYPE_VIT] * 1
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
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)
if maptype == PVP_MAPS then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = result[CommonFun.RoleData.EATTRTYPE_MAXHP] * 4
end
result[CommonFun.RoleData.EATTRTYPE_HIT] = BeingToUser_HIT + BeingToUser_HIT + attr[CommonFun.RoleData.EATTRTYPE_HIT] + attr[CommonFun.RoleData.EATTRTYPE_DEX] * 1
result[CommonFun.RoleData.EATTRTYPE_FLEE] = BeingBase_FLEE + BeingToUser_FLEE + attr[CommonFun.RoleData.EATTRTYPE_FLEE] + attr[CommonFun.RoleData.EATTRTYPE_AGI] * 1
result[CommonFun.RoleData.EATTRTYPE_CRI] = BeingBase_CRI + BeingToUser_CRI + attr[CommonFun.RoleData.EATTRTYPE_CRI] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.33
result[CommonFun.RoleData.EATTRTYPE_CRIRES] = BeingBase_CRIRES + BeingToUser_CRIRES + attr[CommonFun.RoleData.EATTRTYPE_CRIRES] + attr[CommonFun.RoleData.EATTRTYPE_LUK] * 0.2
result[CommonFun.RoleData.EATTRTYPE_IgnoreDef] = npcSkillId_1 * 0.05
result[CommonFun.RoleData.EATTRTYPE_DAMREDUC] = npcSkillId_2 * 0.02 + lianjie + attr[CommonFun.RoleData.EATTRTYPE_DAMREDUC]
result[CommonFun.RoleData.EATTRTYPE_REFINEDAMREDUC] = 0.75
result[CommonFun.RoleData.EATTRTYPE_REFINEMDAMREDUC] = 0.75
end
return result
end