Talk:Level Costs: Difference between revisions
Jump to navigation
Jump to search
imported>Widgeon The calculations were off by one level, I think this fixes them. |
imported>Widgeon No edit summary |
||
| Line 1: | Line 1: | ||
It looks like the calculation uses round() for levels above 126, ceil() for other levels, and then level 2 should be 1000 xp, not 1004. I've updated the script below. --[[User:Widgeon|Widgeon]] 00:04, 23 February 2009 (CST) | |||
---- | |||
For what it's worth, here's the python script I used to generate the table: | For what it's worth, here's the python script I used to generate the table: | ||
| Line 9: | Line 13: | ||
def total_level_xp(level): | def total_level_xp(level): | ||
return int(math.ceil( ((level + 5) ** 5 - (6 ** 5)) / 9.)) | if (level < 2): | ||
return 0; | |||
if (level == 2): | |||
return 1000; | |||
if (level <= 126): | |||
return int(math.ceil( ((level + 5) ** 5 - (6 ** 5)) / 9.)) | |||
return int(round( ((level + 5) ** 5 - (6 ** 5)) / 9.)) | |||
def next_level_xp(level): | def next_level_xp(level): | ||
Revision as of 06:04, 23 February 2009
It looks like the calculation uses round() for levels above 126, ceil() for other levels, and then level 2 should be 1000 xp, not 1004. I've updated the script below. --Widgeon 00:04, 23 February 2009 (CST)
For what it's worth, here's the python script I used to generate the table:
#!/usr/bin/python
import math
import locale
def total_level_xp(level):
if (level < 2):
return 0;
if (level == 2):
return 1000;
if (level <= 126):
return int(math.ceil( ((level + 5) ** 5 - (6 ** 5)) / 9.))
return int(round( ((level + 5) ** 5 - (6 ** 5)) / 9.))
def next_level_xp(level):
return total_level_xp(level) - total_level_xp(level - 1)
locale.setlocale(locale.LC_ALL, "")
for level in range(1,276):
next_xp = next_level_xp(level)
total_xp = total_level_xp(level)
print "| %d || %s || %s" % (level, locale.format("%.*d", (1, next_xp), True), locale.format("%.*d", (1, total_xp), True))
print "|-"
--Widgeon 22:35, 7 July 2008 (CDT)