Jump to content
MakeWebGames

[mccode v2] Nynas Gym Question


jds137
 Share

Recommended Posts

I installed the gym Nyna made a while back, and had a question about it. In my site, when users train in the gym, it takes all their will. But in other games, it does not take all their will. What would cause this? And how do I fix it?

 

<?php

$macropage = "gym2.php";
include "globals.php";
if($ir['alcohol'] > 4)
{
die("You're too drunk to train at the gym. Go to <a href = 'clubrecover.php' />the Recovery Center</a> to sober up.");
}


if($ir['hrepair'] > 0)
{
die("You need to repair your house first before you can access this page. Go <a href = 'burnhouse.php?action=repair' />HERE</a> to repair your house.");
}
if($ir['gympass']== 0)
{
die("You do not have a gym pass,

>[url='passesshop.php']Buy a gym pass[/url]");
}
if($ir['pagetutorials'] == ON)
{
print "
<table width=75% border=3 bordercolor=#BDBDBD cellspacing=0 bgcolor=white frame=border rules=none>
<tr><td width=75><img src=images/flashing_amykhar.gif>
<font color=blue>[i][[url="preferences.php><font"][i]Turn Off[/i]</font>[/url]][/i]</font></center></td><td>[b]Gym:[/b]<font color=#000000 size=2>Inside the Gym you can train you stats, these include: Strength, Agility, Guard, and Labour. You can also choose how much energy to use per each visit to the gym.
</font></td></tr></table>
";
}
global $db, $h, $ir, $userid;

if ($ir['hospital']) 
{ 
echo "

You cannot access the gym while in the hospital</p>";
$h->endpage();
exit;
}


$prefs   = isset($_SESSION['gymprefs']) ? $_SESSION['gymprefs'] : array('what' => "all", 'expend' => "100%");
$what    = $prefs['what'];
$expend  = $prefs['expend'];
$message = false;
$sql     = sprintf("SELECT us.strength, us.agility, us.guard, us.labour, u.energy, u.will, u.prison FROM users u LEFT JOIN userstats us ON (u.userid = us.userid) WHERE (u.userid = %u)", $userid);
$row     = $db->fetch_row($db->query($sql));
$formID  = preg_replace("`^([0-9A-F]{8})([0-9A-F]{4})([0-9A-F]{4})([0-9A-F]{4})([0-9A-F]{12})$`ms", "{\\1-\\2-\\3-\\4-\\5}", strtoupper(md5(serialize(array(session_id(), "Gym", null)))));

if (isset($_POST['formID']) && is_string($_POST['formID']) && ($_POST['formID'] === $formID))
{
$what    = isset($_POST['what']) && is_string($_POST['what']) && preg_match("`^((all)|(strength)|(agility)|(guard)|(labour))$`ims", $_POST['what']) ? strtolower($_POST['what']) : $what;
$expend  = isset($_POST['expend']) && is_string($_POST['expend']) && preg_match("`^((100%)|(75%)|(50%)|(25%)|(value))$`ims", $_POST['expend']) ? strtolower($_POST['expend']) : $expend;
$value   = isset($_POST['value']) && is_string($_POST['value']) && preg_match("`^\d+$`ims", $_POST['value']) ? @intval($_POST['value']) : 0;
$sql     = sprintf("SELECT energy, will FROM users WHERE (userid = %u)", $userid);
$rs      = $db->query($sql);	
$info    = $db->fetch_row($rs);
$energy  = $row['energy'];
$will    = $row['will'];

switch ($expend)
{
	case "100%":	$value = $row['energy'];		break;
	case "75%":		$value = $row['energy'] * 0.75;	break;
	case "50%":		$value = $row['energy'] * 0.50;	break;
	case "25%":		$value = $row['energy'] * 0.25;	break;
	default:										break;
}

$value = floor($value);

if ($value > $row['energy'])
	$message = "<span style='color:blue;'>You don't have enough energy</span>";
else
{
	$prefs = array('what' => $what, 'expend' => $expend);
	$gain  = 0;
	$will  = $row['will'];

	for ($i = 0; $i < $value; $i++)
	{
		$gain += mt_rand(1, 3) / mt_rand(500, 900) * mt_rand(500, 900) * (($will + 10) / 150);
		$will  = max(0, $will - mt_rand(1, 3));
	}

	if ($row['prison'])
		$gain *= 0.5;

	$row['will']    = floor($will);
	$row['energy'] -= $value;

	switch ($what)
	{
		case "all":
			$message = sprintf("<span style='color:blue;'>You gain %s in each stat</span>", number_format($gain * 0.25, 2));
			$row['strength'] += $gain * 0.25;
			$row['agility']  += $gain * 0.25;
			$row['guard']    += $gain * 0.25;
			$row['labour']   += $gain * 0.25;
			break;

		case "strength":
			$message = sprintf("<span style='color:blue;'>You gain %s in strength</span>", number_format($gain, 2));
			$row['strength'] += $gain;
			break;				

		case "agility":
			$message = sprintf("<span style='color:blue;'>You gain %s in agility</span>", number_format($gain, 2));
			$row['agility'] += $gain;
			break;				

		case "guard":
			$message = sprintf("<span style='color:blue;'>You gain %s in guard</span>", number_format($gain, 2));
			$row['guard'] += $gain;
			break;				

		case "labour":
			$message = sprintf("<span style='color:blue;'>You gain %s in labour</span>", number_format($gain, 2));
			$row['labour'] += $gain;
			break;
	}

	$sql1 = sprintf("UPDATE userstats SET strength = %.6f, agility = %.6f, guard = %.6f, labour = %.6f WHERE (userid = %u)", $row['strength'], $row['agility'], $row['guard'], $row['labour'], $userid);
	$sql2 = sprintf("UPDATE users SET will = %u, energy = %d WHERE (userid = %u)", $row['will'], $row['energy'], $userid);

	$db->query($sql1);
	$db->query($sql2);
}				

$_SESSION['gymprefs'] = $prefs;
}

$row['ranks'] = array
(
'strength' => $db->fetch_single($db->query(sprintf("SELECT COUNT(userid) FROM userstats WHERE (strength > %.6f)", $row['strength']))) + 1,
'agility'  => $db->fetch_single($db->query(sprintf("SELECT COUNT(userid) FROM userstats WHERE (agility > %.6f)", $row['agility']))) + 1,
'guard'    => $db->fetch_single($db->query(sprintf("SELECT COUNT(userid) FROM userstats WHERE (guard > %.6f)", $row['guard']))) + 1,
'labour'   => $db->fetch_single($db->query(sprintf("SELECT COUNT(userid) FROM userstats WHERE (labour > %.6f)", $row['labour']))) + 1,
'total'    => $db->fetch_single($db->query(sprintf("SELECT COUNT(userid) FROM userstats WHERE (strength + agility + guard + labour > %.6f)", $row['strength'] + $row['agility'] + $row['guard'] + $row['labour']))) + 1,
);

echo "<style type='text/css'>";
echo "#gym { }";
echo "#gym h3, #gym p { }";
echo "#gym table { width:90%;border-collapse:collapse; }";
echo "#gym th { border:solid 1px  #333;background:#ddedde url(titlebg.gif);padding:3px;color:blue; }";
echo "#gym td { border:solid 1px  #333;padding:3px;color:blue; }";
echo "#gym { }";
echo "</style>";

echo "<div id='gym'>";
echo sprintf("<h3>%sGym</h3>", $ir['prison'] ? "Prison " : "");

if ($message)
echo sprintf("

%s</p>", $message);

echo "<form name='train' id='train' action='gym2.php' method='post' style='padding:0;margin:0;'>";
echo sprintf("<input type='hidden' name='formID' value='%s' />", $formID);
echo "<table cellpadding='0' cellspacing='0'>";
echo "<tr>";
echo "<th class='sub' style='width:50%;'>Train</th>";
echo "<th class='sub' style='width:50%;'>Expend</th>";
echo "</tr>";
echo "<tr>";
echo "<td style='line-height:200%;'>";
echo sprintf("<input type='radio' name='what' id='what0' value='all' %sstyle='vertical-align:middle;' /><label for='what0' style='cursor:pointer;'>All (25%% energy in each) [Rank #%s]</label>
", $what === "all" ? "checked='checked' " : "", number_format($row['ranks']['total']));
echo sprintf("<input type='radio' name='what' id='what1' value='strength' %sstyle='vertical-align:middle;' /><label for='what1' style='cursor:pointer;'>Strength (%s) [Rank #%s]</label>
", $what === "strength" ? "checked='checked' " : "", number_format($row['strength']), number_format($row['ranks']['strength']));
echo sprintf("<input type='radio' name='what' id='what2' value='agility' %sstyle='vertical-align:middle;' /><label for='what2' style='cursor:pointer;'>Agility (%s) [Rank #%s]</label>
", $what === "agility" ? "checked='checked' " : "", number_format($row['agility']), number_format($row['ranks']['agility']));
echo sprintf("<input type='radio' name='what' id='what3' value='guard' %sstyle='vertical-align:middle;' /><label for='what3' style='cursor:pointer;'>Guard (%s) [Rank #%s]</label>
", $what === "guard" ? "checked='checked' " : "", number_format($row['guard']), number_format($row['ranks']['guard']));
echo sprintf("<input type='radio' name='what' id='what4' value='labour' %sstyle='vertical-align:middle;' /><label for='what4' style='cursor:pointer;'>Labour (%s) [Rank #%s]</label>
", $what === "labour" ? "checked='checked' " : "", number_format($row['labour']), number_format($row['ranks']['labour']));
echo "</td>";
echo "<td style='line-height:200%;'>";
echo sprintf("<input type='radio' name='expend' id='expend0' value='100%%' %sstyle='vertical-align:middle;' /><label for='expend0' style='cursor:pointer;'>100%% Energy</label>
", $expend === "100%" ? "checked='checked' " : "");
echo sprintf("<input type='radio' name='expend' id='expend1' value='75%%' %sstyle='vertical-align:middle;' /><label for='expend1' style='cursor:pointer;'>75%% Energy</label>
", $expend === "75%" ? "checked='checked' " : "");
echo sprintf("<input type='radio' name='expend' id='expend2' value='50%%' %sstyle='vertical-align:middle;' /><label for='expend2' style='cursor:pointer;'>50%% Energy</label>
", $expend === "50%" ? "checked='checked' " : "");
echo sprintf("<input type='radio' name='expend' id='expend3' value='25%%' %sstyle='vertical-align:middle;' /><label for='expend3' style='cursor:pointer;'>25%% Energy</label>
", $expend === "25%" ? "checked='checked' " : "");
echo sprintf("<input type='radio' name='expend' id='expend4' value='value' %sstyle='vertical-align:middle;' onclick='document.train.value.focus();' /><label for='expend4' style='cursor:pointer;'><input type='text' id='value' name='value' value='{$row['energy']}' size='8' onfocus='this.select();' /> Energy</label>
", $expend === "value" ? "checked='checked' " : "");//(C)2008,Nyna
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td colspan='2' style='text-align:center;padding:6px;'>";
echo "<input type='submit' name='submit' value='Train' />";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</form>";
echo "</div>";
echo "<p style='color:brown;'>An open-source extension from <a href='http://nyna.co.uk/' style='color:brown;font-variant:small-caps;'>Nyna

Many thanks to Nyna for this mod </a></p>";

$h->endpage();
?>
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...