Author Topic: Battle system php coding tip needed  (Read 605 times)

Offline blackfang

  • Level 8
  • *
  • Posts: 41
  • Reputation: +0/-0
    • View Profile
    • Kuven Web Development
Battle system php coding tip needed
« on: February 10, 2009, 07:29:28 AM »
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?

Code: [Select]
<?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 && $attacker_health && $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'); ?>
« Last Edit: February 10, 2009, 07:31:53 AM by blackfang »

 


SimplePortal 2.3.3 © 2008-2010, SimplePortal