|
|
|
| Дайте простой способ, что бы после каждого удачного боя, прибавляло по 1 опыту,
ну и естественно когда пользователь вернется, опыт останется таким же как и после последнего ухода.
Если надо, вот код:
<form method="get" action="urok9.5.php">
<p>ник:</p>
<input type="text" name="usern">
<br>
<p>пароль:</p>
<input type="password" name="userp">
<br>
<input type="submit" value="послать">
</form>
<?php
$user = array(
array( name=>"kirill",
pas=>24 ),
array( name=>"yurka",
pas=>123 )
);
$num = 0;
?>
<hr noshade>
<?php
if ( $user[$num][name] == $usern && $user[$num][pas] == $userp )
{
?>
<form method="get" action="urok9.5.php?usern=kirill&userp=24">
<input type="submit" value="Сделать ещё бой" name="udar"> <br>
<input type="hidden" name=usern value="kirill">
<input type="hidden" name=userp value="24">
<?php
$nlive = 50;
$ylive = 50;
$hod = 0;
function boy()
{
while ($nlive >= 0)
{
$udar = 1;
$pre = rand ( $udar, 3 ) ;
global $nlive;
$nlive = $nlive-$pre;
global $hod;
$prey = rand ( $udar, 3 ) ;
global $ylive;
$ylive = $ylive-$prey;
global $hod;
$hod++;
if ($nlive <= 0 && $ylive <= 0)
{
print "$hod. <br>Вы ударили противника и сняли $pre жизни.<br>";
print " Вас ударил противник и снял $prey жизни.<br>";
print "У противника осталось $nlive жизней.<br>";
print "У вас осталось $ylive жизней.<br>";
print "ничья<br>";
break;
}
if ($nlive <= 0)
{
print "$hod. <br>Вы ударили противника и сняли $pre жизни.<br>";
print " Вас ударил противник и снял $prey жизни.<br>";
print "У противника осталось $nlive жизней.<br>";
print "У вас осталось $ylive жизней.<br>";
print "Вы выиграли<br>";
break;
}
if ($ylive <= 0)
{
print "$hod. <br>Вы ударили противника и сняли $pre жизни.<br>";
print " Вас ударил противник и снял $prey жизни.<br>";
print "У противника осталось $nlive жизней.<br>";
print "У вас осталось $ylive жизней.<br>";
print "Вы проиграли<br>";
break;
}
print "$hod. <br>Вы ударили противника и сняли $pre жизни.<br>";
print " Вас ударил противник и снял $prey жизни.<br>";
print "У противника осталось $nlive жизней.<br>";
print "У вас осталось $ylive жизней.<br>";
}
}
boy();
?>
<input type="submit" value="Сделать ещё бой" name="udar">
</form>
<?php
}
$num++;
if ( $user[$num][name] == $usern && $user[$num][pas] == $userp )
{
print "hello yurka";
}
?>
| А вот то что выводит на экран:
http://www.uchu-pxp.h16.ru/urok9.5.php?usern=kirill&userp=24 | |
|
|
|
|
|
|
|
для: ---kirill---
(19.02.2006 в 20:46)
| | А вы создайте файл с данными игрока. И заносите туда опыт. | |
|
|
|
|
|
|
|
для: Drago
(19.02.2006 в 21:15)
| | Спасибо, надо попробывать. | |
|
|
|
|
|
|
|
для: Drago
(19.02.2006 в 21:15)
| | Я только начинаю учить php, тогда объясните пожалуйсто, как именно ввести в файл, что опыт персонажа увеличелся на 1, и потом просмотреть сколько опыта у него? | |
|
|
|
|
|
|
|
для: ---kirill---
(21.02.2006 в 18:41)
| | Опыт в какой переменной у вас хранится? | |
|
|
|
|
|
|
|
для: cheops
(21.02.2006 в 21:27)
| | Покамись вообще не где, но будет в user[(номер персонажа)][opit]. | |
|
|
|
|
|
|
|
для: ---kirill---
(21.02.2006 в 22:05)
| | Я так понимаю "user[(номер персонажа)][opit]" это массив? Тогда, ИМХО, вам лучше сразу начать применять серилизацию. (http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=907). Так будет проще добавлять новые параметры.
Суть такая. Распаковываете массив и в месте, где нужно добавить единицу, пишите:
user[(номер персонажа)][opit] += 1;
|
Затем, если это в течении скрипта, больше повторять не нужно, запаковываете обратно в файл. | |
|
|
|
|
|
|
|
для: Drago
(21.02.2006 в 23:39)
| | Как массиву добавить единицу, я знаю, мой вопрос как добавить массиву который в другом файле. | |
|
|
|
|
|
|
|
для: ---kirill---
(22.02.2006 в 16:32)
| | Открываете файл, определяете массив, добавляете 1, и записываете обратно в файл.
Посмотрите ссылку, что я писал выше. | |
|
|
|
|
|
|
|
для: Drago
(22.02.2006 в 17:08)
| | А почему когда я пишу:
user[(номер персонажа)][opit]
|
Изображается: Array[opit]
? | |
|
|
|
|
|
|
|
для: ---kirill---
(22.02.2006 в 17:51)
| |
$user[(номер персонажа)][opit]
|
Знак $ означает, что это переменная. И я надеюсь, вы номер персоонажа указываете? | |
|
|
|
|
|
|
|
для: Drago
(22.02.2006 в 17:57)
| | $ этот знак я ставлю, и номер персонажа пишу(конечно же НЕ $user[(номер персонажа)][opit]) | |
|
|
|
|
|
|
|
для: Drago
(22.02.2006 в 17:57)
| | И если бы я не писал этого знака, тогда оно бы выводило $user[0][opit], а не array [opit] | |
|
|
|
|
|
|
|
для: Drago
(22.02.2006 в 17:57)
| | И если бы я не писал этого знака, тогда оно бы выводило $user[0][opit], а не array [opit] | |
|
|
|
|
|
|
|
для: Drago
(22.02.2006 в 17:57)
| | И если бы я не писал этого знака, тогда оно бы выводило $user[0][opit], а не array [opit] | |
|
|
|
|
|
|
|
для: ---kirill---
(22.02.2006 в 19:57)
| | А сам элемент $user[0]['opit'] - это скаляр? И нет ли пробела между квадратными скобками? | |
|
|
|
|
|
|
|
для: ---kirill---
(22.02.2006 в 17:51)
| | Следует обращаться примерно так $user[$num]['opit'] - у вас так или как то иначе? | |
|
|
|
|
|
|
|
для: cheops
(22.02.2006 в 19:52)
| | Спасибо, у меня иначе. | |
|
|
|
|
|
|
|
для: cheops
(22.02.2006 в 19:52)
| | Хммм... теперь выводит " Array['opit'] ". | |
|
|
|
|
|
|
|
для: ---kirill---
(22.02.2006 в 20:06)
| | А вы его часом не в строке выводите? Если да, то так не получится двумерные массивы не интерполируются. | |
|
|
|