Formula

CommonFun.calcLaboratoryNpcAttrValue

function CommonFun.calcLaboratoryNpcAttrValue(attr, level, classtype, roundid)
  local result = {}
  if classtype == 11 then
    result[CommonFun.RoleData.EATTRTYPE_ATK] = (0.34 * level * level - 8.26 * level + 72) * 0.4
    result[CommonFun.RoleData.EATTRTYPE_MATK] = (0.34 * level * level - 8.26 * level + 72) * 0.4
    result[CommonFun.RoleData.EATTRTYPE_DEF] = 8.0E-4 * level * level * level - 0.0494 * level * level + 4.5061 * level + 1
    result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 * level
    result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (0.1373 * level * level * level - 2.9336 * level * level + 202.51 * level + 40.727) * 2 * 3
    result[CommonFun.RoleData.EATTRTYPE_HIT] = 2 * level + 50
    result[CommonFun.RoleData.EATTRTYPE_FLEE] = level
    result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3
    result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3
  elseif classtype == 12 then
    result[CommonFun.RoleData.EATTRTYPE_ATK] = (0.34 * level * level - 8.26 * level + 72) * 0.4
    result[CommonFun.RoleData.EATTRTYPE_MATK] = (0.34 * level * level - 8.26 * level + 72) * 0.4
    result[CommonFun.RoleData.EATTRTYPE_DEF] = 8.0E-4 * level * level * level - 0.0494 * level * level + 4.5061 * level + 1
    result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 * level
    result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (0.1373 * level * level * level - 2.9336 * level * level + 202.51 * level + 40.727) * 2 * 3
    result[CommonFun.RoleData.EATTRTYPE_HIT] = 2 * level + 50
    result[CommonFun.RoleData.EATTRTYPE_FLEE] = level
    result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3
    result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3
  elseif classtype == 21 then
    result[CommonFun.RoleData.EATTRTYPE_ATK] = (0.34 * level * level - 8.26 * level + 72) * 0.4
    result[CommonFun.RoleData.EATTRTYPE_MATK] = (0.34 * level * level - 8.26 * level + 72) * 0.4
    result[CommonFun.RoleData.EATTRTYPE_DEF] = 8.0E-4 * level * level * level - 0.0494 * level * level + 4.5061 * level + 1
    result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 * level
    result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (0.1373 * level * level * level - 2.9336 * level * level + 202.51 * level + 40.727) * 3
    result[CommonFun.RoleData.EATTRTYPE_HIT] = 2 * level + 50
    result[CommonFun.RoleData.EATTRTYPE_FLEE] = level
    result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3
    result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3
  elseif classtype == 31 then
    result[CommonFun.RoleData.EATTRTYPE_ATK] = (0.34 * level * level - 8.26 * level + 72) * 0.75
    result[CommonFun.RoleData.EATTRTYPE_MATK] = (0.34 * level * level - 8.26 * level + 72) * 0.75
    result[CommonFun.RoleData.EATTRTYPE_DEF] = 8.0E-4 * level * level * level - 0.0494 * level * level + 4.5061 * level + 1
    result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 * level
    result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (0.1373 * level * level * level - 2.9336 * level * level + 202.51 * level + 40.727) * 3
    result[CommonFun.RoleData.EATTRTYPE_HIT] = 2 * level + 50
    result[CommonFun.RoleData.EATTRTYPE_FLEE] = level
    result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3
    result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3
  elseif classtype == 41 then
    result[CommonFun.RoleData.EATTRTYPE_ATK] = (0.34 * level * level - 8.26 * level + 72) * 0.75
    result[CommonFun.RoleData.EATTRTYPE_MATK] = (0.34 * level * level - 8.26 * level + 72) * 0.75
    result[CommonFun.RoleData.EATTRTYPE_DEF] = 8.0E-4 * level * level * level - 0.0494 * level * level + 4.5061 * level + 1
    result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 * level
    result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (0.1373 * level * level * level - 2.9336 * level * level + 202.51 * level + 40.727) * 3
    result[CommonFun.RoleData.EATTRTYPE_HIT] = 2 * level + 50
    result[CommonFun.RoleData.EATTRTYPE_FLEE] = level
    result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3
    result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3
  elseif classtype == 51 then
    result[CommonFun.RoleData.EATTRTYPE_ATK] = (0.34 * level * level - 8.26 * level + 72) * 0.5
    result[CommonFun.RoleData.EATTRTYPE_MATK] = (0.34 * level * level - 8.26 * level + 72) * 0.5
    result[CommonFun.RoleData.EATTRTYPE_DEF] = 8.0E-4 * level * level * level - 0.0494 * level * level + 4.5061 * level + 1
    result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 * level
    result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (0.1373 * level * level * level - 2.9336 * level * level + 202.51 * level + 40.727) * 2
    result[CommonFun.RoleData.EATTRTYPE_HIT] = 2 * level + 50
    result[CommonFun.RoleData.EATTRTYPE_FLEE] = level
    result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3
    result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3
  else
    result[CommonFun.RoleData.EATTRTYPE_ATK] = (0.34 * level * level - 8.26 * level + 72) * 0.5
    result[CommonFun.RoleData.EATTRTYPE_MATK] = (0.34 * level * level - 8.26 * level + 72) * 0.5
    result[CommonFun.RoleData.EATTRTYPE_DEF] = 8.0E-4 * level * level * level - 0.0494 * level * level + 4.5061 * level + 1
    result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 * level
    result[CommonFun.RoleData.EATTRTYPE_MAXHP] = (0.1373 * level * level * level - 2.9336 * level * level + 202.51 * level + 40.727) * 2
    result[CommonFun.RoleData.EATTRTYPE_HIT] = 2 * level + 50
    result[CommonFun.RoleData.EATTRTYPE_FLEE] = level
    result[CommonFun.RoleData.EATTRTYPE_CRI] = level * 0.3
    result[CommonFun.RoleData.EATTRTYPE_CRIRES] = level * 0.3
  end
  return result
end