Clan x86

General Forums => Gaming => Blizzard, WoW and Bots => Topic started by: Joe on January 19, 2007, 05:50:01 PM

Title: Experience Calculator
Post by: Joe on January 19, 2007, 05:50:01 PM
http://www.joetheodd.com/random/xp.php

I don't garauntee it to be correct, but of course I'm not coming right out and saying it'll always be wrong, either. As you'll see from my comment at the top, I don't claim full credit.

<?PHP
/*************************
* Mob Level Calculator   *
* Function from WoWWiki  *
* Wrapper by Joe[x86]    *
*************************/
?>

<HTML>
<HEAD>
<TITLE>Experience Calculator</TITLE>
</HEAD>

<BODY>
<?PHP
if (array_key_exists('charLevel', $_POST) && array_key_exists('mobLevel', $_POST))
{
echo("At level " . $_POST['charLevel'] . " you will receive " . calculateXP($_POST['charLevel'], $_POST['mobLevel'], $_POST['elite'], $_POST['rested']) .
" experience from fighting a " . $_POST['mobLevel'] . " mob (elite: " . $_POST['elite'] . ").");
}
?>
<FORM METHOD="POST" ACTION="<?PHP echo($_SERVER['PHP_SELF']); ?>">
<TABLE><TBODY>
<TR><TD>Character Level:</TD> <TD><INPUT NAME="charLevel" TYPE="text" /></TD></TR>
<TR><TD>Mob Level:</TD>       <TD><INPUT NAME="mobLevel"  TYPE="text" /></TD></TR>
<TR><TD>Elite:</TD>           <TD><INPUT NAME="elite"     TYPE="checkbox" /></TD></TR>
<INPUT TYPE="SUBMIT" NAME="Calculate Experience" />
</TBODY></TABLE>
</FORM>
</BODY>
</HTML>

<?PHP

function calculateXP($playerlevel, $moblevel, $elite, $rested = false)
{
if($playerlevel < $moblevel)
{
if($moblevel - $playerlevel > 4)
$moblevel = $playerlevel + 4;
$xp = ($playerlevel * 5 + 45) * (1 + 0.05 * ($moblevel - $playerlevel));
}
elseif($playerlevel == $moblevel)
{
$xp = $playerlevel * 5 + 45;
}
elseif($playerlevel > $moblevel)
{
if($moblevel <= calculateGrayLevel($playerlevel))
$xp = 0;
else
{
if($playerlevel >= 1 && $playerlevel <= 7)
$zd = 5;
elseif($playerlevel >= 8 && $playerlevel <= 9)
$zd = 6;
elseif($playerlevel >= 10 && $playerlevel <= 11)
$zd = 7;
elseif($playerlevel >= 12 && $playerlevel <= 15)
$zd = 8;
elseif($playerlevel >= 16 && $playerlevel <= 19)
$zd = 9;
elseif($playerlevel >= 20 && $playerlevel <= 29)
$zd = 11;
elseif($playerlevel >= 30 && $playerlevel <= 39)
$zd = 12;
elseif($playerlevel >= 40 && $playerlevel <= 44)
$zd = 13;
elseif($playerlevel >= 45 && $playerlevel <= 49)
$zd = 14;
elseif($playerlevel >= 50 && $playerlevel <= 54)
$zd = 15;
elseif($playerlevel >= 55 && $playerlevel <= 59)
$zd = 16;
elseif($playerlevel == 60)
$zd = 17;
$xp = ($playerlevel * 5 + 45) * (1 - ($playerlevel - $moblevel) / $zd);
}
}
if($elite == true)
$xp *= 2;
if($rested == true)
$xp *= 2;
return round($xp);
}

