2018-01-28 18:40:49 +02:00
< ? php
2018-02-13 20:43:24 +02:00
/**
* Copyright (c) 2018.
* Author: Igor Barkov <lopar.4ever@gmail.com>
* Project name: Battles-Game
*/
2018-01-28 18:40:49 +02: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 20:43:24 +02:00
AddChatSystem ( '<font color=red>Приглашаем всех желающих на турнир в <img src=../i/artefact1.gif><font color=blue><b>Артовую</b></font> Башню Смерти! Турнир начинается через 15 минут</font>' );
2018-01-28 18:40:49 +02: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' );
?>