ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Help кто знает
  #1  
Старый 25.04.2006, 17:33
Аватар для bxN5
bxN5
Постоянный
Регистрация: 08.01.2006
Сообщений: 865
Провел на форуме:
3279330

Репутация: 343


Отправить сообщение для bxN5 с помощью ICQ
По умолчанию Help кто знает

Вобщем я ставлю игру (типа БК) 2 Д БРАУЗЕРНАЯ и все норм но когда идет бой персонажей в конце пишетса что проигравший выиграл а опыта оба бойцам 0

Вот что пишет апаче Warning: Division by zero in z:\home\localhost\www\battle.php on line 392

Вот сам скрипт скажите что подправить надо

PHP код:
<?session_start(@$sid);
Error_Reporting(E_ALL & ~E_NOTICE);
include(
"connect.php");
include(
"battle/class_user.php");
include(
"battle/class_battle.php");
$myself=new user;
$opponent=new user;
$kick_opponent=new user;
$battle=new battle;

if(!
$_SESSION[id])
{
echo
"<b>Ошибка:</b> Вам нужно войти в игру с <a href=javascript:top.window.location='index.php'>главной страницы</a>";
exit();
}

if(
$myself->get_info($_SESSION[id])==false)
{
echo
"Ошибка: невозможно получить данные о персонаже, возможно сервер в данный момент перегружен, попробуйте обновить страницу через несколько минут. ";
exit();
}
if(!
$myself->battle_id)
{
Header("Location: home.php");
exit();
}

if(
$battle->get_info($myself->battle_id)==false)
{
echo
"<b>Ошибка:</b> Невозможно получить данные о поединке(возможно сервер в данный момент перегружен), попробуйте обновить страницу через несколько минут. Если ошибка будет повторяться - обратитесь за помощью на <a href=mailto:support@streefight.ru>support@streefight.ru</a>.";
exit();
}
$myself->param();

// **
// **

if(strstr($battle->side1,$_SESSION[id].";"))
{
$myside="side1";
$opp_side="side2";
}
else
{
$myside="side2";
$opp_side="side1";
}

// **
// **

if(!$battle->winner)
{

$a_mass explode(";",$battle->kick_time);

for(
$i=0;$i<=count($a_mass)-2;$i++)
{
$b_mass explode("=",$a_mass[$i]);
if(
time()>($battle->timeout+$b_mass[1]))
{
if(
strstr($battle->side1,$b_mass[0].","))$winner_side="side2";
else 
$winner_side="side1";

$battle->winner=$winner_side;
$battle->finish=Date("Y-m-d H:i:s");
mysql_query("update users set hp='0' where id=".$b_mass[0]);
$battle->put_note("<i>Бой закончен по таймауту...</i>");
}
}

}


if(
$_POST[act]=="kick" and !$battle->winner)
{
if(
$kick_opponent->get_info($_POST[opponent_id])==true)
{
$kick_opponent->param();
for(
$i=1;$i<=5;$i++)
{
if(
$f==$i)$f_true=1;
}

for(
$i=1;$i<=5;$i++)
{
if(
$b==$i)$b_true=1;
}
if(
$f_true==and $b_true==and !$battle->winner and $kick_opponent->hp)
{
$battle->kick($f,$b,$_POST[opponent_id],$opp_side,$myself,$kick_opponent);
$myself->get_info($_SESSION[id]);
$battle->winner();
}
}
}

$action_mass explode(";",$battle->action);
$mass_opponent_unavaible = array();
for(
$i=0;$i<=count($action_mass)-2;$i++)
{
$a_mass explode("(",$action_mass[$i]);
$id_mass explode(":",$a_mass[0]);
$b_mass explode(")",$a_mass[1]);
$kick_mass explode(":",$b_mass[0]);

if(
$id_mass[0]==$_SESSION[id] and $kick_mass[0])$mass_opponent_unavaible[]=$id_mass[1];
elseif(
$id_mass[1]==$_SESSION[id] and $kick_mass[1])$mass_opponent_unavaible[]=$id_mass[0];

}

//: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
//: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

// *****************
// Список игроков
//

