10-19-2011, 12:06 PM
wonder why you waste time with ollydbg when you can do everything faster and easier with a simple hex editor
the lvl up loop bug is caused for a bug in the levelup function.
if( player.current_exp >= player.needed_exp )
{
if( player.level < max_level )
{
levelup:
player levelup
if( player.current_exp >= player.needed_exp )
goto levelup
}
}
i think the example above shows perfectly where the bug is
lets say you kill a mob and the above code gets execute. first it checks if you have the exp required to level up, then checks if your level is below the max level, if both are true, you will level up. the problem comes after leveling up, it checks again if you have the exp required to level up and if so, you will level up again but it does NOT check the max level. so if you gain two or more levelups at the same time, you can past over the max level and since the exp required to level up after the max level is always 0/0, you will get in an infinite levelup loop
to fix this bug, you only need to patch these two offsets
LevelUp loop bug fix (v2):
0x000FC7F6 B4
0x000FC80D 9D