/**
function calculateGrayLevel($playerlevel)
{
if($playerlevel >= 1 && $playerlevel <= 5)
return 0;
elseif($playerlevel >= 6 && $playerlevel <= 39)
return $playerlevel - 5 - floor($playerlevel / 10);
elseif($playerlevel >= 40 && $playerlevel <= 60)
return $playerlevel - 1 - floor($playerlevel / 5);
}
function calculateDifficulty($playerlevel, $moblevel)
{
$leveldiff = $moblevel - $playerlevel;
if($moblevel <= calculateGrayLevel($playerlevel))
return 'Gray';
else
{
if($leveldiff >= 5)
return 'Red';
elseif($leveldiff >= 3 && $leveldiff <= 4)
return 'Orange';
elseif($leveldiff >= -2 && $leveldiff <= 2)
return 'Yello';
elseif($leveldiff <= -3)
return 'Green';
}
}
*/
?>
Title: Re: Experience Calculator
Post by: kalaka on January 28, 2007, 03:15:00 PM
Looks like a good tool. I'm getting this error though:
Fatal error: Call to undefined function calculateGrayLevel() in /home/joe/public_html/xp.php on line 49
Title: Re: Experience Calculator
Post by: Joe on January 28, 2007, 03:37:46 PM
Fixed, I think.
Title: Re: Experience Calculator
Post by: warz on January 28, 2007, 07:31:46 PM
so, the function is from wowwiki, and the html form is yours? i dont think you can claim any credit :p
Title: Re: Experience Calculator
Post by: kalaka on January 29, 2007, 07:15:29 PM
How about you do a number of characters and number of monsters thing, which could be set all at different levels. If you do that a friend of mine could make an add-on, I think
Title: Re: Experience Calculator
Post by: Sidoh on January 29, 2007, 07:30:38 PM
It would be a trivial task (in php, lua (wow addon), javascript, whatever).  I'm pretty sure all of the equations are on wowwiki.
Title: Re: Experience Calculator
Post by: Joe on January 30, 2007, 09:49:51 PM
Quote from: warz on January 28, 2007, 07:31:46 PM
so, the function is from wowwiki, and the html form is yours? i dont think you can claim any credit :p

I had to write PHP to make sure it called the function correctly! :P
Title: Re: Experience Calculator
Post by: ZeroX on February 07, 2007, 12:11:18 AM
QuoteAt level 1 you will receive 120 experience from fighting a 60 mob (elite: on).

How do you figure that?
Title: Re: Experience Calculator
Post by: Blaze on February 07, 2007, 01:24:07 AM
Quote from: ZeroX on February 07, 2007, 12:11:18 AM
QuoteAt level 1 you will receive 120 experience from fighting a 60 mob (elite: on).

How do you figure that?

At level 1 you will receive 120 experience from fighting a 70 mob (elite: on).
Title: Re: Experience Calculator
Post by: Joe on February 07, 2007, 03:40:55 AM
Yeah. You don't get any more benefit from killing a 70 elite than you would a level 6 elite, if you're level 1. Blizzard got tired of you damn power-levelers and reflected it in their algorithm (read the code).

I assure you they actually did that. If you can find a way to aggro a level 60 mob at level 1, tap it, and then have a buddy kill it (without you dying in the process), I assure you that it will give you 120 experience.
Title: Re: Experience Calculator
Post by: Omen on February 08, 2007, 08:54:20 AM
Run with a priest and get shielded when they come near you so there might be a chance he catches the aggo.
Title: Re: Experience Calculator
Post by: Krazed on February 08, 2007, 09:15:39 AM
Any ranged magic creature. Greater Fire/Shadow/Frost/Nature protection potion ftw.
Title: Re: Experience Calculator
Post by: Joe on February 16, 2007, 04:57:51 PM
Quote from: Krazed on February 08, 2007, 09:15:39 AM
Any ranged magic creature. Greater Fire/Shadow/Frost/Nature protection potion ftw.

Requires level 45.

Quote from: Omen on February 08, 2007, 08:54:20 AM
Run with a priest and get shielded when they come near you so there might be a chance he catches the aggo.

Any level 60 elite could bash through Power Word: Shield rank 1 easily. Each rank has a minimum target level.
Title: Re: Experience Calculator
Post by: ZeroX on February 22, 2007, 04:36:32 PM
Quote from: Joex86] link=topic=8444.msg109119#msg109119 date=1171663071]
Quote from: Krazed on February 08, 2007, 09:15:39 AM
Any ranged magic creature. Greater Fire/Shadow/Frost/Nature protection potion ftw.

Requires level 45.

Quote from: Omen on February 08, 2007, 08:54:20 AM
Run with a priest and get shielded when they come near you so there might be a chance he catches the aggo.

Any level 60 elite could bash through Power Word: Shield rank 1 easily. Each rank has a minimum target level.

Roll a mage. Get a warlock to summon you to like the tainted scar or something. Run close to a 60 elite mob and then hit it with your rank 1 bullshit that you get. As he runs towards you have a warrior Charge the dude and there you go you taped him =].
Title: Re: Experience Calculator
Post by: Joe on February 23, 2007, 06:20:30 AM
A level 1 mage would aggro the entire tainted scar from Nethergarde Keep, lol.

By the way, you totally fux0vered your quote. I fixed it for you.