View file zarnica/.inc/games.php

File size: 19.82Kb
<?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 "&nbsp; <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 />&nbsp;<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 "&nbsp; <img src='$URL/img/menu/15.gif' alt='*' width='16px' /> Восстановить <a href='?atak=rep:$k'>$v[udar_point] здоровья команды</a>";
          if ($v['cost'])
          {
          echo "<br />&nbsp;<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 "&nbsp; <img src='$URL/img/menu/2pere.gif' alt='*' width='16px' /> <a href='?atak=pere:1'>Выкрасть бойца у противника </a>";
        if ($GAME_SET['perecost'])
        {
        echo "<br />&nbsp;<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'];
}    
}
?>