41

Re: Створення боя між персонажами

Проблема вирішена!
Допустив помилку з назвою колонки!

42

Re: Створення боя між персонажами

Привіт всім!
Ніяк не можу дописати функціонал бою до кінця ( якщо два гравця натиснули на кнопку то від життя віднімається сила противника і так до самого кінця поки в одного з гравців не закінчиться життя) Бої то працюють то не працюють, база то обновляється то не обновляється. Я вже годи 5 сиджу і не можу написати то що ви можете написати за 15хв. Підскажіть деж я допустив помилки:
база:

DROP TABLE IF EXISTS `battle`;
CREATE TABLE `battle` (
  `battle_id` int(11) NOT NULL AUTO_INCREMENT, // індекатор боя
  `user1_id` varchar(11) NOT NULL, // логін першого гравця
  `user2_id` varchar(11) NOT NULL, // логін другого гравця
  `battlgo` varchar(11) NOT NULL DEFAULT '1', // якщо 1 то перший гравець не натиснув кнопку (будем чекати поки він натисне кнопку ) якщо 2 то він готовий
  `battlgo2` varchar(11) NOT NULL DEFAULT '1', // якщо 1 то другий гравець не натиснув кнопку (будем чекати поки він натисне кнопку ) якщо 2 то він готовий
  `status` varchar(11) NOT NULL DEFAULT '1', // 1 бій триває а якщо 2 то бій закінчився
  PRIMARY KEY (`battle_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251;

battle.php:

<?php
session_start(); 

include_once ("cone.php");   
mysql_query("SET NAMES 'cp1251' COLLATE 'cp1251_general_ci'");   
 if ($aNickName = $auser2_id) { $a2NickName = $auser1_id; } else { $a2NickName = $auser2_id; $aNickName = $auser1_id;}

$aNickName = $_SESSION['login'];   

$_GET['looc'] = $aRow["location"];

$qy = "SELECT * FROM battle WHERE status='1'";  // виносимо все що є в цій таблиці з статусом 1
$ult = mysql_query($qy) or die("Query failed : " . mysql_error());  
$aYew = mysql_fetch_array( $ult);  
$abattle_id = $aYew["battle_id"]; // индикатор боя
$auser1_id = $aYew["user1_id"];  // нік одного гравця
$auser2_id = $aYew["user2_id"]; // нік другого гравця
$abattlgo = $aYew["battlgo"]; // зробив хід гравець один ???
$abattlgo2 = $aYew["battlgo2"];  // зробив хід гравець два ???
$astatus = $aYew["status"];  // статус боя. (1- бій все ще іде) (2-бій закінчений)

$query = "SELECT * FROM users WHERE login='$aNickName'";  
$result = mysql_query($query) or die("Query failed : " . mysql_error());  
$aRow = mysql_fetch_array( $result);  
$id_user = $aRow["id"]; // виносимо id игрока  
$alogin = $aRow["login"]; // виносимо login игрока  
$loc_user = $aRow["location"]; // остання локація на якій був персонаж
$aStrength = $aRow["Character_Strength"]; //сила персонажа
$adef = $aRow["def"]; //защита персонажа
$aspeed = $aRow["speed"]; //скорость персонажа
$aEndurance = $aRow["Character_Endurance"]; //Выносливость
$aAccuracy = $aRow["Character_Accuracy"]; //Точность перса (влияет на крит.удар)
$aDexterity = $aRow["Character_Dexterity"]; //Ловкость перса (влияет на уворот)
$aCharLevel = $aRow["Character_Level"]; // уровень
$aMoney = $aRow["Character_Money"]; //гроші
$aEuro = $aRow["Character_Euro"];  // золоті монети
$aExperience = $aRow["Character_Experience"]; //опит
$ateder = $aRow["Character_teder"]; 
$ano_teder = $aRow["Character_no_teder"]; //програші
$ayes_teder = $aRow["Character_yes_teder"]; //виграші
$asex = $aRow["sex"]; //стать
$ainf = $aRow["inf"]; //информация
$aEV = $aRow["EV"]; //очки EV
$aintelekt = $aRow["intelekt"]; //інтелект персонажа
$aHP = $aRow["HP"]; // рівень життя
$amaxHP = $aRow["maxHP"]; // Максимальний рівень життя
$aminHP = $aRow["minHP"]; //Мінімальний рівень життя


$qry = "SELECT * FROM users WHERE login='$a2NickName'";  
$res = mysql_query($qry) or die("Query failed : " . mysql_error());  
$aRowi = mysql_fetch_array( $res);  
$id_use2r = $aRowi["id"]; // виносимо id игрока  
$a2login = $aRowi["login"]; // виносимо login игрока  
$loc_user2 = $aRowi["location"]; // остання локація на якій був персонаж
$a2Strength = $aRowi["Character_Strength"]; //сила персонажа
$a2def = $aRowi["def"]; //защита персонажа
$a2speed = $aRowi["speed"]; //скорость персонажа
$a2Endurance = $aRowi["Character_Endurance"]; //Выносливость
$a2Accuracy = $aRowi["Character_Accuracy"]; //Точность перса
$a2Dexterity = $aRowi["Character_Dexterity"]; //Ловкость перса
$a2CharLevel = $aRowi["Character_Level"]; // уровень
$a2Money = $aRowi["Character_Money"]; //гроші
$a2Euro = $aRowi["Character_Euro"];  // золоті монети
$a2Experience = $aRowi["Character_Experience"]; //опыт
$a2teder = $aRowi["Character_teder"]; //ничьих
$a2no_teder = $aRowi["Character_no_teder"]; // програші
$a2yes_teder = $aRowi["Character_yes_teder"]; //виграші
$a2sex = $aRowi["sex"]; //стать
$a2inf = $aRowi["inf"]; //информация
$a2EV = $aRowi["EV"]; //очки EV
$a2intelekt = $aRowi["intelekt"]; //інтелект персонажа
$a2HP = $aRowi["HP"]; // Уровень жизни
$a2maxHP = $aRowi["maxHP"]; // Максимальний уровень жизни
$a2minHP = $aRowi["minHP"]; //Минимальний уровень жизни

      
      
      if(isset($_GET[atak])){  // якщо гравецб нажав на кнопку то обновляєм значення в базі, записуєм що він готовий до атаки
   $myql = mysql_query("UPDATE battle SET battlgo='2' where user1_id='$aNickName' ") or die("Савсэм плохо: " . mysql_error()); 
   $myql2 = mysql_query("UPDATE battle SET battlgo2='2' where user2_id='$aNickName' ") or die("Савсэм плохо: " . mysql_error()); 

   $qy = "SELECT * FROM battle WHERE status='1'";  // обновляєм значення змінних після обновлення бази
$ult = mysql_query($qy) or die("Query failed : " . mysql_error());  
$aYew = mysql_fetch_array( $ult);  
$abattlgo = $aYew["battlgo"]; // зробив хід гравець один ???
$abattlgo2 = $aYew["battlgo2"];  // зробив хід гравець два ???
   }  

   
      if ($abattlgo == "2" and $abattlgo2 == "2" )  { // перевіряємо якщо два гравця зробили хід то віднімаємо від життя гравця силу противника

$sqt = mysql_query("UPDATE users SET `HP`=`HP` - ".$a2Strength." WHERE login='$aNickName' ")  or die("Савсэм плохо: " . mysql_error()); // наносимо урон і обновляєм значення
$sq3t = mysql_query("UPDATE users SET `HP`=`HP` - ".$aStrength." WHERE login='$a2NickName' ")  or die("Савсэм плохо: " . mysql_error()); // наносимо урон і обновляєм значення

$batgo1 = 1;

$queryUPDATEbattlgo = mysql_query("UPDATE battle SET `battlgo`=`battlgo` - ".$batgo1." WHERE user1_id='$aNickName' ")  or die("Савсэм плохо: " . mysql_error()); // змінюємо значення поля з двійки на одиницю
$queryUPDATEbattlgo2 = mysql_query("UPDATE battle SET `battlgo2`=`battlgo2` - ".$batgo1." WHERE user2_id='$a2NickName' ")  or die("Савсэм плохо: " . mysql_error()); // змінюємо значення поля з двійки на одиницю

$qy = "SELECT * FROM battle WHERE status='1'";  // обновляєм значення змінних після обновлення бази
$ult = mysql_query($qy) or die("Query failed : " . mysql_error());  
$aYew = mysql_fetch_array( $ult);  
$abattlgo = $aYew["battlgo"]; // зробив хід гравець один ???
$abattlgo2 = $aYew["battlgo2"];  // зробив хід гравець два ???
     
      }

if ( $aHP > 0 and $a2HP > 0 ) {

// на це не зважаєм уваги! ----
      echo "Гравець 1 зробив хід ".$abattlgo."<br>";
      echo "Гравець 2 зробив хід ".$abattlgo2."<br>";      
      echo "Гравець \$aNickName ".$aNickName."<br>";      
      echo "Гравець \$a2NickName ".$a2NickName."<br>";
//------
      
      
echo '<center><table border=2 bgcolor=#CD853F><tr><td>
<table border=2 bgcolor=#8B7E66 ><tr><td>
  
'. $aNickName.'-'.$aCharLevel.' lvl</td>
</tr>
    <tr><td><IMG SRC="../images/herz.gif" WIDTH=10 HEIGHT=10 ALT="Уровень жизни"> Уровень жизни: '.$aHP.'/'.$amaxHP .'</td></tr>
<tr><td><img src="../images/avatar/'. $asex.'.png">
';

echo "<br><HR>Сила:".$aStrength."<br>";
echo "Защита:".$adef."<br>"; 
echo "Скорость:".$aspeed."<br>"; 
echo "Точность:".$aAccuracy."<br>"; 
echo "Выносливость:".$aEndurance."<br>"; 
echo "Ловкость:".$aDexterity."<HR><br></td></tr></table>"; 
echo "</td><td >";



if ($aNickName == $auser1_id){
if ($abattlgo == 2){} else { echo "<input type='submit'  onclick=location='mapa.php?atak' value='Атака'>"; }
}else{}

if ($aNickName == $auser2_id){
if ($abattlgo2 == 2){} else { echo "<input type='submit'  onclick=location='mapa.php?atak' value='Атака'>"; }
}else{}



echo "</td><td>";
echo '
<table border=2 bgcolor=#8B7E66 ><tr><td>
  
'. $a2NickName.'-'.$a2CharLevel.' lvl</td>
</tr>
    <tr><td><IMG SRC="../images/herz.gif" WIDTH=10 HEIGHT=10 ALT="Уровень жизни"> Уровень жизни: '.$a2HP.'/'.$a2maxHP .'</td></tr>
<tr><td><img src="../images/avatar/'. $asex.'.png">
';

echo "<br>"."<HR>Сила:".$a2Strength."<br>";
echo "Защита:".$a2def."<br>"; 
echo "Скорость:".$a2speed."<br>"; 
echo "Точность:".$a2Accuracy."<br>"; 
echo "Выносливость:".$a2Endurance."<br>"; 
echo "Ловкость:".$a2Dexterity."<HR><br></td></tr></table> ";
echo "</td></tr></table></center>";
} else {
echo "<center>";

if ($aHP <= 0 and $a2HP > 0) { echo "Проиграл ".$aNickName;
$sqt = mysql_query("UPDATE battle SET status='2' where user1_id='$aNickName' ")  or die("Савсэм плохо: " . mysql_error());
 $queryUPDATEbattlgo = mysql_query("UPDATE battle SET battlgo='no' WHERE user1_id='$aNickName' ")  or die("Савсэм плохо: " . mysql_error());
      $queryUPDATEbattlgo2 = mysql_query("UPDATE battle SET battlgo2='no' WHERE user2_id='$a2NickName' ")  or die("Савсэм плохо: " . mysql_error());
      }

if ($aHP <= 0 and $a2HP <= 0) { echo "Ничья! Победитнлей нет.";
$sqt = mysql_query("UPDATE battle SET status='2' where user1_id='$aNickName' ")  or die("Савсэм плохо: " . mysql_error());
 $queryUPDATEbattlgo = mysql_query("UPDATE battle SET battlgo='no' WHERE user1_id='$aNickName' ")  or die("Савсэм плохо: " . mysql_error());
      $queryUPDATEbattlgo2 = mysql_query("UPDATE battle SET battlgo2='no' WHERE user2_id='$a2NickName' ")  or die("Савсэм плохо: " . mysql_error());
echo "<br><img src='../images/clip4423.jpg'>";
      }


if ($a2HP <= 0 and $aHP > 0) { echo "Проиграл ".$a2NickName;
 $sqt = mysql_query("UPDATE battle SET status='2' where user2_id='$a2NickName' ")  or die("Савсэм плохо: " . mysql_error());
 $queryUPDATEbattlgo = mysql_query("UPDATE battle SET battlgo='no' WHERE user1_id='$aNickName' ")  or die("Савсэм плохо: " . mysql_error());
      $queryUPDATEbattlgo2 = mysql_query("UPDATE battle SET battlgo2='no' WHERE user2_id='$a2NickName' ")  or die("Савсэм плохо: " . mysql_error());
      }

echo "</center>";
}
    
  ?>

43

Re: Створення боя між персонажами

Рядок №6

if ($aNickName = $auser2_id)
Подякували: Faraon1

44

Re: Створення боя між персонажами

Invader написав:

Рядок №6

if ($aNickName = $auser2_id)

Дякую, виправив!