<?php
function md_timediff($xtime)
{
$timediff=$xtime;
$oneMinute=60;
$oneHour=60*60;
$hourfield=floor(($timediff)/$oneHour);
$minutefield=floor(($timediff-$hourfield*$oneHour)/$oneMinute);
$secondfield=floor(($timediff-$hourfield*$oneHour-$minutefield*$oneMinute));
$sHoursLeft=$hourfield;
if ($hourfield)
{
$sHoursText = "часов";
$nHoursLeftLength = strlen($sHoursLeft);
$h_1=substr($sHoursLeft,-1,1);
if (substr($sHoursLeft,-2,1) != 1 && $nHoursLeftLength>1)
{
if ($h_1== 2 || $h_1== 3 || $h_1== 4)
{
$sHoursText = "часа";
}
elseif ($h_1== 1)
{
$sHoursText = "час";
}
}
if ($nHoursLeftLength==1)
{
if ($h_1== 2 || $h_1== 3 || $h_1== 4)
{
$sHoursText = "часа";
}
elseif ($h_1== 1)
{
$sHoursText = "час";
}
}
}else{$sHoursLeft=null; $sHoursText=null;}
if ($minutefield)
{
$sMinsLeft =$minutefield;
$sMinsText = "минут";
$nMinsLeftLength = strlen($sMinsLeft);
$m_1=substr($sMinsLeft,-1,1);
if ($nMinsLeftLength>1 && substr($sMinsLeft,-2,1) != 1)
{
if ($m_1== 2 || $m_1== 3 || $m_1== 4)
{
$sMinsText = "минуты";
}
else if ($m_1== 1)
{
$sMinsText = "минута";
}
}
if ($nMinsLeftLength==1)
{
if ($m_1== 2 || $m_1==3 || $m_1== 4)
{
$sMinsText = "минуты";
}
elseif ($m_1== "1")
{
$sMinsText = "минута";
}
}
}else{$sMinsLeft=null;$sMinsText=null;}
$displaystring="".
$sHoursLeft." ".
$sHoursText." ".
$sMinsLeft." ".
$sMinsText." ".
$secondfield." сек";
if ($timediff<0) $displaystring=null;
return $displaystring;
}
function zarnica_storage($user, $PATH, $URL, $GAME=null)
{
global $sMonet, $db_link;
$PROF=false;
$time=time();
$val_arr = array("money"=>$sMonet[0],"balls"=>"баллов");
if(!$GAME){$GAME = mysql_fetch_array(mysql_query("SELECT * FROM `zarnica` WHERE `stat`='active' LIMIT 1"));}
if ($GAME)
{
$GAME_SET = unserialize(file_get_contents("$PATH/.inc/setup.dat"));//"$PATH/.inc/setup.dat"
// Проверка жизнеспособности комманд
if (($GAME['live_1']<=0 or $GAME['live_2']<=0) && $GAME['stat']=='active')
{
#echo "Вход в условие завершения<br />";
if ($GAME['live_1']<=0 and $GAME['live_2']<=0) // обе команды повержены
{
mysql_query("UPDATE `zarnica` SET `victory`='0', `time_stop`='$time', `stat`='stop' WHERE `stat`='active' AND `id`='$GAME[id]' LIMIT 1");
$log="Игра завершена с результатом НИЧЬЯ! ".mysql_error();
// Отправляем в чат сообщение (лог боя)
mysql_query("INSERT INTO `zarnica_log` SET
`time`='$time',
`kto`='0',
`komu`='0',
`game`='$GAME[id]',
`com`='0',
`post`='".my_esc($log)."'
");
#return $GAME['id'];
}
// Определяем победителя
#echo "Случай победы одной из комманд<br />";
$v_com_num =($GAME['live_1']<=0?'2':'1');
$v_com_ind ="live_$v_com_num";
$v_com_name=($v_com_ind=='live_1'?"[color={$GAME_SET['1color']}] {$GAME_SET['1name']} [/color]":"[color={$GAME_SET['2color']}] {$GAME_SET['2name']} [/color]");
mysql_query("UPDATE `zarnica` SET `victory`='$v_com_num', `time_stop`='$time', `stat`='stop' WHERE `stat`='active' AND `id`='$GAME[id]' LIMIT 1");
//
if (mysql_affected_rows()>0)
{
#echo "Обновление игры выполнено<br />";
// выбор участников победившей команды
$log="Победила команда $v_com_name! ";
$uch=mysql_query("SELECT * FROM `zarnica_prof` WHERE `game`='$GAME[id]' AND `com`='$v_com_num' AND (`udar_point`>'0' OR `popol`>'0' OR `pere`>'0')");
$in="0";
$in_list=null;
if (mysql_num_rows($uch))
{
$i=0;
while($data=mysql_fetch_array($uch))
{
$in.=",$data[user]";
$ank=get_user($data['user']);
if (isset($ank['id']) && $ank['id']>0)
{
$in_list.=($in_list==null?"[url=/info.php?id=$ank[id]] $ank[nick] [/url]":", [url=/info.php?id=$ank[id]] $ank[nick] [/url]");
$i++;
}
}
$log.="Благодаря усилиям ".($i>1?"бойцов":"бойца")." $in_list";
if ($GAME['prize'])
{
$t_val=$GAME['prize_val'];
$t_cost=$GAME['prize'];
mysql_query("UPDATE `user` SET `$t_val`=(`$t_val`+$t_cost) WHERE `id` IN($in)");
$log.=" Каждый участник команды победителя получает приз в виде $t_cost ".$val_arr[$t_val]."! ";
}
}
mysql_query("INSERT INTO `zarnica_log` SET
`time`='$time',
`kto`='21',
`komu`='0',
`game`='$GAME[id]',
`com`='0',
`post`='".my_esc($log)."'
");
$msg="Поздравлям Вы победили в зарнице и получаете приз в виде $t_cost ".$val_arr[$t_val]."! ";
///mysql_query("INSERT INTO `mail` SET `id_user`='0', `id_kont`='$ank[id]', `time`='$time', `msg`='$msg', `read`='0'");
mysql_query("INSERT INTO `mail` (`id_user`, `id_kont`, `msg`, `time`) values('0', '".$ank['id']."', '".$msg."', '".$time."')");
}
//
#return $GAME['id'];
}
//
$PROF = mysql_fetch_array(mysql_query("SELECT * FROM `zarnica_prof` WHERE `user`='$user[id]' LIMIT 1"));
echo '<td>';
// вывод менюшки действий
echo "<div class='main_menu' style='text-align: center;'><a href='$URL'><font color='{$GAME_SET['1color']}'>".output_text($GAME_SET['1name'])."</font> VS <font color='{$GAME_SET['2color']}'>".output_text($GAME_SET['2name'])."</font></a><br />";
$width_1=intval($GAME['live_1']/$GAME['maxlive']*100);
//echo "<div class='mess'>";
echo "<div style='color: ".$GAME_SET['1color'].";text-align: center;'>ツ ".output_text($GAME_SET['1name'])." <img src='/zarnica/img/energy-add.png' width='14'/> $width_1% <img src='/zarnica/img/life-add.png' />($GAME[live_1])</div>";
echo "<div style='position: relative;width: 100%; height: 12px;background-color: ".$GAME_SET['1color'].";'>";
echo "<div style='position: absolute; width: $width_1%; height: 8px; background-image: url($URL/img/menu/1.gif); top: 2px; border-radius: 2px;'></div>";
echo "</div>";
//echo "<div class='mess'>";
$width_2=intval($GAME['live_2']/$GAME['maxlive']*100);
echo "<div style='color: ".$GAME_SET['2color']."; text-align: center;'>ツ".output_text($GAME_SET['2name'])." <img src='/zarnica/img/energy-add.png' width='14'/>$width_2% <img src='/zarnica/img/life-add.png' />($GAME[live_2])</div>";
echo "<div style='position: relative;width: 100%; height: 12px;background-color: ".$GAME_SET['2color'].";'>";
echo "<div style='position: absolute; width: $width_2%; height: 8px; background-image: url($URL/img/menu/2.gif); top: 2px; border-radius: 2px;'></div>";
echo "</div>";
echo "</td>";
echo "</tr>";
echo "</table></div>";
if ($GAME['stat']!='active'){return $GAME['id'];}
// Если профилья нет
if (!$PROF)
{
// создание профиля
if ($user){mysql_query("INSERT INTO `zarnica_prof` SET `user`='$user[id]'");}
return $GAME['id'];
}else{
// если ид игры равен ид игры профиля
if ($PROF['game']==$GAME['id'])
{
$com_my ="live_$PROF[com]"; // Моя команда
$com_prot=($com_my=='live_1'?"live_2":"live_1"); // команда противника
$com_prot_name = ($com_prot=='live_2'?"[color={$GAME_SET['2color']}] {$GAME_SET['2name']} [/color]": "[color={$GAME_SET['1color']}] {$GAME_SET['1name']} [/color]");
$com_my_name=($com_prot=='live_2'?"[color={$GAME_SET['1color']}] {$GAME_SET['1name']} [/color]": "[color={$GAME_SET['2color']}] {$GAME_SET['2name']} [/color]");
// Здесь условие удара
// выводим удары
$UDARS=unserialize(file_get_contents("$PATH/.inc/udar.dat"));
$REP=unserialize(file_get_contents("$PATH/.inc/rep.dat"));
if (isset($_GET['atak']))
{
// Обработка запроса
$ac_a=array("udar"=>true,"rep"=>true,"pere"=>true);
$prefix=null;
$index=null;
$tmp_x=explode(":" ,trim($_GET['atak']));
if (isset($tmp_x[0]) && isset($ac_a[$tmp_x[0]]))
{
$prefix=$tmp_x[0];
}
if (isset($tmp_x[1]))
{
$index=abs(intval($tmp_x[1]));
}
// Исполнение запроса
if ($prefix && $index)
{
// Проверка интервала (если меньше то сброс)
if ($time-$PROF['old_udar']<$GAME['interval']*60){reload("$URL/?", null, "Атаковать можно через ".md_timediff(($GAME['interval']*60)-($time-$PROF['old_udar']) )."! ");}
// Удары
if ($prefix=='udar' && isset($UDARS[$index]))
{
if ($UDARS[$index]['cost'] && $UDARS[$index]['cost']>$user[$UDARS[$index]['val']])
{
reload("$URL/?", null, "Требуется ".$UDARS[$index]['cost']." ".$val_arr[$UDARS[$index]['val']]." для нанесения удара! ");
}
// Массив смерти команды
$KILL=array();
//
$s_udar=$UDARS[$index]['udar_point'];
if ($s_udar>$GAME[$com_prot]){$s_udar=$GAME[$com_prot];}
// Снимаем с комы жизнь
mysql_query("UPDATE `zarnica` SET `$com_prot`=(`$com_prot`-$s_udar) WHERE `id`='$GAME[id]' LIMIT 1");
if (mysql_affected_rows()>0)
{
mset_msg("Вы нанесли $s_udar урона команде ".output_text($com_prot_name)."! ");
$log="$com_prot_name получают ущерб - $s_udar от [url=/info.php?id=$user[id]] [b]$user[nick][/b] [/url] ";
// Отправляем в чат сообщение (лог боя)
mysql_query("INSERT INTO `zarnica_log` SET
`time`='$time',
`kto`='$user[id]',
`komu`='0',
`game`='$GAME[id]',
`com`='$PROF[com]',
`post`='".my_esc($log)."'
");
// обновление профиля бойца
mysql_query("UPDATE `zarnica_prof` SET `udar_point`=(`udar_point`+$s_udar), `udar_point_all`=(`udar_point_all`+$s_udar), `old_udar`='$time' WHERE `user`='$user[id]' LIMIT 1");
if ($UDARS[$index]['cost'] && $UDARS[$index]['cost']<=$user[$UDARS[$index]['val']])
{
// Снимаем с бойца баллы монеты
$t_val=$UDARS[$index]['val'];
$t_cost=$UDARS[$index]['cost'];
mysql_query("UPDATE `user` SET `$t_val`=(`$t_val`-$t_cost) WHERE `id`='$user[id]' LIMIT 1");
mset_msg("Снято с личного счета $t_cost ".$val_arr[$t_val]." ! ");
}
}
reload("$URL/?");
}
// восстановление
if ($prefix=='rep' && isset($REP[$index]) && $GAME_SET['popoln'])
{
if ($REP[$index]['cost'] && $REP[$index]['cost']>$user[$REP[$index]['val']])
{
reload("$URL/?", null, "Требуется ".$REP[$index]['cost']." ".$val_arr[$REP[$index]['val']]." для пополнения жизни! ");
}
$new_live=($GAME[$com_my]+$REP[$index]['udar_point']);
if ($new_live>$GAME['maxlive']){$new_live=$GAME['maxlive'];}
$s_pop=$REP[$index]['udar_point'];
mysql_query("UPDATE `zarnica` SET `$com_my`='$new_live' WHERE `id`='$GAME[id]' LIMIT 1");
if (mysql_affected_rows()>0)
{
$log="[url=/info.php?id=$user[id]] [b]$user[nick][/b] [/url] пополняет жизнь $com_my_name на ".$REP[$index]['udar_point']." пунктов! " ;
mysql_query("INSERT INTO `zarnica_log` SET
`time`='$time',
`kto`='$user[id]',
`komu`='0',
`game`='$GAME[id]',
`com`='$PROF[com]',
`post`='".my_esc($log)."'
");
mset_msg("Вы пополнили жизнь своей команды на ".$REP[$index]['udar_point']." пунктов! ");
if ($REP[$index]['cost'])
{
// Снимаем с бойца баллы монеты
$t_val=$REP[$index]['val'];
$t_cost=$REP[$index]['cost'];
mysql_query("UPDATE `user` SET `$t_val`=(`$t_val`-$t_cost) WHERE `id`='$user[id]' LIMIT 1");
mset_msg("Снято с личного счета $t_cost ".$val_arr[$t_val]." ! ");
}
mysql_query("UPDATE `zarnica_prof` SET `popol`=(`popol`+$s_pop), `popol_all`=(`popol_all`+$s_pop), `old_udar`='$time' WHERE `user`='$user[id]' LIMIT 1");
}
reload("$URL/?");
}
// Кража бойца
if ($prefix=='pere' && $GAME_SET['perehod'])
{
// проверка баланса
if ($GAME_SET['perecost'] && $GAME_SET['perecost']>$user[$GAME_SET['pereval']])
{
reload("$URL/?", null, "Требуется ".$GAME_SET['perecost']." ".$val_arr[$GAME_SET['pereval']]." для кражи игрока! ");
}
// Определить количество бойцов противоположной команды
$count_prot=mysql_result(mysql_query("SELECT COUNT(*) FROM `zarnica_prof` WHERE `game`='$GAME[id]' AND `com`!='$PROF[com]'"), 0);
// Если бое всего один то перетягивать нельзя
if ($count_prot<=1){reload("$URL/?", null, "Кража игрока невозможна! В команде противника всего $count_prot бойцов! ");}
// Иначе ищем профиль
$new_prof=mysql_fetch_array(mysql_query("SELECT * FROM `zarnica_prof` WHERE `game`='$GAME[id]' AND `com`!='$PROF[com]' ORDER BY RAND() LIMIT 1"));
$plus=0;
if ($new_prof)
{
mysql_query("UPDATE `zarnica_prof` SET `com`='$PROF[com]' WHERE `user`='$new_prof[user]' LIMIT 1");
$plus=1;
$ank=userinfo($new_prof['user']);
$log="[url=/info.php?id=$user[id]] [b]$user[nick][/b] [/url] крадет бойца [url=/info.php?id=$ank[id]] $ank[nick] [/url] из команды $com_prot_name в команду $com_my_name! " ;
mysql_query("INSERT INTO `zarnica_log` SET
`time`='$time',
`kto`='$user[id]',
`komu`='0',
`game`='$GAME[id]',
`com`='$PROF[com]',
`post`='".my_esc($log)."'
");
mset_msg("Вы украли в свою команду бойца $ank[nick] из команды ".output_text($com_prot_name)."! ");
if ($GAME_SET['perecost'])
{
$t_val=$GAME_SET['pereval'];
$t_cost=$GAME_SET['perecost'];
mysql_query("UPDATE `user` SET `$t_val`=(`$t_val`-$t_cost) WHERE `id`='$user[id]' LIMIT 1");
mset_msg("Снято с личного счета $t_cost ".$val_arr[$t_val]." ! ");
}
}
// Обновление профиля
mysql_query("UPDATE `zarnica_prof` SET `pere`=(`pere`+$plus), `pere_all`=(`pere_all`+$plus), `old_udar`='$time' WHERE `user`='$user[id]' LIMIT 1");
//
reload("$URL/?");
}
}
//
echo "<table border='1' width='100%'>";
$class='nav1';
if (is_array($UDARS) && count($UDARS))
{
foreach ($UDARS as $k=>$v)
{
echo "<tr class='$class'>";
echo "<td width='50px'>";
echo "<img src='$v[ico]' alt='*' width='50px' />";
echo "</td>";
echo "<td>";
echo " <img src='$URL/img/menu/attack.gif' alt='*' width='16px' /> Атаковать <a href='?atak=udar:$k'>$v[uname] -$v[udar_point] здоровья</a>";
if ($v['cost'])
{
echo "<br /> <img src='$URL/img/menu/money.gif' alt='*' width='16px' /> ".$v['cost']." ".$val_arr[$v['val']];
}
echo "</td>";
echo "</tr>";
$class=($class=='nav1'?'nav2':'nav1');
}
}
// подгрузка восстановления если разрешено
if ($GAME_SET['popoln'] && is_array($REP) && count($REP))
{
foreach ($REP as $k=>$v)
{
echo "<tr class='$class'>";
echo "<td width='50px'>";
echo "<img src='$v[ico]' alt='*' width='50px' />";
echo "</td>";
echo "<td>";
echo " <img src='$URL/img/menu/15.gif' alt='*' width='16px' /> Восстановить <a href='?atak=rep:$k'>$v[udar_point] здоровья команды</a>";
if ($v['cost'])
{
echo "<br /> <img src='$URL/img/menu/money.gif' alt='*' width='16px' /> ".$v['cost']." ".$val_arr[$v['val']];
}
echo "</td>";
echo "</tr>";
$class=($class=='nav1'?'nav2':'nav1');
}
}else{ unset($REP);}
// перетягивание
if ($GAME_SET['perehod'])
{
echo "<tr class='$class'>";
echo "<td width='50px'>";
echo "<img src='$URL/img/menu/pere.gif' alt='*' width='50px' />";
echo "</td>";
echo "<td>";
echo " <img src='$URL/img/menu/2pere.gif' alt='*' width='16px' /> <a href='?atak=pere:1'>Выкрасть бойца у противника </a>";
if ($GAME_SET['perecost'])
{
echo "<br /> <img src='$URL/img/menu/money.gif' alt='*' width='16px' /> ".$GAME_SET['perecost']." ".$val_arr[$GAME_SET['pereval']];
}
echo "</td>";
echo "</tr>";
$class=($class=='nav1'?'nav2':'nav1');
}
//
echo "</table>";
}else{
$send_time=md_timediff(($GAME['interval']*60)-($time-$PROF['old_udar']) );
$t_com_my = " Ваша команда ".output_text($com_my_name)." ";
$t_com_prot = output_text($com_prot_name);
if (!$send_time)
{
echo "<table border='0' width='100%'>";
echo "<tr class='nav1'>";
echo "<td width='50px'>";
//echo "$t_com_my <a class='btn' href='$URL/?atak'>Атаковать $t_com_prot</a> ";
echo "</td>";
}else{
echo "<table border='0' width='100%'>";
echo "<tr class='nav1'>";
echo "<td width='50px'>";
//echo " $t_com_my Ждем еще $send_time";
echo "</td>";
}
}
}else{
// иначе обновляем данные (новая игра)
// сброс если отключена
if (isset($user['zarnica']) && !$user['zarnica']){return $GAME['id'];}
$com=$GAME['nextcom'];
if ($com!=1 && $com!=2){$com=1;}
$nextcom=($com==1?2:1);
// Создаем лог
$t_com_name=($com=='1'?"[color={$GAME_SET['1color']}] {$GAME_SET['1name']} [/color]":"[color={$GAME_SET['2color']}] {$GAME_SET['2name']} [/color]");
$log="[url=/info.php?id=$user[id]] [b]$user[nick][/b] [/url] попадает в команду $t_com_name! " ;
mysql_query("INSERT INTO `zarnica_log` SET
`time`='$time',
`kto`='$user[id]',
`komu`='0',
`game`='$GAME[id]',
`com`='$com',
`post`='".my_esc($log)."'
");
//
$msg="Вы попали в команду ".($com==1?$GAME_SET['1name']:$GAME_SET['2name'])."! [url=$URL?atak]Поддержите свою команду![/url] ";
mysql_query("INSERT INTO `mail` SET `id_user`='0', `id_kont`='$user[id]', `time`='$time', `msg`='$msg', `read`='0'");
mysql_query("UPDATE `zarnica` SET `nextcom`='$nextcom' WHERE `id`='$GAME[id]' LIMIT 1");
mysql_query("UPDATE `zarnica_prof` SET `com`='$com', `game`='$GAME[id]', `game_count`=(`game_count`+1), `udar_point`='0', `popol`='0', `pere`='0' WHERE `user`='$user[id]' LIMIT 1");
return $GAME['id'];
}
}
return $GAME['id'];
}
}
?>