dunno if this is right as cant test it but if wrong should give you a idea
function check_level()
{
global $db;
global $ir, $c, $userid;
$ir['exp_needed'] =
(int) (($ir['level'] + 1) * ($ir['level'] + 1)
* ($ir['level'] + 1) * 2.2);
if ($ir['exp'] >= $ir['exp_needed'])
{
$expu = $ir['exp'] - $ir['exp_needed'];
$ir['level'] += 1;
$ir['exp'] = $expu;
$ir['energy'] += 2;
$ir['brave'] += 2;
$ir['maxenergy'] += 2;
$ir['maxbrave'] += 2;
$ir['hp'] += 50;
$ir['maxhp'] += 50;
$ir['exp_needed'] =
(int) (($ir['level'] + 1) * ($ir['level'] + 1)
* ($ir['level'] + 1) * 2.2);
if( ($ir['level'] % 50) == 0 ) {
$strDbQry = "UPDATE `users` SET `crystals`=`crystals`+1 WHERE `userid`=". $_SESSION['userid'];
$db->query($strDbQry);
}
$db->query(
"UPDATE `users`
SET `level` = `level` + 1, exp = {$expu},
`energy` = `energy` + 2, `brave` = `brave` + 2,
`maxenergy` = `maxenergy` + 2, `maxbrave` = `maxbrave` + 2,
`hp` = `hp` + 50, `maxhp` = `maxhp` + 50
WHERE `userid` = {$userid}");
}
}