Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Увеличение опыта игрока на единицу
 
 автор: ---kirill---   (19.02.2006 в 20:46)   письмо автору
 
 

Дайте простой способ, что бы после каждого удачного боя, прибавляло по 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) ;
global 
$nlive;
$nlive $nlive-$pre;
global 
$hod;
$prey rand $udar) ;
global 
$ylive;
$ylive $ylive-$prey;
global 
$hod;
$hod++;  
if (
$nlive <= && $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

   
 
 автор: Drago   (19.02.2006 в 21:15)   письмо автору
 
   для: ---kirill---   (19.02.2006 в 20:46)
 

А вы создайте файл с данными игрока. И заносите туда опыт.

   
 
 автор: ---kirill---   (19.02.2006 в 21:17)   письмо автору
 
   для: Drago   (19.02.2006 в 21:15)
 

Спасибо, надо попробывать.

   
 
 автор: ---kirill---   (21.02.2006 в 18:41)   письмо автору
 
   для: Drago   (19.02.2006 в 21:15)
 

Я только начинаю учить php, тогда объясните пожалуйсто, как именно ввести в файл, что опыт персонажа увеличелся на 1, и потом просмотреть сколько опыта у него?

   
 
 автор: cheops   (21.02.2006 в 21:27)   письмо автору
 
   для: ---kirill---   (21.02.2006 в 18:41)
 

Опыт в какой переменной у вас хранится?

   
 
 автор: ---kirill---   (21.02.2006 в 22:05)   письмо автору
 
   для: cheops   (21.02.2006 в 21:27)
 

Покамись вообще не где, но будет в user[(номер персонажа)][opit].

   
 
 автор: Drago   (21.02.2006 в 23:39)   письмо автору
 
   для: ---kirill---   (21.02.2006 в 22:05)
 

Я так понимаю "user[(номер персонажа)][opit]" это массив? Тогда, ИМХО, вам лучше сразу начать применять серилизацию. (http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=907). Так будет проще добавлять новые параметры.
Суть такая. Распаковываете массив и в месте, где нужно добавить единицу, пишите:

user[(номер персонажа)][opit] += 1;

Затем, если это в течении скрипта, больше повторять не нужно, запаковываете обратно в файл.

   
 
 автор: ---kirill---   (22.02.2006 в 16:32)   письмо автору
 
   для: Drago   (21.02.2006 в 23:39)
 

Как массиву добавить единицу, я знаю, мой вопрос как добавить массиву который в другом файле.

   
 
 автор: Drago   (22.02.2006 в 17:08)   письмо автору
 
   для: ---kirill---   (22.02.2006 в 16:32)
 

Открываете файл, определяете массив, добавляете 1, и записываете обратно в файл.
Посмотрите ссылку, что я писал выше.

   
 
 автор: ---kirill---   (22.02.2006 в 17:51)   письмо автору
 
   для: Drago   (22.02.2006 в 17:08)
 

А почему когда я пишу:

user[(номер персонажа)][opit]

Изображается: Array[opit]
?

   
 
 автор: Drago   (22.02.2006 в 17:57)   письмо автору
 
   для: ---kirill---   (22.02.2006 в 17:51)
 


$user[(номер персонажа)][opit]

Знак $ означает, что это переменная. И я надеюсь, вы номер персоонажа указываете?

   
 
 автор: ---kirill---   (22.02.2006 в 19:54)   письмо автору
 
   для: Drago   (22.02.2006 в 17:57)
 

$ этот знак я ставлю, и номер персонажа пишу(конечно же НЕ $user[(номер персонажа)][opit])

   
 
 автор: ---kirill---   (22.02.2006 в 19:56)   письмо автору
 
   для: Drago   (22.02.2006 в 17:57)
 

И если бы я не писал этого знака, тогда оно бы выводило $user[0][opit], а не array [opit]

   
 
 автор: ---kirill---   (22.02.2006 в 19:56)   письмо автору
 
   для: Drago   (22.02.2006 в 17:57)
 

И если бы я не писал этого знака, тогда оно бы выводило $user[0][opit], а не array [opit]

   
 
 автор: ---kirill---   (22.02.2006 в 19:57)   письмо автору
 
   для: Drago   (22.02.2006 в 17:57)
 

И если бы я не писал этого знака, тогда оно бы выводило $user[0][opit], а не array [opit]

   
 
 автор: cheops   (22.02.2006 в 20:02)   письмо автору
 
   для: ---kirill---   (22.02.2006 в 19:57)
 

А сам элемент $user[0]['opit'] - это скаляр? И нет ли пробела между квадратными скобками?

   
 
 автор: cheops   (22.02.2006 в 19:52)   письмо автору
 
   для: ---kirill---   (22.02.2006 в 17:51)
 

Следует обращаться примерно так $user[$num]['opit'] - у вас так или как то иначе?

   
 
 автор: ---kirill---   (22.02.2006 в 19:59)   письмо автору
 
   для: cheops   (22.02.2006 в 19:52)
 

Спасибо, у меня иначе.

   
 
 автор: ---kirill---   (22.02.2006 в 20:06)   письмо автору
 
   для: cheops   (22.02.2006 в 19:52)
 

Хммм... теперь выводит " Array['opit'] ".

   
 
 автор: cheops   (22.02.2006 в 20:22)   письмо автору
 
   для: ---kirill---   (22.02.2006 в 20:06)
 

А вы его часом не в строке выводите? Если да, то так не получится двумерные массивы не интерполируются.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования