Formula
CommonFun.calcUserShowAttrValue
function CommonFun.calcUserShowAttrValue(attr, profession, oldlv, newlv, WeaponType)
local result = {}
local oldvalue = 50 + oldlv * BaseLvRate[profession] + CommonFun.CalcSum(oldlv) * HpRate[profession] + BaseHp[profession]
local newvalue = 50 + newlv * BaseLvRate[profession] + CommonFun.CalcSum(newlv) * HpRate[profession] + BaseHp[profession]
if newvalue > oldvalue + 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = newvalue - oldvalue
end
if CommonFun.checkRemoteAtk(profession, WeaponType) then
oldvalue = attr[CommonFun.RoleData.EATTRTYPE_DEX] * 3 + attr[CommonFun.RoleData.EATTRTYPE_DEX] * attr[CommonFun.RoleData.EATTRTYPE_DEX] / 100 + attr[CommonFun.RoleData.EATTRTYPE_STR] / 5 + attr[CommonFun.RoleData.EATTRTYPE_LUK] / 5 + oldlv * BaseLvAtkRate1[profession]
else
oldvalue = attr[CommonFun.RoleData.EATTRTYPE_STR] * 5 + attr[CommonFun.RoleData.EATTRTYPE_STR] * attr[CommonFun.RoleData.EATTRTYPE_STR] / 100 + attr[CommonFun.RoleData.EATTRTYPE_DEX] / 5 + attr[CommonFun.RoleData.EATTRTYPE_LUK] / 5 + oldlv * BaseLvAtkRate1[profession]
end
if CommonFun.checkRemoteAtk(profession, WeaponType) then
newvalue = attr[CommonFun.RoleData.EATTRTYPE_DEX] * 3 + attr[CommonFun.RoleData.EATTRTYPE_DEX] * attr[CommonFun.RoleData.EATTRTYPE_DEX] / 100 + attr[CommonFun.RoleData.EATTRTYPE_STR] / 5 + attr[CommonFun.RoleData.EATTRTYPE_LUK] / 5 + newlv * BaseLvAtkRate1[profession]
else
newvalue = attr[CommonFun.RoleData.EATTRTYPE_STR] * 3 + attr[CommonFun.RoleData.EATTRTYPE_STR] * attr[CommonFun.RoleData.EATTRTYPE_STR] / 100 + attr[CommonFun.RoleData.EATTRTYPE_DEX] / 5 + attr[CommonFun.RoleData.EATTRTYPE_LUK] / 5 + newlv * BaseLvAtkRate1[profession]
end
if newvalue > oldvalue + 1 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = newvalue - oldvalue
end
oldvalue = attr[CommonFun.RoleData.EATTRTYPE_INT] * 3 + attr[CommonFun.RoleData.EATTRTYPE_INT] * attr[CommonFun.RoleData.EATTRTYPE_INT] / 100 + oldlv * BaseLvAtkRate2[profession]
newvalue = attr[CommonFun.RoleData.EATTRTYPE_INT] * 3 + attr[CommonFun.RoleData.EATTRTYPE_INT] * attr[CommonFun.RoleData.EATTRTYPE_INT] / 100 + newlv * BaseLvAtkRate2[profession]
if newvalue > oldvalue + 1 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = newvalue - oldvalue
end
oldvalue = attr[CommonFun.RoleData.EATTRTYPE_VIT] * 2 + attr[CommonFun.RoleData.EATTRTYPE_VIT] * attr[CommonFun.RoleData.EATTRTYPE_VIT] / 100 + oldlv * BaseLvDefRate[profession]
newvalue = attr[CommonFun.RoleData.EATTRTYPE_VIT] * 2 + attr[CommonFun.RoleData.EATTRTYPE_VIT] * attr[CommonFun.RoleData.EATTRTYPE_VIT] / 100 + newlv * BaseLvDefRate[profession]
if newvalue > oldvalue + 1 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = newvalue - oldvalue
end
oldvalue = attr[CommonFun.RoleData.EATTRTYPE_INT] * 2 + attr[CommonFun.RoleData.EATTRTYPE_INT] * attr[CommonFun.RoleData.EATTRTYPE_INT] / 100 + oldlv * BaseLvMDefRate[profession]
newvalue = attr[CommonFun.RoleData.EATTRTYPE_INT] * 2 + attr[CommonFun.RoleData.EATTRTYPE_INT] * attr[CommonFun.RoleData.EATTRTYPE_INT] / 100 + newlv * BaseLvMDefRate[profession]
if newvalue > oldvalue + 1 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = newvalue - oldvalue
end
oldvalue = 20 + oldlv * GameConfig.NewRole.recover[profession].sp + attr[CommonFun.RoleData.EATTRTYPE_INT] * 2
newvalue = 20 + newlv * GameConfig.NewRole.recover[profession].sp + attr[CommonFun.RoleData.EATTRTYPE_INT] * 2
if newvalue > oldvalue + 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXSP] = newvalue - oldvalue
end
oldvalue = oldlv + attr[CommonFun.RoleData.EATTRTYPE_DEX]
newvalue = newlv + attr[CommonFun.RoleData.EATTRTYPE_DEX]
if newvalue > oldvalue + 1 then
result[CommonFun.RoleData.EATTRTYPE_HIT] = newvalue - oldvalue
end
oldvalue = oldlv + attr[CommonFun.RoleData.EATTRTYPE_AGI]
newvalue = newlv + attr[CommonFun.RoleData.EATTRTYPE_AGI]
if newvalue > oldvalue + 1 then
result[CommonFun.RoleData.EATTRTYPE_FLEE] = newvalue - oldvalue
end
return result
end