2018-01-28 16:40:49 +00:00
< ? php
2018-02-13 18:43:24 +00:00
/**
* Copyright ( c ) 2018.
* Author : Igor Barkov < lopar . 4 ever @ gmail . com >
* Project name : Battles - Game
*/
2018-01-28 16:40:49 +00:00
/* cron file */
//error_reporting(E_ALL);
//ini_set("display_errors", 1);
/*
//Считываем текущее время
$mtime = microtime ();
//Разделяем секунды и миллисекунды
$mtime = explode ( " " , $mtime );
//Составляем одно число из секунд и миллисекунд
$mtime = $mtime [ 1 ] + $mtime [ 0 ];
//Записываем стартовое время в переменную
$tstart = $mtime ; */
die ();
session_start ();
include ( 'config.php' );
include " functions.php " ;
$tm = time ();
/// чистим логи
if ( date ( " H-i " ) == " 03-00 " )
{
$del_tm = time () - 60 * 60 * 24 * 7 ;
$us_lim = mysql_fetch_array ( mysql_query ( " SELECT `id` FROM `battle` WHERE `to1`<' { $del_tm } ' ORDER BY to1 DESC LIMIT 1; " ));
$us_lim = $us_lim [ 'id' ];
mysql_query ( " DELETE FROM `logs` WHERE `id`<' { $us_lim } '; " );
mysql_query ( " DELETE FROM `battle` WHERE `id`<' { $us_lim } '; " );
$del_tm = time () - 60 * 60 * 24 * 60 ;
mysql_query ( " DELETE FROM `delo` WHERE `date`<' " . $del_tm . " '; " );
mysql_query ( " OPTIMIZE `logs`,`battle`,`delo`; " );
}
if ( date ( " H-i " ) == " 06-00 " )
{
//обнуляем способности
$abil = array ( " 0 " => " 1 " , " 1 " => " 1 " , " 2 " => " 2 " );
mysql_query ( " UPDATE `users` SET `abil`=' " . serialize ( $abil ) . " ' WHERE `align`='2' OR `align`='8.31'; " );
$abil = array ( " 0 " => " 3 " , " 1 " => " 0 " , " 2 " => " 0 " );
mysql_query ( " UPDATE `users` SET `abil`=' " . serialize ( $abil ) . " ' WHERE `level`='7' AND `align`='6'; " );
$abil = array ( " 0 " => " 3 " , " 1 " => " 2 " , " 2 " => " 0 " );
mysql_query ( " UPDATE `users` SET `abil`=' " . serialize ( $abil ) . " ' WHERE `level`='8' AND `align`='6'; " );
$abil = array ( " 0 " => " 3 " , " 1 " => " 2 " , " 2 " => " 1 " );
mysql_query ( " UPDATE `users` SET `abil`=' " . serialize ( $abil ) . " ' WHERE `level`>='9' AND `align`='6'; " );
for ( $i = 0 ; $i < 10 ; $i ++ ) $abil [ $i ] = 9 ;
mysql_query ( " UPDATE `users` SET `abil`=' " . serialize ( $abil ) . " ' WHERE `align`>'7' AND `align`<'8'; " );
//обнуляем диггеров
mysql_query ( " UPDATE digger SET count_dig='0',count_guard='0'; " );
//обнуляем подарки
mysql_query ( " UPDATE `users` SET `podarokAD`='0'; " );
//обнуляем реферала месяца
if ( date ( " d " ) == " 01 " )
{
mysql_query ( " UPDATE variables SET value=' { $tm } ' WHERE var='ref_month'; " );
mysql_query ( " UPDATE variables SET value='0' WHERE var='ref_m_id'; " );
}
//обнуляем реферала недели
if ( date ( " N " ) == " 7 " )
{
mysql_query ( " UPDATE variables SET value=' { $tm } ' WHERE var='ref_week'; " );
mysql_query ( " UPDATE variables SET value='0' WHERE var='ref_w_id'; " );
}
//обнуляем парк
mysql_query ( " UPDATE `cit_park` SET `counter`=0,`bots`='',`room`=0; " );
//задаем рейд на замок
$cc_time = $tm + rand ( 60 * 60 * 14 , 60 * 60 * 14.5 );
mysql_query ( " UPDATE variables SET value=' { $cc_time } ' where var='cc_time'; " );
}
if ( date ( " H-i " ) == " 09-00 " )
{
//задаем рейд на ЦХ - 10-11
$ch_time = $tm + rand ( 60 * 60 * 1 , 60 * 60 * 2 );
mysql_query ( " UPDATE variables SET value=' { $ch_time } ' where var='cit_haos_time'; " );
}
//задаем рейд утром
if ( date ( " H-i " ) == " 10-00 " )
{
//задаем рейд на город
$raid_time = $tm + rand ( 60 * 60 * 1.5 , 60 * 60 * 2.5 );
mysql_query ( " UPDATE variables SET value=' { $raid_time } ' where var='raid_on_city'; " );
}
if ( date ( " H-i " ) == " 20-00 " )
{
//задаем рейд на ЦХ - 21-22
$ch_time = $tm + rand ( 60 * 60 * 1 , 60 * 60 * 2 );
mysql_query ( " UPDATE variables SET value=' { $ch_time } ' where var='cit_haos_time'; " );
}
//берем дату и время Замка Мэра
if ( date ( " z-H-i " ) == date ( " z-H-i " , $c_castle [ 'value' ]))
{
$c_castle = mysql_query ( " SELECT `value` FROM variables WHERE var='cc_time' LIMIT 1; " );
// AddChatSystem('<font color=red>Начинается прием заявок на владение Замком Мэра! Начало боя через 15 минут.</font>');
}
//кто нападает
$cca = $c_castle [ 'value' ] + 930 ;
if ( date ( " z-H-i " ) == date ( " z-H-i " , $cca ))
{
$cc_own = mysql_fetch_array ( mysql_query ( " SELECT `value` FROM variables WHERE var='castle_owner' LIMIT 1; " ));
$cc_k = mysql_fetch_array ( mysql_query ( " SELECT `name` FROM `clans` WHERE `id` = ' { $cc_own [ 'value' ] } ' LIMIT 1; " ));
$cc_att = mysql_fetch_array ( mysql_query ( " SELECT `value` FROM variables WHERE var='castle_att' LIMIT 1; " ));
$cc_a = mysql_fetch_array ( mysql_query ( " SELECT `name` FROM `clans` WHERE `id` = ' { $cc_att [ 'value' ] } ' LIMIT 1; " ));
if ( $cc_own [ 'value' ] > 0 && $cc_att [ 'value' ] > 0 ) { AddChatSystem ( '<font color=red><strong>Клан <img title="' . $cc_a [ 'name' ] . '" src="i/klan/' . $cc_a [ 'name' ] . '.gif">' . $cc_a [ 'name' ] . '</strong> готовится к битве за Замок Мэра с <strong>кланом <img title="' . $cc_k [ 'name' ] . '" src="i/klan/' . $cc_k [ 'name' ] . '.gif">' . $cc_k [ 'name' ] . '</strong>! Начало боя через 1 минуту!</font>' );}
elseif ( $cc_own [ 'value' ] > 0 && $cc_att [ 'value' ] == 0 ) { AddChatSystem ( '<font color=red>Никто не осмелился оспорить права <strong>клана <img title="' . $cc_a [ 'name' ] . '" src="i/klan/' . $cc_a [ 'name' ] . '.gif">' . $cc_a [ 'name' ] . '</strong> на Замок Мэра</font>' );}
elseif ( $cc_own [ 'value' ] == 0 && $cc_att [ 'value' ] > 0 ) { AddChatSystem ( '<font color=red><strong>Клан <img title="' . $cc_k [ 'name' ] . '" src="i/klan/' . $cc_k [ 'name' ] . '.gif">' . $cc_k [ 'name' ] . '</strong> готовится к битве за Замок Мэра с <strong>силами Х а о с а </strong>! Начало боя через 1 минуту!</font>' );}
elseif ( $cc_own [ 'value' ] == 0 && $cc_att [ 'value' ] == 0 ) { AddChatSystem ( '<font color=red>Никто не осмелился отбить у <strong>сил Х а о с а </strong> Замок Мэра</font>' );}
}
//берем дату-время рейда
$raid_t = mysql_fetch_array ( mysql_query ( " SELECT * FROM variables WHERE var='raid_on_city' limit 1; " ));
$ch_t = mysql_fetch_array ( mysql_query ( " SELECT * FROM `variables` WHERE `var` = 'cit_haos_time' LIMIT 1; " ));
//берем дату-время ЦХ
$raid_r = date ( " r " , $raid_t [ 'value' ]);
$ch_r = date ( " r " , $ch_r [ 'value' ]);
$zay_dub = mysql_fetch_array ( mysql_query ( " SELECT * FROM zayavka WHERE `team1` LIKE '1000%' limit 1; " ));
//рейд на город
if ( date ( " H-i " ) == date ( " H-i " , $raid_t [ 'value' ]) && ! $zay_dub [ 'id' ] > 0 )
{
mysql_query ( " UPDATE variables SET value='2' where var='raid_on_status'; " );
}
//рейд на ЦХ
if ( date ( " z-H-i " ) == date ( " z-H-i " , $ch_t [ 'value' ]))
{
mysql_query ( " DELETE FROM `cit_haos_status`; " );
mysql_query ( " DELETE FROM `cit_haos_var`; " );
// AddChatSystem('<font color=red>Начинается прием заявок в рейд на Цитадель Х а о с а ! Начало рейда через 15 минут.</font>');
}
// hp operations
//комплекты - костыль
$komp_users = mysql_query ( " SELECT * FROM `users`,`online` WHERE `users`.`id`=`online`.`id` AND `online`.`date` >= " . ( time () - 60 ) . " ; " );
while ( $ku = mysql_fetch_array ( $komp_users ))
{
$kompl_raw = mysql_query ( " SELECT * FROM inventory where owner= " . $ku [ 'id' ] . " AND dressed=1 " );
$items_on_user = array ();
$set_id_wear = array ();
$kompl_ghp = 0 ;
$kompl_gmana = 0 ;
while ( $kompl = mysql_fetch_array ( $kompl_raw ))
{
$items_on_user [] = $kompl [ 'prototype' ];
};
$sets_raw = mysql_query ( " SELECT * FROM item_sets; " );
while ( $set_items = mysql_fetch_array ( $sets_raw ))
{
$kompl_full = 1 ;
$in_set = explode ( ',' , $set_items [ 'prot_id' ]);
foreach ( $in_set as $tmp_set )
if ( ! in_array ( $tmp_set , $items_on_user ))
{ $kompl_full = 0 ;}
if ( $kompl_full == 1 ) $set_id_wear [] = $set_items [ 'set_id' ];
};
foreach ( $set_id_wear as $s )
{
$items_raw = mysql_fetch_array ( mysql_query ( " SELECT `ghp`,`gmana` FROM item_sets where set_id=' { $s } ' limit 1; " ));
$kompl_ghp += $items_raw [ 'ghp' ];
$kompl_gmana += $items_raw [ 'gmana' ];
};
if ( ! $kompl_ghp ) $kompl_ghp = 0 ;
if ( ! $kompl_gmana ) $kompl_gmana = 0 ;
mysql_query ( " UPDATE `users` SET `maxhp` = (IFNULL((SELECT SUM(`ghp`) FROM `inventory` WHERE dressed=1 AND owner = `users`.id),0) + (users.vinos*6)+' { $kompl_ghp } ') WHERE `id`=' { $ku [ 'id' ] } '; " );
mysql_query ( " UPDATE `users` SET `maxmana` = (IFNULL((SELECT SUM(`gmp`) FROM `inventory` WHERE dressed=1 AND owner = `users`.id),0) + (users.mudra*10)+' { $kompl_gmana } ') WHERE `id`=' { $ku [ 'id' ] } '; " );
}
//комплекты *
//mysql_query("UPDATE `users` SET `maxmana` = (IFNULL((SELECT SUM(`gmp`) FROM `inventory` WHERE dressed=1 AND owner = `users`.id),0) + (users.mudra*10));");
mysql_query ( " UPDATE `users` SET `hp` = '0' WHERE `hp` < '0' " );
mysql_query ( " UPDATE `users` SET `mana` = '0' WHERE `mana` < '0' " );
// ломаем шмот
$its = mysql_query ( " SELECT `id`,`owner`,`name` FROM `inventory` WHERE `dressed` = 0 AND ((`maxdur` <= `duration`) OR (`dategoden` > 0 AND `dategoden` <= ' " . time () . " ')); " );
while ( $it = mysql_fetch_array ( $its ))
{
//destructitem($it['id']);
mysql_query ( " DELETE FROM `inventory` WHERE `id` = ' " . $it [ 'id' ] . " ' LIMIT 1; " );
mysql_query ( " INSERT INTO `delo` (`id` , `author` ,`pers`, `text`, `type`, `date`) VALUES ('','0',' \" " . $it [ 'name' ] . " \" разрушился id:(cap " . $it [ 'id' ] . " ).',1,' " . time () . " '); " );
}
// травмы и х а о с
$effs = mysql_query ( " SELECT * FROM `effects` WHERE `time` <= " . time () . " ; " );
mysql_query ( " DELETE FROM `effects` WHERE `time` <= " . time () . " ; " );
while ( $eff = mysql_fetch_array ( $effs )) {
switch ( $eff [ 'type' ])
{
case 11 :
mysql_query ( " UPDATE `users` SET `sila`=`sila`+' " . $eff [ 'sila' ] . " ', `lovk`=`lovk`+' " . $eff [ 'lovk' ] . " ', `inta`=`inta`+' " . $eff [ 'inta' ] . " ' WHERE `id` = ' " . $eff [ 'owner' ] . " ' LIMIT 1; " );
//deltravma($eff['id']);
break ;
case 12 :
mysql_query ( " UPDATE `users` SET `sila`=`sila`+' " . $eff [ 'sila' ] . " ', `lovk`=`lovk`+' " . $eff [ 'lovk' ] . " ', `inta`=`inta`+' " . $eff [ 'inta' ] . " ' WHERE `id` = ' " . $eff [ 'owner' ] . " ' LIMIT 1; " );
break ;
case 13 :
mysql_query ( " UPDATE `users` SET `sila`=`sila`+' " . $eff [ 'sila' ] . " ', `lovk`=`lovk`+' " . $eff [ 'lovk' ] . " ', `inta`=`inta`+' " . $eff [ 'inta' ] . " ' WHERE `id` = ' " . $eff [ 'owner' ] . " ' LIMIT 1; " );
break ;
case 14 :
mysql_query ( " UPDATE `users` SET `sila`=`sila`+' " . $eff [ 'sila' ] . " ', `lovk`=`lovk`+' " . $eff [ 'lovk' ] . " ', `inta`=`inta`+' " . $eff [ 'inta' ] . " ' WHERE `id` = ' " . $eff [ 'owner' ] . " ' LIMIT 1; " );
break ;
case 21 :
mysql_query ( " UPDATE `users` SET `sila`=`sila`-' " . $eff [ 'sila' ] . " ', `lovk`=`lovk`-' " . $eff [ 'lovk' ] . " ', `inta`=`inta`-' " . $eff [ 'inta' ] . " ', `vinos`=`vinos`-' " . $eff [ 'vinos' ] . " ' WHERE `id` = ' " . $eff [ 'owner' ] . " ' LIMIT 1; " );
break ;
case 4 :
mysql_query ( " UPDATE `users` SET `align`='0' WHERE `id` = ' " . $eff [ 'owner' ] . " ' LIMIT 1; " );
break ;
}
}
$data = mysql_query ( " SELECT `id`, `fullhptime` FROM `users` WHERE `hp` < `maxhp` AND `battle` = 0; " );
while ( $user = mysql_fetch_array ( $data )) {
if (( time () - $user [ 1 ]) / 60 > 0 )
{
mysql_query ( " UPDATE `users` SET `hp` = `hp`+(( " . time () . " -`fullhptime`)/60)*(`maxhp`/20), `fullhptime` = " . time () . " WHERE `hp` < `maxhp` AND `id` = ' " . $user [ 0 ] . " ' LIMIT 1; " );
}
}
$data = mysql_query ( " SELECT `id`, `fullmptime` FROM `users` WHERE `mana` < `maxmana` AND `battle` = 0; " );
while ( $user = mysql_fetch_array ( $data )) {
if (( time () - $user [ 1 ]) / 60 > 0 && $user [ 1 ])
{
mysql_query ( " UPDATE `users` SET `mana` = `mana`+(( " . time () . " -`fullmptime`)/60)*(`maxmana`/30), `fullmptime` = ' " . time () . " ' WHERE `id` = ' " . $user [ 0 ] . " ' LIMIT 1; " );
}
}
mysql_query ( " UPDATE `users` SET `hp` = `maxhp`, `fullhptime` = " . time () . " WHERE `hp` > `maxhp` AND `battle` = 0; " );
mysql_query ( " UPDATE `users` SET `mana` = `maxmana`, `fullmptime` = " . time () . " WHERE (`mana` > `maxmana` OR `fullmptime` = 0) AND `battle` = 0; " );
//start Haos Match - disabled
$hm_ok = array ();
/* $hm_ongoing = mysql_fetch_array ( mysql_query ( " SELECT `value` FROM `variables` WHERE `var`='haos_match'; " ));
$hm_ongoing = unserialize ( $hm_ongoing [ 'value' ]);
if ( $hm_ongoing )
foreach ( $hm_ongoing as $lvl => $hm )
{
$check_win = mysql_fetch_array ( mysql_query ( " SELECT `win` FROM `battle` WHERE `id`=' { $hm } ' LIMIT 1; " ));
if ( empty ( $check_win ) || $check_win [ 'win' ] == 1 || $check_win [ 'win' ] == 2 || $check_win [ 'win' ] == 0 ) $hm_ok [ $lvl ] = 1 ;
else $hm_ok [ $lvl ] = 0 ;
}
else */
{
$hm_ok [ '7' ] = 1 ;
$hm_ok [ '8' ] = 1 ;
$hm_ok [ '9' ] = 1 ;
$hm_ok [ '10' ] = 1 ;
$hm_ok [ '11' ] = 1 ;
$hm_ok [ '12' ] = 1 ;
}
/* echo ( " <pre> " );
print_r ( $hm_ok );
echo ( " </pre> " ); */
if ( date ( " i " ) % 20 == 0 ) //%15==0
{
$haos_match = array ();
foreach ( $hm_ok as $lvl => $flag )
if ( $flag == 1 )
{
mysql_query ( " INSERT INTO `zayavka`
( `start` , `timeout` , `t1c` , `t2c` , `type` , `level` , `coment` , `team1` , `stavka` , `t1min` , `t2min` , `t1max` , `t2max` , `podan` , `blood` ) values
( " .(time()+5*60). " , 5 , 50 , 50 , 2 , 4 , 'Бой с силами Х а о с а {$lvl}' , '1001;' , '' , 49 ,{ $lvl }, 50 , { $lvl }, '".date("H:i")."' , '0' ); " );
$haos_match [ $lvl ] = mysql_insert_id ();
}
mysql_query ( " UPDATE `variables` SET `value`=' " . serialize ( $haos_match ) . " ' WHERE `var`='haos_match_zay'; " );
//AddChatSystem('<font color=red>Силы Х а о с а вызывают бойцов клуба 7-12 уровней на поединок! Начало боя через 5 минут в групповых боях </font>');
}
//////Запускаем ХАОТИК
$xaot_time = mysql_fetch_assoc ( mysql_query ( " select * from `variables` where `var`='xaot_create' LIMIT 1 " ));
if ( $xaot_time [ 'value' ] < time ()){
mysql_query ( " INSERT INTO `zayavka` (`start`, `timeout`, `t1c`, `t2c`, `type`, `level`, `coment`, `team1`, `stavka`, `t1min`, `t2min`, `t1max`, `t2max`,`podan`,`blood`) values ( " . ( time () + 10 * 60 ) . " ,3,99,99,3,5,'Хаотический бой 6-10','2897;','',6,6, 10, 10, ' " . date ( " H:i " ) . " ', '0'); " );
$times = time () + 900 ;
mysql_query ( " update `variables` set `value`=' " . $times . " ' where `var`='xaot_create' " );
}
//15 минут до старта БС
$turnirstart = mysql_fetch_array ( mysql_query ( " SELECT `value`,`bs_art` FROM `variables` WHERE `var` = 'startbs' LIMIT 1; " ));
$turnirstart [ 'value' ] -= 900 ;
if ( date ( " z-H-i " ) == date ( " z-H-i " , $turnirstart [ 'value' ]))
if ( $turnirstart [ 'bs_art' ] == 0 ){
AddChatSystem ( '<font color=red>Приглашаем всех желающих на турнир в Башню Смерти! Турнир начинается через 15 минут</font>' );
} elseif ( $turnirstart [ 'bs_art' ] == 1 ){
2018-02-13 18:43:24 +00:00
AddChatSystem ( '<font color=red>Приглашаем всех желающих на турнир в <img src=../i/artefact1.gif><font color=blue><b>Артовую</b></font> Башню Смерти! Турнир начинается через 15 минут</font>' );
2018-01-28 16:40:49 +00:00
}
// hp operations
#mysql_query("UPDATE `users` SET `maxhp` = (IFNULL((SELECT SUM(`ghp`) FROM `inventory` WHERE dressed=1 AND owner = `users`.id),0) + (users.vinos*6));");
#mysql_query("UPDATE `users` SET `maxmana` = (IFNULL((SELECT SUM(`gmp`) FROM `inventory` WHERE dressed=1 AND owner = `users`.id),0) + (users.mudra*10));");
#mysql_query("UPDATE `users` SET `hp` = '0' WHERE `hp` < '0' ");
#mysql_query("UPDATE `users` SET `mana` = '0' WHERE `mana` < '0' ");
// ломаем шмот
// $its = mysql_query("SELECT `id`,`owner`,`name` FROM `inventory` WHERE `dressed` = 0 AND ((`maxdur` <= `duration`) OR (`dategoden` > 0 AND `dategoden` <= '".time()."'));");
// while($it = mysql_fetch_array($its))
// {
//destructitem($it['id']);
#mysql_query("DELETE FROM `inventory` WHERE `id` = '".$it['id']."' LIMIT 1;");
#mysql_query("INSERT INTO `delo` (`id` , `author` ,`pers`, `text`, `type`, `date`) VALUES ('','0','\"".$it['name']."\" разрушился id:(cap".$it['id'].").',1,'".time()."');");
// }
// $data = mysql_query("SELECT `id`, `fullhptime` FROM `users` WHERE `hp` < `maxhp` AND `battle` = 0;");
// while($user = mysql_fetch_array($data)) {
// if ((time()-$user[1])/60 > 0)
// {
#mysql_query("UPDATE `users` SET `hp` = `hp`+((".time()."-`fullhptime`)/60)*(`maxhp`/20), `fullhptime` = ".time()." WHERE `hp` < `maxhp` AND `id` = '".$user[0]."' LIMIT 1;");
// }
// }
// $data = mysql_query("SELECT `id`, `fullmptime` FROM `users` WHERE `mana` < `maxmana` AND `battle` = 0;");
// while($user = mysql_fetch_array($data)) {
// if ((time()-$user[1])/60 > 0 && $user[1])
// {
#mysql_query("UPDATE `users` SET `mana` = `mana`+((".time()."-`fullmptime`)/60)*(`maxmana`/30), `fullmptime` = '".time()."' WHERE `id` = '".$user[0]."' LIMIT 1;");
// }
// }
#mysql_query("UPDATE `users` SET `hp` = `maxhp`, `fullhptime` = ".time()." WHERE `hp` > `maxhp` AND `battle` = 0;");
#mysql_query("UPDATE `users` SET `mana` = `maxmana`, `fullmptime` = ".time()." WHERE (`mana` > `maxmana` OR `fullmptime` = 0) AND `battle` = 0;");
// start BS
/* $tr = mysql_fetch_array ( mysql_query ( " SELECT * FROM `deztow_turnir` WHERE `active` = TRUE " ));
$turnirstart = mysql_fetch_array ( mysql_query ( " SELECT `value`,`bs_art` FROM `variables` WHERE `var` = 'startbs' LIMIT 1; " ));
$dd = mysql_fetch_array ( mysql_query ( " SELECT count(`kredit`) FROM `deztow_stavka`; " ));
echo $turnirstart [ 0 ] . $dd [ 0 ];
if ( $dd [ 0 ] < 2 && $turnirstart [ 0 ] <= time ()) {
if ( $turnirstart [ 'bs_art' ] == 1 ){
$bs_art = 0 ;
} elseif ( $turnirstart [ 'bs_art' ] == 0 ){
$bs_art = 1 ;
}
mysql_query ( 'UPDATE `variables` SET `value` = \'' . ( time () + 60 * 60 ) . '\',`bs_art`=' " . $bs_art .' " WHERE `var` = \ 'startbs\';' );
echo " no " ;
mysql_query ( " INSERT INTO `deztow_stavka` (`owner`,`kredit`,`time`) values ('1254','30',' " . time () . " ' ); " );
}
if ( ! $tr && $turnirstart [ 0 ] <= time () && $dd [ 0 ] >= 2 ){
echo " ok " ;
// начинаем БС
//mysql_query("LOCK TABLES `shop` WRITE, `deztow_items` WRITE, `deztow_realchars` WRITE, `deztow_charstams` WRITE, `deztow_eff` WRITE, `deztow_gamers_inv` WRITE,`effects` WRITE, `deztow_turnir` WRITE, `deztow_stavka` WRITE, `users` WRITE, `inventory` WRITE, `online` WRITE;");
$minroom = 501 ;
$maxroom = 560 ;
// вычисляем кто прошел в турнир
$data = mysql_query ( " SELECT dt.owner FROM `deztow_stavka` as dt, `online` as o WHERE (SELECT count(`id`) FROM `effects` WHERE `effects`.`owner` = dt.owner AND ( type=11 OR type=12 OR type=13 OR type=14 OR type=2 OR type=3 OR type=4 OR type=202 OR type=201 OR type=21)) = 0 AND o.id = dt.owner AND room = 31 AND o.`date` >= ' " . ( time () - 300 ) . " ' ORDER by `kredit` DESC, dt.`time` ASC LIMIT 40; " );
$stavka = mysql_fetch_array ( mysql_query ( " SELECT SUM(`kredit`)*0.7 FROM `deztow_stavka`; " ));
// удаляем сразу, чтоб другим не повадно было
if ( $data ) {
mysql_query ( " TRUNCATE TABLE `deztow_stavka`; " );
mysql_query ( " TRUNCATE TABLE `deztow_gamers_inv`; " );
}
while ( $row = mysql_fetch_array ( $data )) {
// делаем каждому чару бекап в базу специальную, раздеваем и все такое
undressall ( $row [ 0 ]); // раздели
$shmot = mysql_query ( " SELECT * FROM `inventory` WHERE `owner` = ' " . $row [ 0 ] . " '; " ); // бекапим весь шмот
mysql_query ( " UPDATE `inventory` SET `owner` = 0 WHERE `owner` = ' " . $row [ 0 ] . " '; " );
while ( $sh = mysql_fetch_array ( $shmot )) {
mysql_query ( " INSERT `deztow_gamers_inv` (`id_item`,`owner`) values (' " . $sh [ 0 ] . " ',' " . $row [ 0 ] . " '); " );
}
// effects
$effs = mysql_query ( " SELECT * FROM `effects` WHERE `owner` = ' " . $row [ 0 ] . " '; " ); // бекапим ефекты
while ( $eff = mysql_fetch_array ( $effs )) {
mysql_query ( " INSERT `deztow_eff` (`type`, `name`, `time`, `sila`, `lovk`, `inta`, `vinos`, `owner`)
values ( '".$eff[1]."' , '".$eff[2]."' , '".$eff[3]."' , '".$eff[4]."' , '".$eff[5]."' , '".$eff[6]."' , '".$eff[7]."' , '".$eff[8]."' ); " );
//deltravma($eff['id']);
}
mysql_query ( " DELETE FROM `effects` WHERE `owner` = ' " . $row [ 0 ] . " '; " );
// stats
$tec = mysql_fetch_array ( mysql_query ( " SELECT * FROM `deztow_charstams` WHERE `owner` = ' { $row [ 0 ] } ' AND `def`='1'; " ));
if ( $tec [ 0 ] && $row [ 0 ] != 233 ) {
// умелки
$u = mysql_fetch_array ( mysql_query ( " SELECT * FROM `users` WHERE `id` = ' { $row [ 0 ] } ' LIMIT 1; " ));
$master = ( $u [ 'noj' ] + $u [ 'mec' ] + $u [ 'topor' ] + $u [ 'dubina' ] + $u [ 'mfire' ] + $u [ 'mwater' ] + $u [ 'mair' ] + $u [ 'mearth' ] + $u [ 'mlight' ] + $u [ 'mgray' ] + $u [ 'mdark' ] + $u [ 'master' ]);
// если есть шаблон - меняем
mysql_query ( " INSERT `deztow_realchars` (`owner`,`name`,`sila`,`lovk`,`inta`,`vinos`,`intel`,`mudra`,`stats`,`nextup`,`level`,`master`) values
( '".$u[' id ']."' , '".$u[' login ']."' , '".$u[' sila ']."' , '".$u[' lovk ']."' , '".$u[' inta ']."' , '".$u[' vinos ']."' , '".$u[' intel ']."' ,
'".$u[' mudra ']."' , '".$u[' stats ']."' , '".$u[' nextup ']."' , '".$u[' level ']."' , '".$master."' ); " );
//создали запись, теперь выставляем статы))
$stats = ( $u [ 'sila' ] + $u [ 'lovk' ] + $u [ 'inta' ] + $u [ 'vinos' ] + $u [ 'intel' ] + $u [ 'mudra' ] + $u [ 'stats' ]) -
( $t [ 'sila' ] + $t [ 'lovk' ] + $t [ 'inta' ] + $t [ 'vinos' ] + $t [ 'intel' ] + $t [ 'mudra' ]);
if (( int ) $stats != 0 ) {
$fffff = fopen ( '/tmp/bs_s.dat' , 'a' );
// $tec['sila']=$u['sila']; $tec['lovk']=$u['lovk']; $tec['$inta']=$u['inta'];
// $tec['vinos']=$u['vinos']; $tec['intel']=$u['intel']; $tec['mudra']=$u['mudra'];
fwrite ( $fffff , print_r ( $u ) . " \n " );
fwrite ( $fffff , print_r ( $tec ) . " \n " );
fwrite ( $fffff ,( int ) $stats . " \n " );
fwrite ( $fffff , " \n \n \n " );
fclose ( $fffff );
} //".$stats."
mysql_query ( " UPDATE `users` SET `sila`=' " . $tec [ 'sila' ] . " ', `lovk`=' " . $tec [ 'lovk' ] . " ',`inta`=' " . $tec [ 'inta' ] . " ',`vinos`=' " . $tec [ 'vinos' ] . " ',`intel`=' " . $tec [ 'intel' ] . " ',`mudra`=' " . $tec [ 'mudra' ] . " ',`stats`='0',
`noj` = 0 , `mec` = 0 , `topor` = 0 , `dubina` = 0 , `mfire` = 0 , `mwater` = 0 , `mair` = 0 , `mearth` = 0 , `mlight` = 0 , `mgray` = 0 , `mdark` = 0 , `master` = '".$master."' , `maxhp` = '".($tec[' vinos ']*6)."' , `hp` = '".($tec[' vinos ']*6)."'
WHERE `id` = '".$u[' id ']."' LIMIT 1 ; " );
// закончили
}
// пихаем учасников в БС
$rum = rand ( $minroom , $maxroom );
$urs [ $row [ 0 ]] = $rum ;
//mysql_query("UPDATE `users` SET `in_tower` = 1, `room` = '".$rum."' WHERE `id` = '".$row[0]."';");
//mysql_query("UPDATE `online` SET `room` = '".$rum."' WHERE `id` = '".$row[0]."' LIMIT 1 ;");
// в список участников
$i ++ ;
if ( $i > 1 ) { $lors .= " , " ; }
$lors .= nick3 ( $row [ 0 ]);
}
// arch================
undressall ( 233 );
mysql_query ( " DELETE FROM `inventory` WHERE `owner` = '233'; " );
$rum = rand ( $minroom , $maxroom );
mysql_query ( " UPDATE `users` SET `in_tower` = 1, `chattime` = '999999999999', `room` = ' " . $rum . " ' WHERE `id` = '233'; " );
mysql_query ( " UPDATE `online` SET `room` = ' " . $rum . " ' WHERE `id` = '233' LIMIT 1 ; " );
$i ++ ;
$lors .= " , " . nick3 ( 233 );
//=====================
// разбрасываем шмот по комнатам
mysql_query ( " TRUNCATE TABLE `deztow_items`; " );
// айдишники магазинных прототипов
$shmots = array ( " 1 " , " 1 " , " 92 " , " 92 " , " 93 " , " 93 " , " 19 " , " 19 " , " 20 " , " 20 " , " 20 " , " 23 " , " 23 " , " 24 " , " 14 " , " 87 " , " 87 " , " 6 " , " 6 " , " 17 " , " 17 " , " 17 " , " 17 " , " 11 " , " 11 " , " 12 " , " 12 " , " 12 " , " 28 " , " 28 " , " 43 " , " 43 " , " 36 " , " 36 " , " 36 " , " 37 " , " 37 " , " 37 " , " 38 " , " 38 " , " 38 " , " 50 " , " 50 " , " 57 " , " 52 " , " 52 " , " 51 " , " 51 " , " 48 " , " 48 " , " 47 " , " 47 " , " 49 " , " 49 " , " 59 " , " 59 " , " 60 " , " 60 " , " 61 " , " 61 " , " 63 " , " 64 " , " 64 " , " 65 " , " 65 " , " 66 " , " 66 " , " 68 " , " 68 " , " 69 " , " 69 " , " 72 " , " 72 " , " 4 " , " 5 " , " 79 " , " 79 " , " 80 " , " 76 " , " 75 " , " 75 " , " 94 " , " 94 " , " 95 " , " 95 " , " 82 " , " 91 " , " 91 " , " 34 " , " 34 " , " 86 " , " 86 " , " 86 " , " 9 " , " 9 " , " 101 " , " 101 " , " 101 " , " 101 " , " 101 " , " 97 " , " 97 " , " 97 " , " 97 " , " 100 " , " 100 " , " 100 " , " 100 " , " 171 " , " 171 " , " 171 " , " 171 " , " 103 " , " 103 " , " 103 " , " 104 " , " 105 " , " 105 " , " 106 " , " 106 " , " 107 " , " 107 " , " 108 " , " 108 " , " 109 " , " 110 " , " 111 " , " 112 " , " 112 " , " 113 " , " 113 " , " 119 " , " 364 " , " 284 " , " 284 " , " 284 " , " 284 " , " 284 " , " 285 " , " 285 " , " 285 " , " 285 " , " 286 " , " 286 " , " 286 " , " 286 " );
while ( $sh = array_shift ( $shmots )) {
$shopid = mysql_fetch_array ( mysql_query ( " SELECT * FROM `shop` WHERE `id` = ' " . $sh . " ' LIMIT 1; " ));
mysql_query ( " INSERT `deztow_items` (`iteam_id`, `name`, `img`, `room`) values (' " . $shopid [ 'id' ] . " ', ' " . $shopid [ 'name' ] . " ', ' " . $shopid [ 'img' ] . " ', ' " . rand ( $minroom , $maxroom ) . " '); " );
}
// формируем лог
$log = '<span class=date>' . date ( " d.m.y H:i " ) . '</span> Начало турнира. Участники: ' . $lors . '<BR>' ;
// создаем запись о турнире
$end = time () + 21600 ;
mysql_query ( " INSERT `deztow_turnir` (`type`,`winner`,`coin`,`start_time`,`log`,`endtime`,`active`) values (' " . rand ( 1 , 7 ) . " ','',' " . $stavka [ 0 ] . " ',' " . time () . " ',' " . $log . " ',' " . $end . " ','1'); " );
//mysql_query("UNLOCK TABLES;");
foreach ( $urs as $row => $rum ) {
mysql_query ( " UPDATE `users` SET `in_tower` = 1, `room` = ' " . $rum . " ' WHERE `id` = ' " . $row . " '; " );
mysql_query ( " UPDATE `online` SET `room` = ' " . $rum . " ' WHERE `id` = ' " . $row . " ' LIMIT 1 ; " );
}
} */
// bots razmen
//====================================================================================
/* function nick5 ( $id , $st ) {
$bots = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `bots` WHERE `id` = ' . $id . ' LIMIT 1;' ));
$id = $bots [ 'prototype' ];
$user = mysql_fetch_array ( mysql_query ( " SELECT * FROM `users` WHERE `id` = ' { $id } ' LIMIT 1; " ));
$user [ 'login' ] = $bots [ 'name' ];
$user [ 'hp' ] = $bots [ 'hp' ];
$user [ 'id' ] = $bots [ 'id' ];
if ( $user [ 0 ]) {
return " <span class= { $st } > " . $user [ 'login' ] . " </span> " ;
}
}
*/
class botbattle {
public $log = " " ; // агреггатор лога
function botbattle () {
global $mysql ;
$this -> mysql = $mysql ;
}
function GetWeaponType ( $idwep ) {
if ( $idwep == 0 ) {
return " kulak " ;
}
$wep = mysql_fetch_array ( mysql_query ( 'SELECT `name` FROM `inventory` WHERE `id` = ' . $idwep . ' LIMIT 1;' ));
//print_r($wep);
if ( preg_match ( " /кастет/i " , $wep [ 0 ]) || preg_match ( " /нож/i " , $wep [ 0 ]) || preg_match ( " /кинжал/i " , $wep [ 0 ])) {
return " noj " ;
}
elseif ( preg_match ( " /дубина/i " , $wep [ 0 ]) || preg_match ( " /молот/i " , $wep [ 0 ]) || preg_match ( " /ледяной/i " , $wep [ 0 ]) || preg_match ( " /клевец/i " , $wep [ 0 ])) {
return " dubina " ;
}
elseif ( preg_match ( " /топор/i " , $wep [ 0 ]) OR preg_match ( " /секира/i " , $wep [ 0 ]) || preg_match ( " /аллебарда/i " , $wep [ 0 ])) {
return " topor " ;
}
elseif ( preg_match ( " /Меч/i " , $wep [ 0 ])) {
return " mech " ;
}
}
function razmen_log ( $type , $kuda , $chem , $uron , $kto , $c1 , $pokomy , $c2 , $hp , $maxhp ) {
//print_R(func_get_args());
if ( $this -> enemyhar [ 'sex' ] && $kto == $this -> enemyhar [ 'id' ]) { $sex1 = false ; }
if ( ! $this -> enemyhar [ 'sex' ] && $kto == $this -> enemyhar [ 'id' ]) { $sex1 = true ; }
if ( $this -> enemyhar [ 'sex' ] && $pokomy == $this -> enemyhar [ 'id' ]) { $sex2 = false ; }
if ( ! $this -> enemyhar [ 'sex' ] && $pokomy == $this -> enemyhar [ 'id' ]) { $sex2 = true ; }
if ( $this -> user [ 'sex' ] && $kto == $this -> user [ 'id' ]) { $sex1 = false ; }
if ( ! $this -> user [ 'sex' ] && $kto == $this -> user [ 'id' ]) { $sex1 = true ; }
if ( $this -> user [ 'sex' ] && $pokomy == $this -> user [ 'id' ]) { $sex2 = false ; }
if ( ! $this -> user [ 'sex' ] && $pokomy == $this -> user [ 'id' ]) { $sex2 = true ; }
if ( $hp < 0 ) { $hp = 0 ; }
// текст по промазыванию
if ( ! $sex1 ) {
$textfail = array ( 'думал о <вырезано цензурой>, вследствие чего' ,
'пытался нанести удар, но ' ,
'поскользнулся, и' ,
'старался провести удар, но' ,
'закашлялся, и' ,
'пытался провести удар, но безумный' ,
'потерял самоконтроль, вследствие чего' ,
'думал не о том и' );
} else {
$textfail = array ( 'думала о <вырезано цензурой>, вследствие чего' ,
'пыталась нанести удар, но ' ,
'поскользнулась, и' ,
'старалась провести удар, но' ,
'закашлялась, и' ,
'пыталась провести удар, но ' ,
'потеряла самоконтроль, вследствие чего' ,
'думала не о том и' );
}
// чем били
$textchem = array (
" kulak " => array ( " грудью " , " ребром руки " , " лбом " , " кулаком " , " ногой " , " левой ногой " , " правой ногой " , " коленом " ),
" noj " => array ( " ножем " , " тыльной стороной лезвия ножа " , " рукоятью ножа " , " лезвием ножа " ),
" dubina " => array ( " сучковатой палкой " , " поленом " , " тяжелой дубиной " , " дубиной " , " рукоятью молота " ),
" topor " => array ( " секирой " , " топором " , " лезвием секиры " , " аллебардой " , " тяжелым держаком " , " длинной секирой " ),
" mech " => array ( " ножнами " , " гардой " , " мечем " , " лезвием меча " , " рукоятью меча " , " тупым лезвием " , " острой стороной меча " , " огромным мечем " ,)
);
$textchem = $textchem [ $chem ];
// куда били
$udars = array (
'1' => array ( 'в нос' , 'в глаз' , 'в челюсть' , 'по переносице' , 'в кадык' , 'по затылку' , 'в правый глаз' , 'в левый глаз' , 'в скулу' ),
'2' => array ( 'в грудь' , 'в корпус' , 'в солнечное сплетение' , 'в сердце' , 'в бок' , 'в область лопаток' , 'по желудку' , 'по левой руке' , 'по правой руке' ),
'3' => array ( 'по <вырезано цензурой>' , 'в пах' , 'в промежность' , 'по левой ягодице' , 'по правой ягодице' ),
'4' => array ( 'по ногам' , 'в область правой пятки' , 'в область левой пятки' , 'по коленной чашечке' , 'по икрам' )
);
$kuda = $udars [ $kuda ][ rand ( 0 , count ( $udars [ $kuda ]) - 1 )];
//тест по попаданию
if ( ! $sex2 ) {
$textud = array ( 'забылся, и тут' ,
'замешкался, и за это бесчувственный' ,
'растерялся, как вдруг расстроенный' ,
'ковырялся в зубах, и тут' ,
'поперхнулся, но вдруг храбрый' ,
'пытался что-то сказать но вдруг, неожиданно' ,
'растерялся, как вдруг' ,
'засмотрелся на <вырезано цензурой>, а в это время' ,
'высморкался, и в это время' ,
'думал не о том и' ,
'пришел в себя, но в это время обезумевший' ,
'обернулся, как внезапно' );
} else {
$textud = array ( 'забылась, и тут' ,
'замешкалась, и за это ' ,
'растерялась, как вдруг ' ,
'ковырялась в зубах, и тут ' ,
'поперхнулась, но вдруг ' ,
'пыталась что-то сказать но вдруг, неожиданно' ,
'растерялась, как вдруг' ,
'засмотрелась на <вырезано цензурой>, а в это время' ,
'высморкалась, и в это время' ,
'думала не о том и' ,
'пришла в себя, но в это время ' ,
'обернулась, как внезапно' );
}
switch ( $type ) {
// уворот
case " uvorot " :
if ( $sex2 ) {
$textuvorot = array ( " уклонилась от удара " , " увернулась от удара " , " отскочила от удара " );
}
else {
$textuvorot = array ( " уклонился от удара " , " увернулся от удара " , " отскочил от удара " );
}
return '<span class=date>' . date ( " H:i " ) . '</span> ' . nick5 ( $kto , $c1 ) . ' ' . $textfail [ rand ( 0 , count ( $textfail ) - 1 )] . ' ' . nick5 ( $pokomy , $c2 ) . ' ' . $textuvorot [ rand ( 0 , count ( $textuvorot ) - 1 )] . ' ' . $textchem [ rand ( 0 , count ( $textchem ) - 1 )] . ' ' . $kuda . '.<BR>' ;
break ;
//блок
case " block " :
if ( $sex2 ) {
$textblock = array ( " заблокировала удар " , " остановила удар " , " отбила удар " );
}
else {
$textblock = array ( " заблокировал удар " , " остановил удар " , " отбил удар " );
}
return '<span class=date>' . date ( " H:i " ) . '</span> ' . nick5 ( $kto , $c1 ) . ' ' . $textfail [ rand ( 0 , count ( $textfail ) - 1 )] . ' ' . nick5 ( $pokomy , $c2 ) . ' ' . $textblock [ rand ( 0 , count ( $textblock ) - 1 )] . ' ' . $textchem [ rand ( 0 , count ( $textchem ) - 1 )] . ' ' . $kuda . '.<BR>' ;
break ;
//крит
case " krit " :
if ( $sex1 ) {
$textkrit = array ( " , напугав всех, неслышно подойдя сзади ударила по голове булыжником оппонента. " , " , сказав \" БУ! \" , ласково заломила руку за спину соперника. " , " , расслабившись, расцарапала нос соперника. " , " , показав сразу два пальца, наступила на ногу врага. " , " , напугав всех, укусила в нос противника. " , " , проклиная этот сайт, провела ужасный бросок через пупок оппонента. " );
}
else {
$textkrit = array ( " , напугав всех, неслышно подойдя сзади ударил по голове булыжником оппонента. " , " , сказав \" БУ! \" , ласково заломил руку за спину соперника. " , " , расслабившись, расцарапал нос соперника. " , " , показав сразу два пальца, наступил на ногу врага. " , " , напугав всех, укусил в нос противника. " , " , проклиная этот сайт, провел ужасный бросок через пупок оппонента. " );
}
return '<span class=date>' . date ( " H:i " ) . '</span> ' . nick5 ( $pokomy , $c2 ) . ' ' . $textud [ rand ( 0 , count ( $textud ) - 1 )] . ' ' . nick5 ( $kto , $c1 ) . ' ' . $textkrit [ rand ( 0 , count ( $textkrit ) - 1 )] . ' <b><font color=red>-' . $uron . '</font></b> [' . $hp . '/' . $maxhp . ']' . '<BR>' ;
break ;
// попадание
case " udar " :
if ( $sex1 ) {
$textudar = array ( " , разбежавшись, рубанула " , " отчаянно проткнула " , " нехотя уколола " , " не подумав, рубанула " , " , улыбаясь, саданула укол " , " приложила удар " , " ударила " , " сдуру вмазала " );
}
else {
$textudar = array ( " , разбежавшись, рубанул " , " отчаянно проткнул " , " нехотя уколол " , " не подумав, рубанул " , " , улыбаясь, саданул укол " , " приложил удар " , " ударил " , " сдуру вмазал " );
}
return '<span class=date>' . date ( " H:i " ) . '</span> ' . nick5 ( $pokomy , $c2 ) . ' ' . $textud [ rand ( 0 , count ( $textud ) - 1 )] . ' ' . nick5 ( $kto , $c1 ) . '' . $textudar [ rand ( 0 , count ( $textudar ) - 1 )] . ' ' . $textchem [ rand ( 0 , count ( $textchem ) - 1 )] . ' ' . $kuda . ' <b>-' . $uron . '</b> [' . $hp . '/' . $maxhp . ']' . '<BR>' ;
break ;
}
}
function UpdateBattle () {
return mysql_query ( 'UPDATE `battle` SET `teams` = \'' . serialize ( $this -> battle ) . '\', `damage` = \'' . serialize ( $this -> damage ) . '\' WHERE `id` = ' . $this -> battle_data [ 'id' ] . ' ;' );
}
function AddToLog ( $text ) {
$this -> log .= $text ;
}
function write_log () {
if ( $this -> log ){ $this -> log = $this -> log . " <hr> " ;}
addlog ( $this -> user [ 'battle' ], $this -> log );
/* $fp = fopen ( " /tmp/backup/logs/battle " . $this -> battle_data [ 'id' ] . " .txt " , " a " ); //открытие
flock ( $fp , LOCK_EX ); //БЛОКИРОВКА ФАЙЛА
fputs ( $fp , $this -> log ); //работа с файлом
fflush ( $fp ); //ОЧИЩЕНИЕ ФАЙЛОВОГО БУФЕРА И ЗАПИСЬ В ФАЙЛ
flock ( $fp , LOCK_UN ); //СНЯТИЕ БЛОКИРОВКИ
fclose ( $fp ); //закрытие
$this -> log = '' ; */
}
function solve_mf ( $enemy , $enemy2 , $en1att , $en2att ) {
$mf = array ();
$bots = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `bots` WHERE `id` = ' . $enemy2 . ' LIMIT 1;' ));
$this -> enemyhar = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `users` WHERE `id` = \'' . $bots [ 'prototype' ] . '\' LIMIT 1;' ));
$this -> enemy_dress = mysql_fetch_array ( mysql_query ( 'SELECT sum(minu),sum(maxu),sum(mfkrit),sum(mfakrit),sum(mfuvorot),sum(mfauvorot),sum(bron1),sum(bron2),sum(bron3),sum(bron4) FROM `inventory` WHERE `dressed`=1 AND `owner` = \'' . $bots [ 'prototype' ] . '\' LIMIT 1;' ));
$this -> enemyhar [ 'hp' ] = $bots [ 'hp' ];
$bots = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `bots` WHERE `id` = ' . $enemy . ' LIMIT 1;' ));
$this -> user = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `users` WHERE `id` = \'' . $bots [ 'prototype' ] . '\' LIMIT 1;' ));
$this -> user_dress = mysql_fetch_array ( mysql_query ( 'SELECT sum(minu),sum(maxu),sum(mfkrit),sum(mfakrit),sum(mfuvorot),sum(mfauvorot),sum(bron1),sum(bron2),sum(bron3),sum(bron4) FROM `inventory` WHERE `dressed`=1 AND `owner` = \'' . $bots [ 'prototype' ] . '\' LIMIT 1;' ));
$this -> user [ 'hp' ] = $bots [ 'hp' ];
// мои МФ в отношении противника
$mf [ 'me' ] = array (
'udar' => rand ( floor ( $this -> user [ 'sila' ] / 3 ) + 2 + $this -> user_dress [ 0 ], floor ( $this -> user [ 'sila' ] / 3 ) + 4 + $this -> user_dress [ 1 ]) - rand ( 1 , $this -> enemy_dress [ 5 + $en1att ]),
'krit' => $this -> user_dress [ 2 ] - $this -> enemy_dress [ 3 ] + floor ( $this -> user [ 'inta' ] * 4 ) - floor ( $this -> enemyhar [ 'inta' ] * 4 ),
'uvorot' => $this -> user_dress [ 4 ] - $this -> enemy_dress [ 5 ] + floor ( $this -> user [ 'lovk' ] * 4 ) - floor ( $this -> enemyhar [ 'lovk' ] * 4 ),
);
if ( $this -> GetWeaponType ( $this -> user [ 'weap' ]) == 'kulak' && $this -> user [ 'align' ] == '2' ) { $mf [ 'me' ][ 'udar' ] += $this -> user [ 'level' ]; }
//бонусы от умений к урону
switch ( $this -> GetWeaponType ( $this -> user [ 'weap' ])) {
case " noj " :
$mf [ 'me' ][ 'udar' ] += $this -> user [ 'noj' ];
break ;
case " dubina " :
$mf [ 'me' ][ 'udar' ] += $this -> user [ 'dubina' ];
break ;
case " topor " :
$mf [ 'me' ][ 'udar' ] += $this -> user [ 'topor' ];
break ;
case " mech " :
$mf [ 'me' ][ 'udar' ] += $this -> user [ 'mec' ];
break ;
}
if ( $bmfud > 5 ) $mf [ 'me' ][ 'udar' ] += $bmfud ;
if ( $mf [ 'me' ][ 'udar' ] < 0 ) { $mf [ 'me' ][ 'udar' ] = 0 ; }
if ( $bmfud <= 5 ) $mf [ 'me' ][ 'udar' ] += $bmfud ;
if ( $mf [ 'me' ][ 'krit' ] < 1 )
{ $mf [ 'me' ][ 'krit' ] = 1 ; }
elseif (( $mf [ 'me' ][ 'krit' ] >= 50 ) && ( $mf [ 'me' ][ 'krit' ] < 100 ))
{ $mf [ 'me' ][ 'krit' ] = 50 ; }
elseif (( $mf [ 'me' ][ 'krit' ] >= 100 ) && ( $mf [ 'me' ][ 'krit' ] < 200 ))
{ $mf [ 'me' ][ 'krit' ] = 55 ; }
elseif (( $mf [ 'me' ][ 'krit' ] >= 200 ) && ( $mf [ 'me' ][ 'krit' ] < 300 ))
{ $mf [ 'me' ][ 'krit' ] = 60 ; }
elseif (( $mf [ 'me' ][ 'krit' ] >= 300 ) && ( $mf [ 'me' ][ 'krit' ] < 400 ))
{ $mf [ 'me' ][ 'krit' ] = 65 ; }
elseif (( $mf [ 'me' ][ 'krit' ] >= 400 ) && ( $mf [ 'me' ][ 'krit' ] < 500 ))
{ $mf [ 'me' ][ 'krit' ] = 70 ; }
elseif ( $mf [ 'me' ][ 'krit' ] >= 500 )
{ $mf [ 'me' ][ 'krit' ] = 75 ; }
if ( $mf [ 'me' ][ 'uvorot' ] < 1 )
{ $mf [ 'me' ][ 'uvorot' ] = 1 ; }
elseif (( $mf [ 'me' ][ 'uvorot' ] >= 50 ) && ( $mf [ 'me' ][ 'uvorot' ] < 100 ))
{ $mf [ 'me' ][ 'uvorot' ] = 50 ; }
elseif (( $mf [ 'me' ][ 'uvorot' ] >= 100 ) && ( $mf [ 'me' ][ 'uvorot' ] < 200 ))
{ $mf [ 'me' ][ 'uvorot' ] = 55 ; }
elseif (( $mf [ 'me' ][ 'uvorot' ] >= 200 ) && ( $mf [ 'me' ][ 'uvorot' ] < 300 ))
{ $mf [ 'me' ][ 'uvorot' ] = 60 ; }
elseif (( $mf [ 'me' ][ 'uvorot' ] >= 300 ) && ( $mf [ 'me' ][ 'uvorot' ] < 400 ))
{ $mf [ 'me' ][ 'uvorot' ] = 65 ; }
elseif (( $mf [ 'me' ][ 'uvorot' ] >= 400 ) && ( $mf [ 'me' ][ 'uvorot' ] < 500 ))
{ $mf [ 'me' ][ 'uvorot' ] = 70 ; }
elseif ( $mf [ 'me' ][ 'uvorot' ] >= 500 )
{ $mf [ 'me' ][ 'uvorot' ] = 75 ; }
switch ( $this -> GetWeaponType ( $this -> user [ 'weap' ])) {
case " noj " :
$ver = $this -> user [ 'noj' ];
break ;
case " dubina " :
$ver = $this -> user [ 'dubina' ];
break ;
case " topor " :
$ver = $this -> user [ 'topor' ];
break ;
case " mech " :
$ver = $this -> user [ 'mech' ];
break ;
}
if ( mt_rand ( 0 , 100 ) < $ver )
switch ( $this -> GetWeaponType ( $this -> user [ 'weap' ])) {
case " noj " :
$mf [ 'me' ][ 'udar' ] += (( $this -> user [ 'lovk' ] + $this -> user [ 'inta' ]) * $this -> user [ 'level' ] * mt_rand ( 5 , 15 ) / ( 2 * 10 * 10 ));
break ;
case " dubina " :
$mf [ 'me' ][ 'udar' ] += (( $this -> user [ 'sila' ] + $this -> user [ 'vinos' ]) * $this -> user [ 'level' ] * mt_rand ( 5 , 15 ) / ( 2 * 10 * 10 ));
break ;
case " topor " :
$mf [ 'me' ][ 'udar' ] += (( $this -> user [ 'inta' ] + $this -> user [ 'vinos' ]) * $this -> user [ 'level' ] * mt_rand ( 5 , 15 ) / ( 2 * 10 * 10 ));
break ;
case " mech " :
$mf [ 'me' ][ 'udar' ] += (( $this -> user [ 'lovk' ] + $this -> user [ 'sila' ]) * $this -> user [ 'level' ] * mt_rand ( 5 , 15 ) / ( 2 * 10 * 10 ));
break ;
}
//округляем урон
$mf [ 'me' ][ 'udar' ] = round ( $mf [ 'me' ][ 'udar' ]);
// МФ врага в отношении меня
$mf [ 'he' ] = array (
'udar' => rand ( floor ( $this -> enemyhar [ 'sila' ] / 3 ) + 2 + $this -> enemy_dress [ 0 ], floor ( $this -> enemyhar [ 'sila' ] / 3 ) + 4 + $this -> enemy_dress [ 1 ]) - rand ( 1 , $this -> user_dress [ 5 + $en2att ]),
'krit' => $this -> enemy_dress [ 2 ] - $this -> user_dress [ 3 ] + floor ( $this -> enemyhar [ 'inta' ] * 4 ) - floor ( $this -> user [ 'inta' ] * 4 ),
'uvorot' => $this -> enemy_dress [ 4 ] - $this -> user_dress [ 5 ] + floor ( $this -> enemyhar [ 'lovk' ] * 4 ) - floor ( $this -> user [ 'lovk' ] * 4 ),
);
if ( $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]) == 'kulak' && $this -> enemyhar [ 'align' ] == '2' ) { $mf [ 'he' ][ 'udar' ] += $this -> enemyhar [ 'level' ]; }
switch ( $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ])) {
case " noj " :
$mf [ 'he' ][ 'udar' ] += $this -> enemyhar [ 'noj' ];
break ;
case " dubina " :
$mf [ 'he' ][ 'udar' ] += $this -> enemyhar [ 'dubina' ];
break ;
case " topor " :
$mf [ 'he' ][ 'udar' ] += $this -> enemyhar [ 'topor' ];
break ;
case " mech " :
$mf [ 'he' ][ 'udar' ] += $this -> enemyhar [ 'mec' ];
break ;
}
if ( $bmfud1 < 5 ) $mf [ 'he' ][ 'udar' ] += $bmfud1 ;
if ( $mf [ 'he' ][ 'udar' ] < 0 ) { $mf [ 'he' ][ 'udar' ] = 0 ; }
if ( $bmfud1 >= 5 ) $mf [ 'he' ][ 'udar' ] += $bmfud1 ;
//if($mf['he']['krit'] < 1) { $mf['he']['krit'] = 1; } elseif ($mf['he']['krit'] > 50) { $mf['he']['krit'] = 50; }
//if($mf['he']['uvorot'] < 1) { $mf['he']['uvorot'] = 1; } elseif ($mf['he']['uvorot'] > 65) { $mf['he']['uvorot'] = 65; }
if ( $mf [ 'he' ][ 'krit' ] < 1 )
{ $mf [ 'he' ][ 'krit' ] = 1 ; }
elseif (( $mf [ 'he' ][ 'krit' ] >= 50 ) && ( $mf [ 'he' ][ 'krit' ] < 100 ))
{ $mf [ 'he' ][ 'krit' ] = 50 ; }
elseif (( $mf [ 'he' ][ 'krit' ] >= 100 ) && ( $mf [ 'he' ][ 'krit' ] < 200 ))
{ $mf [ 'he' ][ 'krit' ] = 55 ; }
elseif (( $mf [ 'he' ][ 'krit' ] >= 200 ) && ( $mf [ 'he' ][ 'krit' ] < 300 ))
{ $mf [ 'he' ][ 'krit' ] = 60 ; }
elseif (( $mf [ 'he' ][ 'krit' ] >= 300 ) && ( $mf [ 'he' ][ 'krit' ] < 400 ))
{ $mf [ 'he' ][ 'krit' ] = 65 ; }
elseif (( $mf [ 'he' ][ 'krit' ] >= 400 ) && ( $mf [ 'he' ][ 'krit' ] < 500 ))
{ $mf [ 'he' ][ 'krit' ] = 70 ; }
elseif ( $mf [ 'he' ][ 'krit' ] >= 500 )
{ $mf [ 'he' ][ 'krit' ] = 75 ; }
if ( $mf [ 'he' ][ 'uvorot' ] < 1 )
{ $mf [ 'he' ][ 'uvorot' ] = 1 ; }
elseif (( $mf [ 'he' ][ 'uvorot' ] >= 50 ) && ( $mf [ 'he' ][ 'uvorot' ] < 100 ))
{ $mf [ 'he' ][ 'uvorot' ] = 50 ; }
elseif (( $mf [ 'he' ][ 'uvorot' ] >= 100 ) && ( $mf [ 'he' ][ 'uvorot' ] < 200 ))
{ $mf [ 'he' ][ 'uvorot' ] = 55 ; }
elseif (( $mf [ 'he' ][ 'uvorot' ] >= 200 ) && ( $mf [ 'he' ][ 'uvorot' ] < 300 ))
{ $mf [ 'he' ][ 'uvorot' ] = 60 ; }
elseif (( $mf [ 'he' ][ 'uvorot' ] >= 300 ) && ( $mf [ 'he' ][ 'uvorot' ] < 400 ))
{ $mf [ 'he' ][ 'uvorot' ] = 65 ; }
elseif (( $mf [ 'he' ][ 'uvorot' ] >= 400 ) && ( $mf [ 'he' ][ 'uvorot' ] < 500 ))
{ $mf [ 'he' ][ 'uvorot' ] = 70 ; }
elseif ( $mf [ 'he' ][ 'uvorot' ] >= 500 )
{ $mf [ 'he' ][ 'uvorot' ] = 75 ; }
//проф урон
switch ( $this -> GetWeaponType ( $this -> user [ 'weap' ])) {
case " noj " :
$ver = $this -> user [ 'noj' ];
break ;
case " dubina " :
$ver = $this -> user [ 'dubina' ];
break ;
case " topor " :
$ver = $this -> user [ 'topor' ];
break ;
case " mech " :
$ver = $this -> user [ 'mech' ];
break ;
}
if ( mt_rand ( 0 , 100 ) < $ver )
switch ( $this -> GetWeaponType ( $this -> user [ 'weap' ])) {
case " noj " :
$mf [ 'he' ][ 'udar' ] += (( $this -> user [ 'lovk' ] + $this -> user [ 'inta' ]) * $this -> user [ 'level' ] * mt_rand ( 5 , 15 ) / ( 2 * 10 * 10 ));
break ;
case " dubina " :
$mf [ 'he' ][ 'udar' ] += (( $this -> user [ 'sila' ] + $this -> user [ 'vinos' ]) * $this -> user [ 'level' ] * mt_rand ( 5 , 15 ) / ( 2 * 10 * 10 ));
break ;
case " topor " :
$mf [ 'he' ][ 'udar' ] += (( $this -> user [ 'inta' ] + $this -> user [ 'vinos' ]) * $this -> user [ 'level' ] * mt_rand ( 5 , 15 ) / ( 2 * 10 * 10 ));
break ;
case " mech " :
$mf [ 'he' ][ 'udar' ] += (( $this -> user [ 'lovk' ] + $this -> user [ 'sila' ]) * $this -> user [ 'level' ] * mt_rand ( 5 , 15 ) / ( 2 * 10 * 10 ));
break ;
}
//if(in_array($enemy,$this->botsid)) { $mf['he']['udar'] += $this->user_dress[1]; }
if ( $enemy > _BOTSEPARATOR_ ) {
$mf [ 'he' ][ 'krit' ] -= 6 ;
}
//округляем урон
$mf [ 'he' ][ 'udar' ] = round ( $mf [ 'he' ][ 'udar' ]);
//if(in_array($enemy,$this->botsid)) { $mf['he']['udar'] += $this->user_dress[1]; }
// result
return $mf ;
}
function GetChance ( $persent ) {
if ( rand ( 1 , 100 ) < $persent ) {
return true ;
}
else {
return false ;
}
}
function GetBlock ( $att , $def ) {
// по типам блоков
$blocks = array (
'1' => array ( 1 , 2 ),
'2' => array ( 2 , 3 ),
'3' => array ( 3 , 4 ),
'4' => array ( 4 , 1 )
);
if ( ! in_array ( $att , $blocks [ $def ])) {
return true ;
} else {
return false ;
}
}
function InitRazmen ( $enemy , $enemy2 , $battle_id ) {
$bots1 = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `bots` WHERE `id` = ' . $enemy . ' AND `battle` = ' . $battle_id . ' AND `hp` > 0 LIMIT 1;' ));
$bots2 = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `bots` WHERE `id` = ' . $enemy2 . ' AND `battle` = ' . $battle_id . ' AND `hp` > 0 LIMIT 1;' ));
if ( $bots1 && $bots2 ) {
$this -> battle_data = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `battle` WHERE `id` = ' . $battle_id . ' LIMIT 1;' ));
// получили дамагу
$this -> damage = unserialize ( $this -> battle_data [ 'damage' ]);
// кто драчуется?
$this -> battle = unserialize ( $this -> battle_data [ 'teams' ]);
// режем тимзы
$this -> t1 = explode ( " ; " , $this -> battle_data [ 't1' ]);
$this -> t2 = explode ( " ; " , $this -> battle_data [ 't2' ]);
// проставляем кто-где
if ( in_array ( $enemy , $this -> t1 )) {
$this -> my_class = " B1 " ;
$this -> en_class = " B2 " ;
$this -> team_mine = $this -> t1 ;
$this -> team_enemy = $this -> t2 ;
} else {
$this -> my_class = " B2 " ;
$this -> en_class = " B1 " ;
$this -> team_mine = $this -> t2 ;
$this -> team_enemy = $this -> t1 ;
}
// проверяем прафильность
$en1att = mt_rand ( 1 , 4 );
$en2att = mt_rand ( 1 , 4 );
$en1b = mt_rand ( 1 , 4 );
$en2b = mt_rand ( 1 , 4 );
// х -ки драчующихся
$mf = $this -> solve_mf ( $enemy , $enemy2 , $en1att , $en2att );
//echo $this->GetWeaponType($this->enemyhar['weap']);
// проверяем кто куда попал
// удар по мне
if ( $this -> GetChance ( $mf [ 'my' ][ 'uvorot' ]))
{
// я увернулся;
$this -> AddToLog ( $this -> razmen_log ( " uvorot " , $en2att , $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]), 0 , $enemy2 , $this -> en_class , $enemy , $this -> my_class , 0 , 0 ));
}
elseif ( $this -> GetChance ( $mf [ 'he' ][ 'krit' ])) {
// меня кританули
$this -> damage [ $enemy2 ] += ( $mf [ 'he' ][ 'udar' ] * 2 );
$this -> AddToLog ( $this -> razmen_log ( " krit " , $en2att , $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]),( $mf [ 'he' ][ 'udar' ] * 2 ), $enemy2 , $this -> en_class , $enemy , $this -> my_class ,( $this -> user [ 'hp' ] - $mf [ 'he' ][ 'udar' ] * 2 ), $this -> user [ 'maxhp' ]));
mysql_query ( 'UPDATE bots SET `hp` = `hp` - ' . ( $mf [ 'he' ][ 'udar' ] * 2 ) . ' WHERE `id` = ' . $enemy . '' );
}
elseif ( $this -> GetBlock ( $en2att , $en1b )) {
// противник попал куда надо
$this -> damage [ $enemy2 ] += ( $mf [ 'he' ][ 'udar' ]);
$this -> AddToLog ( $this -> razmen_log ( " udar " , $en2att , $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]), $mf [ 'he' ][ 'udar' ], $enemy2 , $this -> en_class , $enemy , $this -> my_class ,( $this -> user [ 'hp' ] - $mf [ 'he' ][ 'udar' ]), $this -> user [ 'maxhp' ]));
mysql_query ( 'UPDATE bots SET `hp` = `hp` - ' . ( $mf [ 'he' ][ 'udar' ]) . ' WHERE `id` = ' . $enemy . '' );
}
else {
// противник мазила
$this -> AddToLog ( $this -> razmen_log ( " block " , $en2att , $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]), 0 , $enemy2 , $this -> en_class , $enemy , $this -> my_class , 0 , 0 ));
}
// удар по противнику
if ( $this -> GetChance ( $mf [ 'he' ][ 'uvorot' ]))
{
// он увернулся;
$this -> AddToLog ( $this -> razmen_log ( " uvorot " , $en1att , $this -> GetWeaponType ( $this -> user [ 'weap' ]), 0 , $enemy , $this -> my_class , $enemy2 , $this -> en_class , 0 , 0 ));
}
elseif ( $this -> GetChance ( $mf [ 'my' ][ 'krit' ])) {
// е г о кританули
$this -> damage [ $enemy ] += ( $mf [ 'me' ][ 'udar' ] * 2 );
$this -> AddToLog ( $this -> razmen_log ( " krit " , $en1att , $this -> GetWeaponType ( $this -> user [ 'weap' ]),( $mf [ 'me' ][ 'udar' ] * 2 ), $enemy , $this -> my_class , $enemy2 , $this -> en_class ,( $this -> enemyhar [ 'hp' ] - $mf [ 'me' ][ 'udar' ] * 2 ), $this -> enemyhar [ 'maxhp' ]));
mysql_query ( 'UPDATE `bots` SET `hp` = `hp` - ' . ( $mf [ 'me' ][ 'udar' ] * 2 ) . ' WHERE `id` = ' . $enemy2 . '' );
}
elseif ( $this -> GetBlock ( $en1att , $en2b )) {
// я попал куда надо
$this -> damage [ $enemy ] += ( $mf [ 'me' ][ 'udar' ]);
$this -> AddToLog ( $this -> razmen_log ( " udar " , $en1att , $this -> GetWeaponType ( $this -> user [ 'weap' ]), $mf [ 'me' ][ 'udar' ], $enemy , $this -> my_class , $enemy2 , $this -> en_class ,( $this -> enemyhar [ 'hp' ] - $mf [ 'me' ][ 'udar' ]), $this -> enemyhar [ 'maxhp' ]));
mysql_query ( 'UPDATE `bots` SET `hp` = `hp` - ' . ( $mf [ 'me' ][ 'udar' ]) . ' WHERE `id` = ' . $enemy2 . '' );
}
else {
// я мазила
$this -> AddToLog ( $this -> razmen_log ( " block " , $attack , $this -> GetWeaponType ( $this -> user [ 'weap' ]), 0 , $enemy , $this -> my_class , $enemy2 , $this -> en_class , 0 , 0 ));
}
$this -> write_log ();
$this -> UpdateBattle ();
mysql_query ( " UPDATE `battle` SET `to1` = ' " . time () . " ', `to2` = ' " . ( time ()) . " ' WHERE `id` = " . $this -> battle_data [ 'id' ] . " LIMIT 1; " );
}
}
}
$bots = mysql_query ( 'SELECT * FROM `bots` WHERE `hp` > 0;' );
$bb = new botbattle ;
while ( $bot = mysql_fetch_array ( $bots )) {
$bd = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `battle` WHERE `id` = ' . $bot [ 'battle' ] . ' LIMIT 1;' ));
$battle = unserialize ( $bd [ 'teams' ]);
// листаем противников, делаем размен.
if ( $battle [ $bot [ 'id' ]]) {
foreach ( $battle [ $bot [ 'id' ]] as $k => $v ) {
if ( $battle [ $bot [ 'id' ]][ $k ][ 0 ] == 0 && $k > _BOTSEPARATOR_ ) {
//echo("Bots:".$bot['id']."vs".$k."<BR/>");
//srand(microtime(true));
$bb -> InitRazmen ( $bot [ 'id' ], $k , $bot [ 'battle' ]);
}
}
}
//mysql_query('UPDATE `battle` SET `teams` = \''.serialize($battle).'\' WHERE `id` = '.$bot['battle'].' ;');
}
//====================================================================================
/*
$mtime = microtime ();
$mtime = explode ( " " , $mtime );
$mtime = $mtime [ 1 ] + $mtime [ 0 ];
//Записываем время окончания в другую переменную
$tend = $mtime ;
//Вычисляем разницу
$totaltime = ( $tend - $tstart );
//Выводим не экран
printf ( " PGT: %f секунд " , $totaltime ); */
//cron pole
//15 минут до старта Поля Чудес
$pole_time = mysql_fetch_array ( mysql_query ( " SELECT * FROM `variables` WHERE var='pole_random'; " ));
$tp = time ();
if ( $tp <= $pole_time [ 'value' ])
{
$p_wait = round ((( $pole_time [ 'value' ] - $tp ) / 60 ), 1 );
//if($p_wait<5)
//{ AddChatSystem ('<font color=red>Через '.$p_wait.' минут на Поле Чудес вырастет очередной урожай кредитов и еврокредитов.</font>'); }
}
include ( 'pole_cron.php' );
?>