Update stats automatically Add-On
In newreply.php and newthread.php, between
PHP Code:
// End Itemshop code by Mewtwo and Battle Code by Bitsys
and
PHP Code:
// send email to moderators
in both files, place the following code:
PHP Code:
//begin auto-update stats add-on for the RPG Integration Hack by Bitsys
$userinbattle = $DB_site->query_first("SELECT inbattle FROM user WHERE userid='$bbuserinfo[userid]'");
if ($userinbattle[inbattle] == 0) {
//$debugmessage .= "You must be out of a battle in order to update your stats. Please exit or complete battle $userinbattle[inbattle] and try again.";
//exit;
$userstats = $DB_site->query_first("SELECT hp, maxhp, element, ma, maxma, pp, maxpp, ap, posts, xp FROM user WHERE userid='$bbuserinfo[userid]'");
$hp = $userstats[hp];
$maxhp = $userstats[maxhp];
$ele = $userstats[element];
$ma = $userstats[ma];
$maxma = $userstats[maxma];
$pp = $userstats[pp];
$maxpp = $userstats[maxpp];
$ap = $userstats[ap];
$posts = $userstats[posts];
$debugmessage .= "HP: $hp | MaxHP: $maxhp | Element: $ele | MA: $ma | MaxMA: $maxma | PP: $pp | MaxPP: $maxpp | AP: $ap | Posts: $posts<br>\n";
$jointime = (time() - $bbuserinfo[joindate]) / 86400;
if ($jointime < 1) {
$postsperday = "$posts";
} else {
$postsperday = sprintf("%.2f",($posts / $jointime));
}
$debugmessage .= "Jointime: $jointime<br>\n";
$battleopt = $DB_site->query_first("SELECT * FROM battle_options");
$level = getlevel($userstats[xp], $battleopt[exprate], 1);
$ep = floor (100 * ($level - floor ($level)));
$showlevel = floor ($level + 1);
$debugmessage .= "Level: $level | Showlevel: $showlevel<br>\n";
$hpmulti =round ($postsperday / 4, 1);
if ($hpmulti > 7.5)
$hpmulti = 3;
if ($hpmulti > 2.5)
$hpmulti = 1.5;
if ($hpmulti < 1)
$hpmulti = 1;
$debugmessage .= "HPMulti: $hpmulti<br>\n";
$element = $DB_site->query_first("SELECT * FROM rpg_element WHERE elementid='$ele'");
$hpmodifier = $element[hp];
$mamodifier = $element[ma];
$ppmodifier = $element[pp];
$apmodifier = $element[ap];
$debugmessage .= "HPmodifier: $hpmodifier | MAmodifier: $mamodifier | PPmodifier: $ppmodifier | APmodifier: $apmodifier<br>\n";
$elename = $element[name];
$maxhpupdate = ( $level * $battleopt[hpmodifier] * $hpmulti) + $hpmodifier;
$maxhpupdate= floor ($maxhpupdate);
$maxmaupdate = $mamodifier + ($jointime * $level * $battleopt[mamodifier]) / 5;
$maxmaupdate = floor ($maxmaupdate);
$maxppupdate = $ppmodifier + ($jointime * $level * $battleopt[ppmodifier]) / 3;
$maxppupdate = floor ($maxppupdate);
If ($maxhpupdate < 0)
$maxhpupdate = 0;
If ($maxmaupdate < 0)
$maxmaupdate = 0;
If ($maxppupdate < 0)
$maxppupdate = 0;
If ($apmodifier < 0)
$apmodifier = 0;
If ($maxhp != 0 && $maxhpupdate != 0)
$newhp = $hp * ($maxhpupdate / $maxhp);
else
$newhp = $maxhpupdate;
If ($maxma != 0 && $maxmaupdate != 0)
$newma = $ma * ($maxmaupdate / $maxma);
else
$newma = $maxmaupdate;
If ($maxpp != 0 && $maxppupdate != 0)
$newpp = $pp * ($maxppupdate / $maxpp);
else
$newpp = $maxppupdate;
$debugmessage .= "MaxHPupdate: $maxhpupdate | MaxMAupdate: $maxmaupdate | MaxPPupdate: $maxppupdate<br>\n";
$debugmessage .= "NewHP: $newhp | NewMA: $newma | NewPP: $newpp<br>\n";
$DB_site->query("UPDATE user SET maxhp='$maxhpupdate', hp='$newhp', maxma='$maxmaupdate', ma='$newma', maxpp='$maxppupdate', pp='$newpp' WHERE userid='$bbuserinfo[userid]'");
$debugmessage .= "Stats Updated.";
} else {
$debugmessage .= "You are in Battle.";
}
//end auto-update stats add-on for the RPG Integration Hack by Bitsys
Note that if you have modified the update stats code before, then you will have to modify it again in both of these files. Also, this code will NOT update the user's AP (anger percentage). It will remain the same.