Only 4 points off now, I fixed what nooben irl said. Ideas? This could be due to Diablo II's rounding down, Eywa you said something ealier but not quiet sure what you meant(do you want me to replace the life with the real values in eights?)
Code
#!/usr/bin/env python
# Dictionaries for character stats
vitlife = {'amazon':3, 'assassin':3, 'barbarian':4, 'druid':2, 'necromancer':2, 'paladin':3, 'sorceress':2}
lvlife = {'amazon':2, 'assassin':2, 'barbarian':2, 'druid':2, 'necromancer':1.5, 'paladin':2, 'sorceress':1}
slife = {'amazon':50, 'assassin':50, 'barbarian':55, 'druid':55, 'necromancer':45, 'paladin':55, 'sorceress':40}
svitality = {'amazon':20, 'assassin':20, 'barbarian':25, 'druid':25, 'necromancer':15, 'paladin':25, 'sorceress':10}
#charclass = character classes, case sensitive
charclass = raw_input('Character class: ')
charclass = charclass.lower()
#Setting character level
level = input('Character level? ')
#Setting all the input variables
vitality = 0
vita = input('Base vitality without items: ')
vitality = vita - svitality[charclass]
itemvitality = input('Vitality from items: ')
item_life_per_level = input('Life/level from items? ')
#Setting a BO level variable
bolvl = input('BO level: ')
bo = 0
if bolvl:
bo = (bolvl * 3 + 32)
#Transformed states variables
werewolf = 0
werebear = 0
lyc = 0
ww = raw_input('Werewolf? ')
if ww == 'yes':
werewolf = 0.25
lyc = input('Lycanthropy level? ')
wb = raw_input('Werebear? ')
if wb == 'yes':
werebear = 0.50
lyc = input('Lycanthropy level? ')
lycan = 0
if lyc:
lycan = (lyc * 5 + 15)
#Bird quest
bird = input('How many golden bird quests have you completed? ') * 20
#Percentage of +% life from items
itempercent = input('+% Life from items? ')
#+ xx to life items
itemlife = input('+ X to life from items ')
#Oak sage variable
oak = 0
sage = input('Oak sage level ')
if sage:
oak = (sage * 5 + 25)
#Character classes, vitality per life, life per level, starting life
#Life boosters
total_percent = (itempercent + werebear + werewolf + lycan + bo + oak)/100.0
#Boostable life
elife = slife[charclass] + (lvlife[charclass] *level) + itemlife +(vitality * vitlife[charclass]) + bird
#Total life
lifetot = elife * (1 + total_percent) + (itemvitality * vitlife[charclass]) + item_life_per_level* level
print lifetot