Лог боя

CyberVit

Ох*енный шустроган
Старейшина
Репутация
593 / 953
Проблема вот в чем, я пытался разделить лог боя на раунды, т.е. мой удар и удар противника, а после этого разделение линией, вставил в battle.php разделение <hr> получилось примерно вот что
Код:
  $dis_file = file("logs/$bid.dis");
  $dis = explode("
",$dis_file[0]);
  $c = count($dis)-1;
  if($c>30){$nyu = $c; $e = $c-30; $l = 1;}
  else{$nyu = $c; $e = 0; $l = 0;}
    for($i = $nyu;$i >= $e;$i--){
    print "$dis[$i]
";
  print "<hr>";
    }
но оно начало разделать каждый удар.
Что я сделал не правильно, может где-то в другом месте надо ставить это разделение?
Кто сможет помочь?
 
В function hit напиши етот код


Код:
if($bot == 0)
{
    hit_dis($attack,$defend,0,$def_blocked,$hit1,0,$bat_ids);
    if($two_hands)
    {
        hit_dis($attack,$defend,0,$def_blocked2,$hit2,1,$bat_ids);
    }
hit_dis($defend,$attack,0,$att_blocked,$def_hit1,0,$bat_ids);
//---------------------------------------------------------------------------------------
$filename = "logs/".$battle_id.".dis";  
$dis_file=fopen($filename, "a");
fwrite($dis_file,"<hr>");
fclose($dis_file);
//---------------------------------------------------------------------------------------
}
else if($bot == 1)
{
$DEF_QUERY = mysql_query("SELECT * FROM bot_temp WHERE bot_name='$defend' AND battle_id='$battle_id'");
$DEF_DATA = mysql_fetch_array($DEF_QUERY);
if($DEF_DATA["hp"]>0)
{
hit_dis($attack,$defend,1,$def_blocked,$hit1,0,$bat_ids);
}
if($two_hands)
{
    if($DEF_DATA["hp"]>0)
    {
        hit_dis($attack,$defend,1,$def_blocked2,hit2,1,$bat_ids);
    }
}
hit_dis($defend,$attack,2,$att_blocked,$def_hit1,0,$bat_ids);
//---------------------------------------------------------------------------------------
$filename = "logs/".$battle_id.".dis";  
$dis_file=fopen($filename, "a");
fwrite($dis_file,"<hr>");
fclose($dis_file);
//---------------------------------------------------------------------------------------
}



+ кликни СПАСИБО если в чем то помог
 
вроде все норм, но вот в чем загвоздка, в логе боя все работает как часы, но в самом бою разделение идет неправильное, вот смотри:

Был обычный солнечный день... Но когда тени от стрелок часов показали 14:15, Vit, и Бот, накинулись друг на друга, так словно не ели три дня.
14:15 Бот почесал (вырезано цензурой) и увидев это CyberVit пошатнувшись приложил грубый мощнейший удар дубиной в пояс -124 [302/426].
-----------------------------------------------------------------------
14:15 Бот размахнувшись хотел нанести удар мечом в голень, но CyberVit отпрыгнул от удара.
14:16 Бот заблокировал удар дубиной CyberVit в зубы.
-----------------------------------------------------------------------
14:17 CyberVit ковырялся в носу, и увидев это Бот нанес режущий удар в (вырезано цензурой) противника -24 [692/716].

вот такая кухня, разделение смещаеться, как можно это исправить?
это я пока что делал вариант с разделением <hr>, могло бы и прокатить, но в дальнейшем я хочу сделать разделение таблицой и показом зон удара и блока, там такое не прокатит )))
 
В battle.php замени

Код:
  $dis_file = file("logs/$bid.dis");
  $dis = explode("
",$dis_file[0]);
  $c = count($dis)-1;
  if($c>30){$b = $c; $e = $c-30; $l = 1;}
  else{$b = $c; $e = 0; $l = 0;}

на
Код:
$filename = "logs/".$bid.".dis"; 
    $f=file($filename);
    $dis = explode("<hr>",$f[0]);
    $c = count($dis)-1;
    $goster=10; //количество показаний строк
    if($c>$goster){$b = $c; $e = $c-$goster; $l = 1;}
    else{$b = $c; $e = 0; $l = 0;}
    for($i = $b;$i >= $e;$i--)
    {
        echo "<div align=left>".$dis[$i]."[/QUOTE]<hr>";
    }
 
хорошо вот смотри, с этим способом хронология боя будет идти сверху вниз, а не наоборот, это не очень то удобно, надо будет листать вниз лог, что бы посмотреть свой сделанный удар
но если в этой строчке
Код:
$dis = explode("<hr>",$f[0]);
<hr> заменить на
, то все становиться нормально, но тогда с разделением идет какая-то ерунда ((
 
есть у кого-нибудь варианы из-за чего это?
 
Сверху