Привіт,
Є таблиця battle, в ній є поля:
battle_id - user1_id - user2_id - status
коли гравець 1 нападає на гравця 2 то заноситься в цю таблицю інформація
battle_id - user1_id - user2_id - status
1 - гравець який нападає - гравець на якого нападають - ящо 1 то бій ще не закінчиний, якщо 2 то бій закінчився
Коли гравець заходить в ігру ми перевіряємо чи не знаходиться його логін в тіблиці battle з статусом 1
якщо знаходиться то ми напрявляємо його на поле битви.
Але виникла проблема, ігроку який нападає все відображається правельно, а ігроку на якого напали ні, деталі на фото
[img]http://data2.домен агресора/files/share/7_10_2013/ZP1u9AhOhkiyQQoVyJDMUQ.jpg[/img]
[img]http://data2.домен агресора/files/share/7_10_2013/ME6sf2fdgUi9znlZgrftAQ.jpg[/img]
Ось код який за все відповідає
mapa.php
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html style="margin: 0pt; padding: 0pt; height: 100%;" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><<<Игровой мир>>></title>
<link rel="stylesheet" href="../css/mapa.css" type="text/css">
<link rel="icon" type="image/png" href="../images/136482.png">
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script>
<script type="text/javascript">
setTimeout(function(){$('.box').fadeOut('fast')},2000); //1500 = 1.5 секунд
</script>
</head>
<body style="margin: 0pt; padding: 0pt; height: 100%;">
<?php
if (!empty($_SESSION['login'])){}else{header("Location: ../index.php");} //Дивимося логін в сесії, якщо немає то перенаправляємо
$name = $_SESSION['login']; //Призначаємо змінну для сесії
include_once ("cone.php");
mysql_query("SET NAMES 'cp1251' COLLATE 'cp1251_general_ci'");
$_GET['NickName'] = $_SESSION['login'];
$aNickName = $_GET['NickName'];
$_GET['looc'] = $aRow["location"];
$query = "SELECT * FROM users WHERE login='$aNickName'";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
$aRow = mysql_fetch_array( $result);
$alogin = $aRow["login"]; // виносимо login гравця
$loc_user = $aRow["location"]; // остання локація на якій був персонаж
$aStrength = $aRow["Character_Strength"]; //сила персонажа
$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"]; //Мінімальний рівень життя
$battlezayavka = $aRow ["battlezayavka"]; // дивимося чи відправляли гравцю заявку на бій?!
if (isset($_POST['napast'])) { // якщо на гравця напали то ми записуєм дані в таблицю battle
$aNickName2 = $_POST['napast'];
$query = mysql_query ("INSERT INTO battle(`user1_id`,`user2_id`) VALUES ('$aNickName','$aNickName2')") or die (mysql_error());
}
$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-бій закінчений)
if(isset($_GET[loc])){ // функціонал переходу по локаціям (збереження останього переміщеня гравця)
$loc_user = $_GET[loc];
$query = "UPDATE users SET location=$loc_user WHERE id_user=$id_user";
mysql_query($query);
}
// при переході по локаціям обновляється значення $_GET
$sqt = mysql_query("UPDATE users SET location = '".mysql_real_escape_string($_GET['loc'])."' WHERE login='$aNickName' ");
// Тут починаємо писати функціонал для переходу між локаціями
$quer= "SELECT * FROM location WHERE id=$loc_user";
$sql = mysql_query($quer);
$row = mysql_fetch_array($sql);
$id_loc = $row['id'];// виносимо id 1 локации
$code = $row['code'];
$locimg = $row['img'];
if ( $auser1_id || $auser2_id == $aNickName) { // якщо в таблиці battle в полях user1_id або user2_id знаходиться логін гравця то направляємо його на бій
include ("battle.php"); // там знаходиться функціонал битви
}
else {
echo "<div class='panel'><center>Панель</center>
<form method='post' >
<label>Напасть на игрока:</label>
<input type='text' name='napast'/>
<input type='submit' value='Напасть'/>
</form>
</div><br><center>";
echo $row['name'];
echo "<img src='../images/loc/".$locimg."' style='
height: 350px;
width: 450px;
float:left;
-moz-border-radius: 30px;
-webkit-border-radius: 30px;
-khtml-border-radius:30px;
border-radius: 30px 30px 30px 30px;
' >";
echo "<br>".$row['opes']."</center>";
echo "<center>";
echo eval ($code);
echo "</center>";
if (isset($_GET['end'])) {
$sqtfsa = mysql_query("UPDATE users SET battlezayavka = 'no' WHERE login='$aNickName' ");
echo "<center><table border=2 style=' border-color: red green blue yellow; border-style: ridge'>
<tr>
<td>
Вы успешно убежали с поля битви.
</td>
</tr>
<tr>
<td>
<center><a href='mapa.php?looc'>(Закрить)</a></center>
</td>
</tr>
</table></center>";
} else {
if ($battlezayavka == "jes") { // чи подавали заявку на бій гравцю?
echo "<center><table border=2 style=' border-color: red green blue yellow; border-style: ridge'>
<tr>
<td COLSPAN=3>
На вас напали! Что вы будете делать?
</td>
</tr>
<tr>
<td>
<a href='mapa.php?looc'>Сразиться</a>
</td>
<td>
или
</td>
<td>
<a href='mapa.php?looc&end'>Убежать</a>
</td>
</tr>
</table></center>";
}
else
{
if (isset($_GET['pers']))
{ }
else
{
echo "<p><i>Персонажи:</i> ";
echo $row['persona'];
echo $row['persona2'];
echo $row['persona3'];
echo $row['persona4'];
echo $row['persona5']."</p>";
echo "<p><i>Переходы:</i> ".$row['url'];
echo $row['url2'];
echo $row['url3'];
echo $row['url4'];
echo $row['url5'];
echo $row['url6'];
echo $row['url7']."</p>";
}
}
}
}
?>
<a href="battle.php">В бой</a>
</body>
</html>
</html>
battle.php
<?php
include_once ("cone.php");
mysql_query("SET NAMES 'cp1251' COLLATE 'cp1251_general_ci'");
$aNickName = $_SESSION['login'];
$a2NickName = $auser2_id;
$_GET['looc'] = $aRow["location"];
$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])){ // якщо гравець нажав кнопку то записуємо в таблицю battle що гравець зробив хід і чекаємо коли зробить хід противник
$sreqt = mysql_query("UPDATE battle SET battlgo='go' WHERE login='$aNickName' ");
$swrqt = mysql_query("UPDATE battle SET battlgo2='go' WHERE login='$a2NickName' ");
if ($batlgo1 and $batlgo2 == "go") { // перевіряємо якщо два гравця зробили хід то віднімаємо від життя гравця силу противника
$aHP = $aHP - $а2Strength ;
$sqt = mysql_query("UPDATE users SET HP=$aHP WHERE login='$aNickName' ");
$a2HP = $a2HP - $аStrength ;
$sqtу = mysql_query("UPDATE users SET HP=$a2HP WHERE login='$a2NickName' ");
}
else
{}
}
if ( $aHP <= 0 ) { echo "<center>";
echo "<table border=2 bgcolor=#8B2323 ><tr><td>Бій закінчиний!</td></tr>
<tr><td><center><a href='mapa.php?looc'>exit</a></center></td></tr></table></center>";}
else
{
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 ><input type='button' value='Ударить' onClick=location.href='battle.php?atak'> </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.'/100</td></tr>
<tr><td><img src="../images/avatar/men1.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>";
}
?>
там потрібно багато чого виправляти і дописувати, але зараз я стараюся зробити простий бій (коли два гравця нажали на кнопку "ударить" то від їх життя віднімається сила противника). Якщо я щось неправильно написав або погано пояснив проблему прошу мені пробачити.