$list_side1 = array();
$list_side2 = array();
$players_mass=$battle->side1.$battle->side2;
$players_mass=explode(";",$players_mass);
$players_mass_side1 explode(";",$battle->side1);
$players_mass_side2 explode(";",$battle->side2);
for(
$i=0;$i<=count($players_mass)-2;$i++)
{
if(
$i==0)$query=" id='".$players_mass[$i]."'";
else 
$query=$query." or id='".$players_mass[$i]."'";
}

$res_users mysql_query("select id,login,hp,maxhp from users where ".$query);
$num_users mysql_num_rows($res_users);

for(
$i=1;$i<=$num_users;$i++)
{
$row_users mysql_fetch_array($res_users);
if(
$row_users[hp]>0)
{
if(
$i<=count($players_mass_side1)-1)
{
$list_side1[]="<a style='cursor:hand;font-weight:bold;color:#A0522D'>".$row_users[login]."</a>(".$row_users[hp]."/".$row_users[maxhp].")";
}
else
{
$list_side2[]="<a style='cursor:hand;font-weight:bold;color:#708090'>".$row_users[login]."</a>(".$row_users[hp]."/".$row_users[maxhp].")";
}

}
else
{
$mass_opponent_unavaible[]=$row_users[id];
}
}



function 
list_players($list_side1,$list_side2)
{
if(
$battle->winner!="side2")
{
for(
$i=0;$i<=count($list_side1)-1;$i++)
{
if(
$i!=0)echo", ";
echo 
$list_side1[$i];
}
}
if(
count($list_side1)==or $battle->winner=="side2")echo"<i>[вся команда убита]</i> ";
echo
" против: ";
if(
count($list_side2)==or $battle->winner=="side1")echo"<i>[вся команда убита]</i> ";
if(
$battle->winner!="side1")
{
for(
$i=0;$i<=count($list_side2)-1;$i++)
{
if(
$i!=0)echo", ";
echo 
$list_side2[$i];
}
}
}

//: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
//: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

$mass_opponent = array();
$side_mass explode(";",$battle->$opp_side);

if(
count($mass_opponent_unavaible)==0)
{
for(
$i=0;$i<=count($side_mass)-2;$i++)
{
$mass_opponent[]=$side_mass[$i];
}
}
elseif(
count($mass_opponent_unavaible)>0)
{
for(
$i=0;$i<=count($side_mass)-2;$i++)
{
for(
$i1=0;$i1<=count($mass_opponent_unavaible)-1;$i1++)

if(
$side_mass[$i]==$mass_opponent_unavaible[$i1])$ins=1; }

if(
$ins==1)
{
$ins=0;
}
else

$mass_opponent[]=$side_mass[$i];
}
}
}

// **********
// Одежда
//

if(count($mass_opponent)>and $myself->hp>and !$battle->winner)
{

$opponent_id=rand(0,(count($mass_opponent)-1));
if(
$opponent->get_info($mass_opponent[$opponent_id])==false)
{
echo
"Ошибка: невозможно получить данные о персонаже, возможно сервер в данный момент перегружен, попробуйте обновить страницу через несколько минут. ";
exit();
}

$opponent->param();

}


if(
count($mass_opponent)==0)$kol_opp=1;
else 
$kol_opp=2;

for(
$m=1;$m<=$kol_opp;$m++)
{
$id_bag = array();
$iznos_bag = array();
$present_bag = array();
$dressed_bag = array();

if(
$m==1)
{
$result_bag mysql_query("select owner,id,iznos,srab from bag where owner='".$myself->id."' and dressed='y'");
}
elseif(
$m==2)
{
$result_bag mysql_query("select owner,id,iznos,srab from bag where owner='".$opponent->id."' and dressed='y'");
}

$num_bag mysql_num_rows($result_bag);

for(
$i=1;$i<=$num_bag;$i++)
{
$row_bag mysql_fetch_array($result_bag);
$id_bag[] = $row_bag[id];
$iznos_bag[] = $row_bag[iznos]."/".$row_bag[srab];
}

$bag_found_dressed=0;
for(
$i=0;$i<=count($id_bag)-1;$i++)
{

if(
$i==0)$query_it=" id='".$id_bag[$i]."'";
else 
$query $query_it." or id='".$id_bag[$i]."'";
$bag_found_dressed+=1;
}

if(
$bag_found_dressed>0)
{
$result_item mysql_query("select otdel,name,sname,hp from items where ".$query_it."");
$num_item mysql_num_rows($result_item);

for(
$i=0;$i<=$num_item-1;$i++)
{
$row_item mysql_fetch_array($result_item);

if(
$row_item[otdel]>and $row_item[otdel]<6)$th="w5";
elseif(
$row_item[otdel]==6)$th="w8";
elseif(
$row_item[otdel]==7)$th="w14";
elseif(
$row_item[otdel]>and $row_item[otdel]<11)$th="w4";
elseif(
$row_item[otdel]==11)$th="w1";
elseif(
$row_item[otdel]==12)$th="w15";
elseif(
$row_item[otdel]==13)$th="w7";
elseif(
$row_item[otdel]==14)$th="w6";
elseif(
$row_item[otdel]==15)$th="w3";
elseif(
$row_item[otdel]==16)$th="w2";
elseif(
$row_item[otdel]==17)$th="w9";

if(
$m==1)
{
$w_mass_myself[]=$row_item[sname]."-".$row_item[name]."-".$row_item[hp]."-".$iznos_bag[$i]."-".$th;
}
elseif(
$m==2)
{
$w_mass_opponent[]=$row_item[sname]."-".$row_item[name]."-".$row_item[hp]."-".$iznos_bag[$i]."-".$th;
}
}
}
}



