Formula
CommonFun.calcWeaponPetNpcAttrValue
function CommonFun.calcWeaponPetNpcAttrValue(attr, classtype, level, srcUser)
local result = {}
if srcUser == nil then
return result
end
local a = 1
if srcUser ~= nil and srcUser:HasBuffID(30000_BLACK_CAT_LEMEGETON_PACKAGE_:MAX_STACK_0) == true then
a = 1.1
end
local wlv = srcUser:GetWeaponPetLevel()
if classtype == 51 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 0.15 * level * level - 3 * level + 70 + attr[CommonFun.RoleData.EATTRTYPE_ATK]
result[CommonFun.RoleData.EATTRTYPE_MATK] = 0.1 * level * level - 3 * level + 70 + attr[CommonFun.RoleData.EATTRTYPE_MATK]
result[CommonFun.RoleData.EATTRTYPE_DEF] = level * 6 + attr[CommonFun.RoleData.EATTRTYPE_DEF]
result[CommonFun.RoleData.EATTRTYPE_MDEF] = level * 2 + attr[CommonFun.RoleData.EATTRTYPE_MDEF]
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (4 * level * level + 140 * level + 1000 + attr[CommonFun.RoleData.EATTRTYPE_MAXHP]) * (1 + attr[CommonFun.RoleData.EATTRTYPE_MAXHPPER])
result[CommonFun.RoleData.EATTRTYPE_HIT] = 3 * level + 50 + attr[CommonFun.RoleData.EATTRTYPE_HIT]
result[CommonFun.RoleData.EATTRTYPE_FLEE] = level + attr[CommonFun.RoleData.EATTRTYPE_FLEE]
result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3 + attr[CommonFun.RoleData.EATTRTYPE_CRI]
result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3 + attr[CommonFun.RoleData.EATTRTYPE_CRIRES]
result[CommonFun.RoleData.EATTRTYPE_DAMINCREASE] = wlv * 0 + attr[CommonFun.RoleData.EATTRTYPE_DAMINCREASE]
result[CommonFun.RoleData.EATTRTYPE_MDAMINCREASE] = wlv * 0 + attr[CommonFun.RoleData.EATTRTYPE_MDAMINCREASE]
result[CommonFun.RoleData.EATTRTYPE_HEALENCPER] = math.floor((wlv + 1) / 2) * 0.2 + level / 200 + attr[CommonFun.RoleData.EATTRTYPE_HEALENCPER]
elseif classtype == 41 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = (0.37 * level * level - 2 * level + 70 + attr[CommonFun.RoleData.EATTRTYPE_ATK]) * a
result[CommonFun.RoleData.EATTRTYPE_MATK] = 0.1 * level * level - 3 * level + 70 + attr[CommonFun.RoleData.EATTRTYPE_MATK]
result[CommonFun.RoleData.EATTRTYPE_DEF] = level * 6 + attr[CommonFun.RoleData.EATTRTYPE_DEF]
result[CommonFun.RoleData.EATTRTYPE_MDEF] = level * 2 + attr[CommonFun.RoleData.EATTRTYPE_MDEF]
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (5 * level * level + 140 * level + 1000 + attr[CommonFun.RoleData.EATTRTYPE_MAXHP]) * (1 + attr[CommonFun.RoleData.EATTRTYPE_MAXHPPER])
result[CommonFun.RoleData.EATTRTYPE_HIT] = 3 * level + 50 + attr[CommonFun.RoleData.EATTRTYPE_HIT]
result[CommonFun.RoleData.EATTRTYPE_FLEE] = level + attr[CommonFun.RoleData.EATTRTYPE_FLEE]
result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3 + attr[CommonFun.RoleData.EATTRTYPE_CRI]
result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3 + attr[CommonFun.RoleData.EATTRTYPE_CRIRES]
result[CommonFun.RoleData.EATTRTYPE_DAMINCREASE] = math.floor((wlv + 1) / 2) * 0.2 + attr[CommonFun.RoleData.EATTRTYPE_DAMINCREASE]
result[CommonFun.RoleData.EATTRTYPE_MDAMINCREASE] = wlv * 0 + attr[CommonFun.RoleData.EATTRTYPE_MDAMINCREASE]
result[CommonFun.RoleData.EATTRTYPE_HEALENCPER] = wlv * 0 + attr[CommonFun.RoleData.EATTRTYPE_HEALENCPER]
elseif classtype == 11 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 0.15 * level * level - 3 * level + 70 + attr[CommonFun.RoleData.EATTRTYPE_ATK]
result[CommonFun.RoleData.EATTRTYPE_MATK] = 0.1 * level * level - 3 * level + 70 + attr[CommonFun.RoleData.EATTRTYPE_MATK]
result[CommonFun.RoleData.EATTRTYPE_DEF] = level * 12 + attr[CommonFun.RoleData.EATTRTYPE_DEF]
result[CommonFun.RoleData.EATTRTYPE_MDEF] = level * 4 + attr[CommonFun.RoleData.EATTRTYPE_MDEF]
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (4 * level * level + 350 * level + 5000 + attr[CommonFun.RoleData.EATTRTYPE_MAXHP]) * (1 + math.floor((wlv + 1) / 2) * 0.2 + level / 200 + attr[CommonFun.RoleData.EATTRTYPE_MAXHPPER])
result[CommonFun.RoleData.EATTRTYPE_HIT] = 3 * level + 50 + attr[CommonFun.RoleData.EATTRTYPE_HIT]
result[CommonFun.RoleData.EATTRTYPE_FLEE] = level + attr[CommonFun.RoleData.EATTRTYPE_FLEE]
result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3 + attr[CommonFun.RoleData.EATTRTYPE_CRI]
result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3 + attr[CommonFun.RoleData.EATTRTYPE_CRIRES]
result[CommonFun.RoleData.EATTRTYPE_DAMINCREASE] = wlv * 0 + attr[CommonFun.RoleData.EATTRTYPE_DAMINCREASE]
result[CommonFun.RoleData.EATTRTYPE_MDAMINCREASE] = wlv * 0 + attr[CommonFun.RoleData.EATTRTYPE_MDAMINCREASE]
result[CommonFun.RoleData.EATTRTYPE_HEALENCPER] = wlv * 0 + attr[CommonFun.RoleData.EATTRTYPE_HEALENCPER]
elseif classtype == 21 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 0.1 * level * level - 3 * level + 70 + attr[CommonFun.RoleData.EATTRTYPE_ATK]
result[CommonFun.RoleData.EATTRTYPE_MATK] = (0.42 * level * level - 2 * level + 70 + attr[CommonFun.RoleData.EATTRTYPE_MATK]) * a
result[CommonFun.RoleData.EATTRTYPE_DEF] = level * 6 + attr[CommonFun.RoleData.EATTRTYPE_DEF]
result[CommonFun.RoleData.EATTRTYPE_MDEF] = level * 2 + attr[CommonFun.RoleData.EATTRTYPE_MDEF]
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (5 * level * level + 140 * level + 1000 + attr[CommonFun.RoleData.EATTRTYPE_MAXHP]) * (1 + attr[CommonFun.RoleData.EATTRTYPE_MAXHPPER])
result[CommonFun.RoleData.EATTRTYPE_HIT] = 3 * level + 50 + attr[CommonFun.RoleData.EATTRTYPE_HIT]
result[CommonFun.RoleData.EATTRTYPE_FLEE] = level + attr[CommonFun.RoleData.EATTRTYPE_FLEE]
result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3 + attr[CommonFun.RoleData.EATTRTYPE_CRI]
result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3 + attr[CommonFun.RoleData.EATTRTYPE_CRIRES]
result[CommonFun.RoleData.EATTRTYPE_DAMINCREASE] = wlv * 0 + attr[CommonFun.RoleData.EATTRTYPE_DAMINCREASE]
result[CommonFun.RoleData.EATTRTYPE_MDAMINCREASE] = math.floor((wlv + 1) / 2) * 0.2 + attr[CommonFun.RoleData.EATTRTYPE_MDAMINCREASE]
result[CommonFun.RoleData.EATTRTYPE_HEALENCPER] = wlv * 0 + attr[CommonFun.RoleData.EATTRTYPE_HEALENCPER]
else
result[CommonFun.RoleData.EATTRTYPE_ATK] = 0.15 * level * level - 3 * level + 70 + attr[CommonFun.RoleData.EATTRTYPE_ATK]
result[CommonFun.RoleData.EATTRTYPE_MATK] = 0.1 * level * level - 3 * level + 70 + attr[CommonFun.RoleData.EATTRTYPE_MATK]
result[CommonFun.RoleData.EATTRTYPE_DEF] = level * 6 + attr[CommonFun.RoleData.EATTRTYPE_DEF]
result[CommonFun.RoleData.EATTRTYPE_MDEF] = level * 2 + attr[CommonFun.RoleData.EATTRTYPE_MDEF]
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 1.5 * level * level - 10 * level + 1000 + attr[CommonFun.RoleData.EATTRTYPE_MAXHP]
result[CommonFun.RoleData.EATTRTYPE_HIT] = 3 * level + 50 + attr[CommonFun.RoleData.EATTRTYPE_HIT]
result[CommonFun.RoleData.EATTRTYPE_FLEE] = level + attr[CommonFun.RoleData.EATTRTYPE_FLEE]
result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3 + attr[CommonFun.RoleData.EATTRTYPE_CRI]
result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3 + attr[CommonFun.RoleData.EATTRTYPE_CRIRES]
end
return result
end