I had a game earlier but it was all messed up in the codes, so I desided to make it all over,
but I am having trouble with the attack system...
This works, but I feel it could be better...
Any suggestions?
<?php require('header_index.php'); ?>
<?php
if (loggedin($_SESSION['the_username'],$_SESSION['the_password'])) {
function battle_levellength($attacker,$defender)
{
if ($attacker > $defender) { $result = $attacker-$defender; }
if ($result > 15) { return false; }
else { return true; }
}
if (isset($_POST['battle_go'])) {
$target = $_POST['the_target'];
$attacker = $_SESSION['the_attacker'];
if ($target == "") { $message = "<p id=\"error\">The target is missing!</p>"; }
else if ($target == $attacker) { $message = "<p id=\"error\">You can not battle your self!</p>"; }
else if (getuserstats($attacker, "health") === "0") { $message = "<p id=\"error\">You are dead and can not battle!</p>"; }
else if (getuserstats($attacker, "energy") === "0") { $message = "<p id=\"error\">You do not have enough energy!</p>"; }
else if (getuserstats($target, "health") === "0") { $message = "<p id=\"error\">The target is dead!</p>"; }
else if (battle_levellength(getuserstats($attacker, "level"),getuserstats($target, "level")) === false) {
$message = "<p id=\"error\">The target is out of range!</p>";
}
else {
$query = mysql_query("SELECT * FROM `db_users` WHERE `username` = '$target' LIMIT 1") or die(mysql_error());
if (mysql_num_rows($query) > 0) {
$target_level = getuserstats($target,"level");
$target_health = getuserstats($target,"health");
$target_strength = getuserstats($target,"strength");
$target_stamina = getuserstats($target,"stamina");
$target_intellect = getuserstats($target,"intellect");
$target_dextery = getuserstats($target,"dextery");
$target_money = getuserstats($target,"money");
$target_bank = getuserstats($target,"bank");
$target_level = getuserstats($attacker,"level");
$attacker_health = getuserstats($attacker,"health");
$attacker_strength = getuserstats($attacker,"strength");
$attacker_stamina = getuserstats($attacker,"stamina");
$attacker_intellect = getuserstats($attacker,"intellect");
$attacker_dextery = getuserstats($attacker,"dextery");
$attacker_money = getuserstats($attacker,"money");
$attacker_bank = getuserstats($attacker,"bank");
if ($target_level < 2) { $target_level = 2; }
if ($attacker_level < 2) { $attacker_level = 2; }
$cycle = "<table border=\"0\" width=\"100%\">";
$battleon = 1;
while ( $target_health > 0 && $attacker_health > 0 && $battleon > 0) {
$target_damage = ($target_strength-$attacker_stamina)+($target_intellect*1.95);
$attacker_damage = ($attacker_strength-$target_stamina)+($attacker_intellect*1.95);
$target_crit = rand(0,$target_dextery);
$attacker_crit = rand(0,$attacker_dextery);
if ($target_crit > 0) { $target_critical = "($target_crit of CRITICAL damage)"; }
$target_damage = $target_damage+$target_crit;
if ($attacker_crit > 0) { $attacker_critical = "($attacker_crit of CRITICAL damage)"; }
$attacker_damage = $attacker_damage+$attacker_crit;
if ($attacker_damage > $target_damage) {
if ($attacker_damage > 0) {
$cycle .= "<tr><td id=\"row1\">$attacker attacks for ".number_format($attacker_damage)." of damage $attacker_critical</td></tr>";
$target_health -= $attacker_damage;
}
else { $cycle .= "<tr><td id=\"row1\">$attacker missed!</td></tr>"; }
}
else if ($target_damage > $attacker_damage) {
if ($target_damage > 0) {
$cycle .= "<tr><td id=\"row2\">$target attacks for ".number_format($target_damage)." of damage $target_critical</td></tr>";
$attacker_health -= $target_damage;
}
else { $cycle .= "<tr><td id=\"row2\">$target missed!</td></tr>"; }
}
if ($attacker_health < 1) {
$cycle .= "<tr><td>$target won the battle!</td></tr>";
$battleon = 0;
}
else if ($target_health < 1) {
$cycle .= "<tr><td>$attacker won the battle!</td></tr>";
//// STEAL MONEY ////
if ($attacker_intellect > 0) { $stolen_money = round($target_money*2.3/100*rand(1,$attacker_intellect)); }
else { $stolen_money = round($target_money*2.3/100); }
if ($stolen_money > 0) { $cycle .= "<tr><td>$attacker stole $".number_format($stolen_money)." from $target.</td></tr>"; }
else if ($stolen_money < 0) { $stolen_money = 0; }
//// EARN EXPERIENCE ////
$xpearned = round($attacker_level*rand(0,$attacker_intellect));
if ($xpearned > 0) { $cycle .= "<tr><td>$attacker earned ".number_format($xpearned)." points of experience.</td></tr>"; }
else if ($xpearned < 0) { $xpearned = 0; }
$battleon = 0;
}
else if ( ($target_health < 1) && ($attacker_health < 1) ) {
$cycle .= "<tr><td>No win!</td></tr>";
$battleon = 0;
}
}
$cycle .= "</table>";
echo "<fieldset>
<legend><font color=\"white\">Battle against $target</font></legend>";
echo $cycle;
echo "<table align=\"center\"><tr><td>
<form action=\"battle.php\" method=\"post\">
<input type=\"hidden\" value=\"$target\" name=\"battle_target\">
<input type=\"submit\" value=\"Battle again!\" class=\"input1\">
</form>
</td></tr>
</table>";
echo "</fieldset>";
$battle_on = 1;
}
else { $message = "<p id=\"error\">The target does not exist!</p>"; }
}
}
if (!isset($battle_on)) {
echo "<fieldset>
<legend><font color=\"white\">Battle a player</font></legend>
<form method=\"post\">
Target: <input type=\"text\" name=\"battle_user\" value=\"$_REQUEST[battle_target]\" maxlength=\"20\" class=\"input1\"> <br />
<br />
<input type=\"submit\" value=\"Start battle!\" name=\"battle_go\" class=\"input1\">
</form>
$message
</fieldset>";
}
}
else { echo "<p class=\"unauthorized\" align=\"center\">You are not authorized to view the requested page!</p>"; }
?>
<?php require('footer_index.php'); ?>