function 
dress($dress,$w_mass)
{
$mass_i=-1;

for(
$i=0;$i<=count($w_mass)-1;$i++)
{
if(
strstr($w_mass[$i],$dress))$mass_i=$i;
}

if(
$mass_i>=0)
{
$row_w_mass=explode("-",$w_mass[$mass_i]);
echo
"<img src='img/w/".$row_w_mass[0].".gif' border=0 alt='".$row_w_mass[1]."\n(".$row_w_mass[3].")\n";
if(
$w_mass[$mass_i][2])echo"Уровень жизни: + ".$row_w_mass[2]."";
echo
"'>";
}
else
{
echo 
"<img src='img/w/".$dress.".gif' border=0 alt='Пустой слот'>";
}
}


// 
// Одежда
// ***********




echo"<html>\n<head>\n<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=windows-1251'>\n<link rel=stylesheet href=index.css>\n
</head>\n<body bgcolor=#F0E68C>\n
<script language=javascript>
var inf='';
function lifeline(login,level,klan,now,max){
var grn_life_pr=(now*100)/max;
var grn_life_width=(grn_life_pr*160)/100;
var red_life_width=160-grn_life_width;
document.write('<table border=0 cellspacing=0 cellpadding=0><tr><td>');
if(klan)document.write('<a href=\"/information/klan/info.php?klan='+klan+'\"><img src=\"/img/klan/'+klan+'.gif\" border=0></a>');
document.write('<b>'+login+'</b>['+level+']<a href=\"/info.php?login='+login+'\" target=_blank><img src=/img/inf.gif border=0></a></td></tr><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td><img src=/img/grn_life.gif width='+grn_life_width+' height=10></td><td><img src=/img/red_life.gif width='+red_life_width+' height=10></td><td align=right>'+now+'/'+max+'</td></tr></table></td></tr></table>');
}
</script>
<center>

<table border=0 width=95% cellspacing=0 cellpadding=0>
<tr>
<td width=227 valign=top>
<br>
<script language=javascript>lifeline(\""
.$myself->login."\",\"".$myself->level."\",\"".$myself->klan."\",\"".$myself->hp."\",\"".$myself->maxhp."\");</script>
<table border='1' width='227' bordercolor=#dfd78f cellpadding=1 bordercolordark='#000000' bordercolorlight='#000000'>
<tr>
<td width='60' height='219' align='left' valign='top' ><p style='border-collapse:collapse;'>"
;dress('w1',$w_mass_myself);dress('w5',$w_mass_myself);dress('w4',$w_mass_myself);dress('w7',$w_mass_myself);echo"</p>
</td>
<td width='92' height='219' align='center' valign='middle' ><p style='border-collapse:collapse;' align='center'><img src='img/icons/"
.$myself->icon.".gif' border='0' alt='".$row[login]."'></p>
</td>
<td width='61' height='219' align='right' valign='bottom' ><p style='border-collapse:collapse;'>"
;dress('w3',$w_mass_myself);dress('w2',$w_mass_myself);dress('w6',$w_mass_myself);dress('w14',$w_mass_myself);dress('w15',$w_mass_myself);echo"<br>";dress('w9',$w_mass_myself);dress('w10',$w_mass_myself);dress('w11',$w_mass_myself);dress('w8',$w_mass_myself);echo"<br></p>
</td>
</tr>
</table>

<br>
Удар: "
.$myself->u." <br>\nГибкость: ".$myself->g."<br>\nЛогика: $myself->l <br>\nЗдоровье: $myself->z
<br><br>
</td>
<td valign=top>
<br>"
;
if(
$battle->winner and $myself->battle_id==$battle->id)
{
echo
"<center><span style='color:darkred;font-weight:bold'>Бой закончен!</span><br>";


$hp_mass explode(";",$battle->hp);
for(
$i=0;$i<=count($hp_mass)-2;$i++)
{
$myhp_array explode("=",$hp_mass[$i]);
if(
$myhp_array[0]==$_SESSION[id])$myhp=$myhp_array[1];
}

if(
$battle->winner==$myside)
{
$result_exp mysql_query("select base_exp from exptable where level='".$myself->level."' LIMIT 1");
$row_exp mysql_fetch_array($result_exp);
if(
$myself->level<3)
{
$exp round($myhp/$row_exp[base_exp]);
}
else

$exp round(($myhp/$row_exp[base_exp])*2);
}
$sec_query ",victory=victory+1 "392 ЛИНИЯ 
}
else
{
$exp=0;
$sec_query ",lose=lose+1 "
}

if(
$exp>0)
{
$plus_ups=0;
$plus_golds=0;
$result_exptable mysql_query("select * from exptable where id>$myself->num_up and exp<=$myself->exp+$exp");
$num_exptable mysql_num_rows($result_exptable);
for(
$i=1;$i<=$num_exptable;$i++)
{
$row_exptable mysql_fetch_array($result_exptable);
$new_level=$row_exptable[level];
$plus_ups+=$row_exptable[ups];
$plus_golds+=$row_exptable[golds];
$num_up=$row_exptable[id];
}
if(!
$new_level)$new_level=$myself->level;
if(!
$num_up)$num_up=$myself->num_up;
$new_exp $myself->exp+$exp;
mysql_query("update users set level='".$new_level."',ups=ups+$plus_ups, money=money+$plus_golds,battle_id=0,exp='".$new_exp."',num_up='".$num_up."'".$sec_query." where id='".$myself->id."'");
}
else
{
mysql_query("update users set battle_id=0".$sec_query." where id='".$myself->id."'");
}

echo
"Всего вами нанесено: ".$myhp." HP. ";
echo
"Получено опыта: ".$exp.".<br>";
echo
"<input type=button value='вернуться' onclick='location.href=\"battle.php\"'></center>";
}
elseif(
$myself->hp<=0)
{
echo
"<center><span style='color:darkred;font-weight:bold'>Вы убиты. Ждите окончания поединка!</span><br><input type=button value='обновить' onclick='location.href=\"battle.php\"'></center>";
}
elseif(!
$opponent->id)
{
echo
"<center><span style='font-weight:bold'>Ожидаем хода соперника</span><br><input type=button value='обновить' onclick='location.href=\"battle.php\"'></center>\n";
}
else
{

echo
"<form action=battle.php method=post>
<input type=hidden name=act value=kick>
<input type=hidden name=opponent_id value="
.$opponent->id.">
<center>
<table border=0 width=230 cellspacing=1 cellpadding=0 height=20>
<tr><td width=100 bgcolor=#BDB76B style='color:#000000;font-weight:bold' align=center>Удар</td>
<td width=130 bgcolor=#BDB76B style='color:#000000;font-weight:bold' align=center>Блок</td>
</tr><tr><td>
<input type=radio name=f value=1>&nbspв голову<br>
<input type=radio name=f value=2>&nbspв грудь<br>
<input type=radio name=f value=3>&nbspв живот<br>
<input type=radio name=f value=4>&nbspв пояс<br>
<input type=radio name=f value=5>&nbspв ноги<br>
</td><td><input type=radio name=b value=1>&nbspголова и грудь<br>
<input type=radio name=b value=2>&nbspгрудь и живот<br>
<input type=radio name=b value=3>&nbspживот и пояс<br>
<input type=radio name=b value=4>&nbspпояса и ног<br>
<input type=radio name=b value=5>&nbspголовы и ног<br>
</td></tr><tr><td colspan=2 align=center><input type=submit value='нанести Удар'></td></tr>
</table></form> 
</center>
"
;
}

echo
"<hr size=1 color=gray>&nbsp";

list_players($list_side1,$list_side2);

echo
"<hr size=1 color=#000000>
<center><b>Комментарий к бою:</b>
<table border=0 width=90%><tr><td width=100%><br>"
;

if(
$battle->winner)
{
echo
"&nbspПобеда за <b>";
$winner_side=$battle->winner;
$winners_mass explode(";",$battle->$winner_side);
for(
$i=0;$i<=count($winners_mass)-2;$i++)
{
if(
$i==0)$query=" id='".$winners_mass[$i]."'"
else 
$query=$query." or id='".$winners_mass[$i]."'";
}
$res_users mysql_query("select login from users where ".$query);
$num_users mysql_num_rows($res_users);
for(
$i=1;$i<=$num_users;$i++)
{
$row_users mysql_fetch_array($res_users);
echo 
$row_users[login];
if(
$i!=$num_users)echo",";
else echo
".";
}
echo
"</b><br><hr size=1 color=darkred>";
}

$file file("battle/log/log.dat");
$count count($file);

$col 0;
for(
$i=$count-1;$i>=0;$i--)
{
$row explode("|",$file[$i]);
if(
$row[0]==$battle->id)
{
if(
$col>20)$more=1;
if(
$col<=20 and $row[2])
{
$col+=1;
echo
"<u>".$row[1]."</u> ".$row[2]."<br>\n";
}
}
}

if(
$more==1)
{
echo
"<br><small>Записи наблюдателя были обрезаны для ускорения загрузки страницы, полностью записи вы можите увидеть <a href='log.php?id=".$battle->id."' target=_blank><b><small>здесь »</small></b></a></small>";
}
echo
"</td></tr></table>

</td><td width=227 valign=top><br>"
;

if(!
$opponent->id)
{
echo
"<img src=battle/kol.jpg>";
}
else
{
echo
"<script language=javascript>lifeline(\"".$opponent->login."\",\"".$opponent->level."\",\"".$opponent->klan."\",\"".$opponent->hp."\",\"".$opponent->maxhp."\");</script>

<table border='1' width='227' bordercolor=#dfd78f cellpadding=1 bordercolordark='#000000' bordercolorlight='#000000'>
<tr>
<td width='60' height='219' align='left' valign='top' ><p style='border-collapse:collapse;'>"
;dress('w1',$w_mass_opponent);dress('w5',$w_mass_opponent);dress('w4',$w_mass_opponent);dress('w7',$w_mass_opponent);echo"</p>
</td>
<td width='92' height='219' align='center' valign='middle' ><p style='border-collapse:collapse;' align='center'><img src='img/icons/"
.$opponent->icon.".gif' border='0' alt='".$opponent->login."'></p>
</td>
<td width='61' height='219' align='right' valign='bottom' ><p style='border-collapse:collapse;'>"
;dress('w3',$w_mass_opponent);dress('w2',$w_mass_opponent);dress('w6',$w_mass_opponent);dress('w14',$w_mass_opponent);dress('w15',$w_mass_opponent);echo"<br>";dress('w9',$w_mass_opponent);dress('w10',$w_mass_opponent);dress('w11',$w_mass_opponent);dress('w8',$w_mass_opponent);echo"<br></p>
</td>
</tr>
</table>

<br>
Удар: "
.$opponent->u." <br>\nГибкость: ".$opponent->g."<br>\nЛогика: ".$opponent->l." <br>\nЗдоровье: ".$opponent->z;
}
echo
"
</td></tr>
</table> 
</body>"
;

$battle->write();
?>

Вот скриншот
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цыкл "submit" тем кто java знает (-=util=-) С/С++, C#, Delphi, .NET, Asm 10 28.08.2009 11:07
может знает кто этих людей seeattact Болталка 7 21.03.2006 19:09
Кто что знает про php.spb.ru чат, пишите сюда! ntking Чаты 38 03.09.2005 11:48
кто знает какуюнибуть бaгу в Voodoo Chat????? RedPepper Чаты 9 01.04.2005 14:07
Есть чат, кто о нем что знает? Cnhfyybr Чаты 11 30.12.2004 02:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