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-02-13 21:47:24 +02:00
include_once '../config.php' ;
include_once '../functions.php' ;
include_once '../cave/cave_bots.php' ;
2018-01-28 18:40:49 +02:00
$cavebots = $botnames ;
function addlogs ( $id , $log ) {
$fp = fopen ( " backup/logs/battle " . $id . " .txt " , " a " );
flock ( $fp , LOCK_EX );
fputs ( $fp , $log );
fflush ( $fp );
flock ( $fp , LOCK_UN );
fclose ( $fp );
unset ( $id , $log );
}
class fbattle {
public $status = integer ;
public $battle = array ();
public $battle_data = array ();
public $enemy = null ;
public $damage = array ();
public $t1 = array ();
public $t2 = array ();
public $team_enemy = array ();
public $team_mine = array ();
public $user = array ();
public $enemyhar = array ();
public $enemy_dress = array ();
public $user_dress = array ();
public $en_class , $my_class ;
public $bots = array ();
public $botsid = array ();
public $log = '' ;
public $to1 ;
public $to2 ;
public $exp = array ();
public $log_debug = '' ;
public $needrefresh = 0 ;
public $rep = 0 ;
public $needupdate = 0 ;
public $har = array ();
public $color_battle = array ();
public $mf = array ();
public $user_inf_1 = array ();
public $user_inf_2 = array ();
public $max = 70 ;
public $err = '' ;
function fbattle ( $battle_id ) {
global $user , $_POST , $cavedata , $caverooms ;
$this -> user = $user ;
if ( $battle_id > 0 ) {
$this -> status = 1 ;
$this -> battle_data = mysql_fetch_array ( mysql_query ( " SELECT `id`, `coment`, `teams`, `timeout`, `razmen_time`, `type`, `status`, `t1`, `t2`, `date`, `time_m`, `win`, `damage`, `to1`, `to2`, `exp`, `blood`, `t1hist`, `t2hist`, `magic`, `open`, `close`, `protivnik`, `protivnik_type`, `dungeon_bot`, `dn_id`, `aren_of`, `needbb`, `clone`, `fiz` FROM `battle` WHERE `id` = ' { $battle_id } ' LIMIT 1 " ));
$this -> GetUserTeam ();
$this -> damage = unserialize ( $this -> battle_data [ 'damage' ]);
$this -> magic = unserialize ( $this -> battle_data [ 'magic' ]);
$this -> battle = unserialize ( $this -> battle_data [ 'teams' ]);
$this -> exp = unserialize ( $this -> battle_data [ 'exp' ]);
$this -> to1 = $this -> battle_data [ 'to1' ];
$this -> to2 = $this -> battle_data [ 'to2' ];
#######################
$bit1 = 0 ; $bit2 = 0 ;
foreach ( $this -> battle as $k => $v ) {
if ( $k < _BOTSEPARATOR_ ) continue ;
$bot [ 'id' ] = $k ;
if ( in_array ( $k , $this -> t1 )) {
if ( count ( $v ) < count ( $this -> t2 )) {
foreach ( $this -> t2 as $k2 => $v2 ) {
$this -> battle [ $k ][ $v2 ] = array ( 0 , 0 , time ());
}
}
$bit1 = 1 ;
}
if ( in_array ( $k , $this -> t2 )) {
if ( count ( $v ) < count ( $this -> t1 )) {
foreach ( $this -> t1 as $k2 => $v2 ) {
$this -> battle [ $k ][ $v2 ] = array ( 0 , 0 , time ());
}
}
$bit2 = 1 ;
}
foreach ( $this -> battle [ $bot [ 'id' ]] as $k => $v ) {
if ( $this -> battle [ $bot [ 'id' ]][ $k ][ 0 ] == 0 ) {
$this -> battle [ $bot [ 'id' ]][ $k ] = array ( rand ( 2 , 3 ), rand ( 2 , 3 ), time ());
if ( $this -> battle [ $k ][ $bot [ 'id' ]][ 0 ] != 0 && $k < _BOTSEPARATOR_ ) {
$this -> battle [ $k ][ $bot [ 'id' ]] = array ( 0 , 0 , time ());
}
if ( $k > _BOTSEPARATOR_ ) {
$this -> needupdate = 1 ;
}
}
if ( $this -> battle [ $k ][ $bot [ 'id' ]][ 0 ] == 0 && $k < _BOTSEPARATOR_ ) {
if ( in_array ( $user [ 'id' ], array_keys ( $this -> battle [ $bot [ 'id' ]]))) {
if ( $this -> my_class == 'B2' ) {
if ( $this -> to2 <= $this -> to1 ) {
$endr = (( time () - $this -> to2 ) > $this -> battle_data [ 'timeout' ] * 60 );
}
} else {
if ( $this -> to2 >= $this -> to1 ) {
$endr = (( time () - $this -> to1 ) > $this -> battle_data [ 'timeout' ] * 60 );
}
}
}
}
if ( $endr && ! $uje && 0 ) {
if ( $user [ 'caveleader' ] > 0 ) {
$this -> needrefresh = 1 ;
}
$this -> needupdate = 1 ;
$this -> needrefresh = 1 ;
$uje = true ;
$this -> AddToLog ( " <span class=date> " . date ( " H:i " ) . " </span> Бой закончен по таймауту.<BR> " );
foreach ( $this -> battle [ $bot [ 'id' ]] as $k => $v ) {
if ( $k > _BOTSEPARATOR_ ) {
$bots = mysql_fetch_array ( mysql_query ( 'SELECT `hp`, `prototype` FROM `bots` WHERE `id` = "' . $k . '" LIMIT 1' ));
$us [ 'hp' ] = $bots [ 'hp' ];
$b = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `level` FROM `users` WHERE `id` = "' . $bots [ 'prototype' ] . '" LIMIT 1' ));
$us [ 'level' ] = $b [ 'level' ];
} else {
$us = mysql_fetch_array ( mysql_query ( 'SELECT `hp`, `level` FROM `users` WHERE `id` = "' . $k . '" LIMIT 1' ));
}
if ( $us && ( int ) $us [ 'hp' ] > 0 && $us [ 'level' ] > 6 ) {
$tr = settravma ( $k , 0 , 86400 , 1 );
if ( $k < _BOTSEPARATOR_ && $tr ) {
2018-03-04 02:09:58 +02:00
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> <b>' . nick :: id ( $k ) -> short () . '</b> получил повреждение: <font color=red>' . $tr . '</font><BR>' );
2018-01-28 18:40:49 +02:00
}
}
}
foreach ( $this -> battle [ $bot [ 'id' ]] as $k => $v ) {
$this -> user [ $k ][ 'hp' ] = 0 ;
mysql_query ( 'UPDATE `users` SET `hp` = 0, `fullhptime` = ' . time () . ' WHERE `id` = "' . $k . '"' );
}
}
}
}
$bb = ( $bit1 + $bit2 );
if ( $this -> battle_data [ 'needbb' ] != $bb ) {
mysql_query ( " UPDATE `battle` SET `needbb` = ' $bb ' WHERE `id` = ' " . $this -> battle_data [ 'id' ] . " ' LIMIT 1 " );
}
#######################
if ( $_POST [ 'enemy' ] > 0 && ( int ) $_POST [ 'attack' ] > 0 && ( int ) $_POST [ 'defend' ] > 0 ) {
$this -> InitRazmen ( $_POST [ 'enemy' ], $_POST [ 'attack' ], $_POST [ 'defend' ]);
$this -> magic [ $user [ 'id' ]] = 0 ;
mysql_query ( " UPDATE `battle` SET `magic` = ' " . serialize ( $this -> magic ) . " ' WHERE `id` = ' " . $this -> battle_data [ 'id' ] . " ' LIMIT 1 " );
header ( " Location: fbattle.php " );
} else {
$this -> GetUserTeam ();
$this -> FastDeath ();
$this -> enemy = $this -> SelectEnemy ();
if ( $this -> enemy ) {
$this -> return = 1 ;
} else {
if ( $this -> GetTimeout () && ( int ) $this -> user [ 'hp' ] > 0 && ! $_POST [ 'victory_time_out2' ]) {
$this -> return = 3 ;
} else {
$this -> magic [ $user [ 'id' ]] = 0 ;
mysql_query ( " UPDATE `battle` SET `magic` = ' " . serialize ( $this -> magic ) . " ' WHERE `id` = ' { $this -> battle_data [ 'id' ] } ' LIMIT 1 " );
$this -> return = 2 ;
}
}
}
if ( $_POST [ 'victory_time_out2' ]) {
$this -> end_draft ();
}
if ( $_POST [ 'victory_time_out' ]) {
$this -> end_gora ();
}
if ( $this -> battle_end ()) {
$this -> return = 2 ;
}
$this -> write_log ();
return $this -> return ;
} else {
$this -> status = 0 ;
}
}
function getmfs ( $mf , $antimf ) {
$vsh = 5 + (( $mf - $antimf ) / 3 );
if ( $vsh <= 0 ) {
$final = 0 ;
} else {
$final = 70 + ( $vsh / 100 );
}
return $final ;
}
function chanse ( $p ) {
if ( $p > mt_rand ( 1 , 100 )) {
return true ;
} else {
return false ;
}
}
function get_info_by_id ( $id ) {
$valid_login = mysql_query ( 'SELECT `id`, `login`, `align`, `level`, `sila`, `lovk`, `inta`, `vinos`, `intel`, `maxhp`, `weap`, `noj`, `dubina`, `topor`, `mec`, `ubron1`, `ubron2`, `ubron3`, `ubron4`, `bot` FROM `users` WHERE `id` = "' . $id . '" AND `bot` = 0 LIMIT 1' );
if ( mysql_num_rows ( $valid_login ) == 1 ) {
$user_info = mysql_fetch_array ( $valid_login );
} else {
$prototype = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `name`, `prototype`, `battle`, `hp` FROM `bots` WHERE `id` = "' . $id . '" LIMIT 1' ));
$user_info = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `login`, `align`, `level`, `sila`, `lovk`, `inta`, `vinos`, `intel`, `maxhp`, `weap`, `noj`, `dubina`, `topor`, `mec`, `ubron1`, `ubron2`, `ubron3`, `ubron4`, `bot` FROM `users` WHERE `id` = "' . $prototype [ 'prototype' ] . '" LIMIT 1' ));
}
return $user_info ;
}
function get_wep_type ( $idwep ) {
if ( $idwep == 0 || $idwep == null || $idwep == '' ) {
return " kulak " ;
}
$wep = mysql_fetch_array ( mysql_query ( 'SELECT `otdel`, `minu` FROM `inventory` WHERE `id` = "' . $idwep . '" LIMIT 1' ));
if ( $wep [ 0 ] == '1' ) {
return " noj " ;
} elseif ( $wep [ 0 ] == '12' ) {
return " dubina " ;
} elseif ( $wep [ 0 ] == '11' ) {
return " topor " ;
} elseif ( $wep [ 0 ] == '13' ) {
return " mech " ;
} elseif ( $wep [ 0 ] == '52' ) {
return " posoh " ;
} elseif ( $wep [ 1 ] > 0 ) {
return " buket " ;
} else {
return " kulak " ;
}
}
function get_chanse ( $persent ) {
$mm = 1000000 ;
if ( mt_rand ( $mm , 100 * $mm ) <= $persent * $mm ) {
return true ;
} else {
return false ;
}
}
function get_block ( $who , $where_atack , $whom , $where_defend ) {
$blocks = array ( '1' => array ( 1 , 2 ), '2' => array ( 2 , 3 ), '3' => array ( 3 , 4 ), '4' => array ( 4 , 1 ));
if ( ! in_array ( $where_atack , $blocks [ $where_defend ])) {
return true ;
} else {
return false ;
}
}
function add_log ( $text ) {
$this -> log .= $text ;
}
function battle_end () {
global $caverooms , $user , $cavebots , $party , $rep ;
if ( $this -> battle_data ) {
$ss = @ array_keys ( $this -> battle );
$t1life = 0 ; $t2life = 0 ;
foreach ( $this -> t1 as $k => $v ) {
if ( in_array ( $v , array_keys ( $this -> battle ))) {
$t1life ++ ;
}
}
foreach ( $this -> t2 as $k => $v ) {
if ( in_array ( $v , array_keys ( $this -> battle ))) {
$t2life ++ ;
}
}
if ( $t2life == 0 || $t1life == 0 ) {
$charge = mysql_fetch_array ( mysql_query ( 'SELECT `win` FROM `battle` WHERE `id` = "' . $this -> battle_data [ 'id' ] . '" LIMIT 1' ));
}
if (( $t2life == 0 || $t1life == 0 ) && ( $charge [ 0 ] == 3 || $charge [ 0 ] == 9 )) {
mysql_query ( " UPDATE `battle` SET `win` = 0 WHERE `id` = ' { $this -> battle_data [ 'id' ] } ' LIMIT 1 " );
foreach ( $this -> t1 as $k => $v ) {
2018-03-04 02:09:58 +02:00
$nks1 [] = nick :: id ( $v ) -> short ();
2018-03-04 00:54:41 +02:00
$nks1hist [] = nick :: id ( $v ) -> full ( 1 );
2018-01-28 18:40:49 +02:00
}
foreach ( $this -> t2 as $k => $v ) {
2018-03-04 02:09:58 +02:00
$nks2 [] = nick :: id ( $v ) -> short ();
2018-03-04 00:54:41 +02:00
$nks2hist [] = nick :: id ( $v ) -> full ( 1 );
2018-01-28 18:40:49 +02:00
}
if ( in_array ( $ss [ 0 ], $this -> t1 )) {
$flag = 1 ;
foreach ( $this -> t1 as $k => $v ) {
mysql_query ( 'UPDATE `battle` SET `win` = 1 WHERE `id` = "' . $this -> battle_data [ 'id' ] . '" LIMIT 1' );
$this -> t1 [ $k ] = nick5 ( $v , " " );
if ( $this -> battle_data [ 'aren_of' ] == 1 && $this -> t1 [ $k ] && $v < _BOTSEPARATOR_ ) {
mysql_query ( 'INSERT INTO `logs_arena` (`battle`, `user`, `uid`, `damage`, `team`) VALUES ("' . $this -> battle_data [ 'id' ] . '", "' . $this -> t1 [ $k ] . '", "' . $v . '", "' . $this -> damage [ $v ] . '", "1")' );
}
if ( $this -> user [ 'x' ] != 0 || $this -> user [ 'y' ] != 0 && $this -> user [ 'laba' ] > 0 ) {
$lobj = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `laba_obj` WHERE `lib` = "' . $this -> user [ 'laba' ] . '" AND `x` = "' . $this -> user [ 'x' ] . '" AND `y` = "' . $this -> user [ 'y' ] . '" LIMIT 1' ));
if ( isset ( $lobj [ 'id' ])) {
$q2 = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `qst_user` WHERE `uid` = "' . $this -> user [ 'id' ] . '" AND `cancel` = "0" AND `finish` = "0" LIMIT 1' ));
if ( isset ( $q2 [ 'id' ])) {
$q1 = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `qst` WHERE `id` = "' . $q2 [ 'qid' ] . '" LIMIT 1' ));
if ( $q1 [ 'type' ] == 3 ) {
$jobs = 0 ;
$sp = mysql_query ( 'SELECT * FROM `bots` WHERE `battle` = "' . $this -> battle_data [ 'id' ] . '"' );
while ( $pl = mysql_fetch_array ( $sp )) {
if ( $q1 [ 'obj_id' ] == $pl [ 'prototype' ]) {
$jobs ++ ;
}
}
mysql_query ( 'UPDATE `qst_user` SET `val` = "' . ( $q2 [ 'val' ] + $jobs ) . '" WHERE `id` = "' . $q2 [ 'id' ] . '" LIMIT 1' );
}
}
mysql_query ( 'UPDATE `laba_obj` SET `use` = "' . time () . '" WHERE `lib` = "' . $lobj [ 'lib' ] . '" AND `x` = "' . $lobj [ 'x' ] . '" AND `y` = "' . $lobj [ 'y' ] . '"' );
}
}
$this -> exp [ $v ] = round ( $this -> exp [ $v ]);
$dop_exp = check_proc ( $this -> user [ 'id' ]);
if ( $dop_exp > 100 ) {
$add = ( $dop_exp - 100 );
$this -> exp [ $v ] += round (( $this -> exp [ $v ] * $add ) / 100 , 0 );
}
if ( $user [ 'caveleader' ] > 0 || $user [ 'laba' ] > 0 ) {
if ( $this -> damage [ $v ] > 1 ) {
$this -> exp [ $v ] = mt_rand ( 5 , 10 );
} else {
$this -> exp [ $v ] = 0 ;
}
}
if ( empty ( $this -> damage [ $v ])) {
$this -> damage [ $v ] = 0 ;
}
if ( $user [ 'caveleader' ] > 0 || $user [ 'laba' ] > 0 ) {
$rep = floor ( $this -> damage [ $v ] / 300 );
if ( $rep <= 0 ) {
$rep = 0 ;
}
$ads = '. Репутации: ' . $rep . ' ед.' ;
} else {
$rep = 0 ;
$ads = '.' ;
}
if ( $this -> battle_data [ 'clone' ] == 1 && $this -> battle_data [ 'fiz' ] == 0 ) {
addActions ( time (), 'kill_clone' , 0 , $this -> user [ 'id' ]);
}
if ( $this -> battle_data [ 'type' ] == 3 ) {
addActions ( time (), 'win_haot' , 0 , $this -> user [ 'id' ]);
}
if ( $this -> battle_data [ 'fiz' ] == 1 ) {
addActions ( time (), 'win_fiz' , 0 , $this -> user [ 'id' ]);
}
2018-03-04 02:09:58 +02:00
addchp ( '<font color=red>Внимание!</font> Победа! Бой окончен. В� его вами нане� ено урона : ' . $this -> damage [ $v ] . ' HP. Получено опыта : ' . $this -> exp [ $v ] . ' (' . $dop_exp . '%)' . $ads . ' ' , '{[]}' . nick :: id ( $v ) -> short () . '{[]}' );
2018-01-28 18:40:49 +02:00
mysql_query ( 'UPDATE `users` SET `win` = (`win` +1), `fullhptime` = ' . time () . ' WHERE `id` = "' . $v . '"' );
GiveExp ( $v , $this -> exp [ $v ]);
if ( $user [ 'caveleader' ] > 0 || $user [ 'laba' ] > 0 ) {
GiveRep ( $v , $rep );
}
if ( $user [ 'klan' ]) {
mysql_query ( 'UPDATE `clans` SET `clanexp` = (`clanexp`+' . ( int ) $this -> exp [ $user [ 'id' ]] . ') WHERE `id` = "' . $v [ $user [ 'klan' ]] . '" LIMIT 1' );
}
}
$winers .= implode ( " </B>, <B> " , $this -> t1 );
$lomka = $this -> t2 ;
include ( 'cave/win.php' );
} elseif ( in_array ( $ss [ 0 ], $this -> t2 )) {
$flag = 2 ;
foreach ( $this -> t2 as $k => $v ) {
mysql_query ( 'UPDATE `battle` SET `win` = 2 WHERE `id` = "' . $this -> user [ 'battle' ] . '" LIMIT 1' );
$this -> t2 [ $k ] = nick5 ( $v , " " );
if ( $this -> battle_data [ 'aren_of' ] == 1 && $this -> t2 [ $k ] && $v < _BOTSEPARATOR_ ) {
mysql_query ( 'INSERT INTO `logs_arena` (`battle`, `user`, `uid`, `damage`, `team`) VALUES ("' . $this -> user [ 'battle' ] . '", "' . $this -> t1 [ $k ] . '", "' . $v . '", "' . $this -> damage [ $v ] . '", "2")' );
}
if ( $this -> user [ 'laba' ] > 0 ) {
mysql_query ( 'UPDATE `users` SET `x` = "' . $this -> user [ 'xf' ] . '", `y` = "' . $this -> user [ 'yr' ] . '" WHERE `id` = "' . $this -> user [ 'id' ] . '" LIMIT 1' );
}
$this -> exp [ $v ] = round ( $this -> exp [ $v ]);
$dop_exp = check_proc ( $this -> user [ 'id' ]);
if ( $dop_exp > 100 ) {
$add = ( $dop_exp - 100 );
$this -> exp [ $v ] += round (( $this -> exp [ $v ] * $add ) / 100 , 0 );
}
if ( $user [ 'caveleader' ] > 0 || $user [ 'laba' ] > 0 ) {
if ( $this -> damage [ $v ] > 1 ) {
$this -> exp [ $v ] = mt_rand ( 5 , 10 );
} else {
$this -> exp [ $v ] = 0 ;
}
}
if ( $this -> battle_data [ 'clone' ] == 1 && $this -> battle_data [ 'fiz' ] == 0 ) {
addActions ( time (), 'kill_clone' , 0 , $this -> user [ 'id' ]);
}
if ( $this -> battle_data [ 'type' ] == 3 ) {
addActions ( time (), 'win_haot' , 0 , $this -> user [ 'id' ]);
}
if ( $this -> battle_data [ 'fiz' ] == 1 ) {
addActions ( time (), 'win_fiz' , 0 , $this -> user [ 'id' ]);
}
if ( in_array ( $user [ 'room' ], $caverooms )) {
$location = mysql_fetch_array ( mysql_query ( " SELECT `x`, `y`, `dir` FROM `caveparties` WHERE `user` = ' " . $this -> user [ 'id' ] . " ' LIMIT 1 " ));
if ( $location [ 'dir' ] == 0 ) { $y = $location [ 'y' ] * 2 ; $x = ( $location [ 'x' ] - 1 ) * 2 ; }
if ( $location [ 'dir' ] == 1 ) { $y = ( $location [ 'y' ] - 1 ) * 2 ; $x = $location [ 'x' ] * 2 ; }
if ( $location [ 'dir' ] == 2 ) { $y = $location [ 'y' ] * 2 ; $x = ( $location [ 'x' ] + 1 ) * 2 ; }
if ( $location [ 'dir' ] == 3 ) { $y = ( $location [ 'y' ] + 1 ) * 2 ; $x = $location [ 'x' ] * 2 ; }
mysql_query ( " UPDATE `cavebots` SET `battle` = 0 WHERE `battle` = ' " . $this -> battle_data [ 'id' ] . " ' " );
}
2018-03-04 02:09:58 +02:00
addchp ( '<font color=red>Внимание!</font> Победа! Бой окончен. В� его вами нане� ено урона : ' . ( int ) $this -> damage [ $v ] . ' HP. Получено опыта ' . $this -> exp [ $v ] . ' (' . $dop_exp . '%). ' , '{[]}' . nick :: id ( $v ) -> short () . '{[]}' );
2018-01-28 18:40:49 +02:00
mysql_query ( 'UPDATE `users` SET `win` = (`win`+1), `fullhptime` = ' . time () . ' WHERE `id` = "' . $v . '"' );
GiveExp ( $v , $this -> exp [ $v ]);
}
$winers .= implode ( " </B>, <B> " , $this -> t2 );
$lomka = $this -> t1 ;
} else {
if ( in_array ( $user [ 'room' ], $caverooms )) {
$location = mysql_fetch_array ( mysql_query ( " SELECT `x`, `y`, `dir` FROM `caveparties` WHERE `user` = ' " . $this -> user [ 'id' ] . " ' LIMIT 1 " ));
if ( $location [ 'dir' ] == 0 ) { $y = $location [ 'y' ] * 2 ; $x = ( $location [ 'x' ] - 1 ) * 2 ; }
if ( $location [ 'dir' ] == 1 ) { $y = ( $location [ 'y' ] - 1 ) * 2 ; $x = $location [ 'x' ] * 2 ; }
if ( $location [ 'dir' ] == 2 ) { $y = $location [ 'y' ] * 2 ; $x = ( $location [ 'x' ] + 1 ) * 2 ; }
if ( $location [ 'dir' ] == 3 ) { $y = ( $location [ 'y' ] + 1 ) * 2 ; $x = $location [ 'x' ] * 2 ; }
mysql_query ( " UPDATE `cavebots` SET `battle` = 0 WHERE `battle` = ' " . $this -> battle_data [ 'id' ] . " ' " );
}
if ( $this -> battle_data [ 'x' ] > 0 || $this -> battle_data [ 'y' ] > 0 && $this -> user [ 'laba' ] > 0 ) {
mysql_query ( 'UPDATE `users` SET `x` = "' . $this -> user [ 'xf' ] . '", `y` = "' . $this -> user [ 'yr' ] . '" WHERE `laba` = "' . $this -> user [ 'laba' ] . '" AND `x` = "' . $this -> battle_data [ 'x' ] . '" AND `y` = "' . $this -> battle_data [ 'y' ] . '" AND `battle` = "' . $this -> battle_data [ 'id' ] . '" LIMIT 1' );
}
include ( " cave/lose.php " );
}
if ( $lomka ) {
$haos_flag = 0 ;
foreach ( $lomka as $k => $v ) {
if ( mt_rand ( 1 , 6 ) == 1 ) {
$us = mysql_query ( 'UPDATE `inventory` SET `duration` = (`duration`+1) WHERE `type` != 12 AND `dressed` = 1 AND `owner` = \'' . $v . '\'' );
}
$inv_broken = mysql_query ( " SELECT * FROM `inventory` WHERE `type` != 12 AND `dressed` = 1 AND ((`maxdur` <= `duration`) OR (`dategoden` > 0 AND `dategoden` <= ' " . time () . " ')) AND `owner` = ' { $v } ' " );
while ( $br = mysql_fetch_array ( $inv_broken )) {
dropitemid ( $br [ 'type' ], $v );
}
$its = mysql_query ( " SELECT `id` FROM `inventory` WHERE `dressed` = 0 AND ((`maxdur` <= `duration`) OR (`dategoden` > 0 AND `dategoden` <= ' " . time () . " ')) AND `owner` = ' { $v } ' " );
while ( $it = mysql_fetch_array ( $its )) {
mysql_query ( " DELETE FROM `inventory` WHERE `id` = ' " . $it [ 'id' ] . " ' LIMIT 1 " );
mysql_query ( " INSERT INTO `delo` (`author`, `pers`, `text`, `type`, `date`) VALUES ('0', ' \" " . $it [ 'name' ] . " \" разрушил� � id : ( " . $it [ 'id' ] . " ).', '1', ' " . time () . " ') " );
}
$this -> exp [ $v ] = 0 ;
2018-03-04 02:09:58 +02:00
addchp ( '<font color=red>Внимание!</font> Поражение! Бой окончен. В� его вами нане� ено урона : ' . ( int ) $this -> damage [ $v ] . ' HP. Получено опыта 0.' , '{[]}' . nick :: id ( $v ) -> short () . '{[]}' );
2018-01-28 18:40:49 +02:00
mysql_query ( 'UPDATE `users` SET `lose` = (`lose`+1) WHERE `id` = \'' . $v . '\'' );
}
}
foreach ( $this -> t1 as $k => $v ) {
$us = mysql_query ( 'SELECT `duration`, `maxdur`, `name` FROM `inventory` WHERE `type` != 12 AND `dressed` = 1 AND `owner` = \'' . $v . '\'' );
while ( $rrow = mysql_fetch_row ( $us )) {
if (( $rrow [ 1 ] - $rrow [ 0 ]) == 1 ) {
2018-03-04 02:09:58 +02:00
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> Внимание! У "' . nick :: id ( $v ) -> short () . '" предмет "' . $rrow [ 2 ] . '" в критиче� ком � о� то� нии! <BR><small>(на правах рекламы) <b>Ремонтна� ма� тер� ка� </b>. Мы даем вторую жизнь � тарым вещам!</small><BR>' );
2018-01-28 18:40:49 +02:00
} elseif (( $rrow [ 1 ] - $rrow [ 0 ]) == 2 ) {
2018-03-04 02:09:58 +02:00
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> Внимание! У "' . nick :: id ( $v ) -> short () . '" предмет "' . $rrow [ 2 ] . '" нуждает� � в ремонте! <BR><small>(на правах рекламы) <b>Ремонтна� ма� тер� ка� </b>. Мы даем вторую жизнь � тарым вещам!</small><BR>' );
2018-01-28 18:40:49 +02:00
}
}
}
foreach ( $this -> t2 as $k => $v ) {
$us = mysql_query ( 'SELECT `duration`, `maxdur`, `name` FROM `inventory` WHERE `type` != 12 AND `dressed` = 1 AND `owner` = \'' . $v . '\'' );
while ( $rrow = mysql_fetch_row ( $us )) {
if (( $rrow [ 1 ] - $rrow [ 0 ]) == 1 ) {
2018-03-04 02:09:58 +02:00
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> Внимание! У "' . nick :: id ( $v ) -> short () . '" предмет ' . $rrow [ 2 ] . ' в критиче� ком � о� то� нии! <BR><small>(на правах рекламы) <b>Ремонтна� ма� тер� ка� </b>. Мы даем вторую жизнь � тарым вещам!</small><BR>' );
2018-01-28 18:40:49 +02:00
} elseif (( $rrow [ 1 ] - $rrow [ 0 ]) == 2 ) {
2018-03-04 02:09:58 +02:00
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> Внимание! У "' . nick :: id ( $v ) -> short () . '" предмет "' . $rrow [ 2 ] . '" нуждает� � в ремонте! <BR><small>(на правах рекламы) <b>Ремонтна� ма� тер� ка� </b>. Мы даем вторую жизнь � тарым вещам!</small><BR>' );
2018-01-28 18:40:49 +02:00
}
}
}
if ( $winers ) {
if ( $this -> battle_data [ 'aren_of' ] == 1 ) {
$arr_battle = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `win`, `aren_of` FROM `battle` WHERE `id` = "' . $this -> battle_data [ 'id' ] . '" LIMIT 1' ));
$us_win = mysql_query ( 'SELECT `id`, `user`, `uid`, `team` FROM `logs_arena` WHERE `team` = "' . $arr_battle [ 'win' ] . '" AND `battle` = "' . $this -> battle_data [ 'id' ] . '" ORDER BY `damage` DESC LIMIT 3' );
while ( $win = mysql_fetch_array ( $us_win )) {
$uss .= ', ' ;
$uss .= $win [ 'user' ];
mysql_query ( 'INSERT INTO `effects` (`type`, `name`, `time`, `hp`, `owner`) VALUES ("7", "ÐйфориÑ� ", "' . ( time () + 60 * 60 * 24 ) . '", "200", "' . $win [ 'uid' ] . '")' );
mysql_query ( 'UPDATE `users` SET `maxhp` = (`maxhp`+200) WHERE `id` = "' . $win [ 'uid' ] . '" LIMIT 3' );
mysql_query ( 'INSERT INTO `effects` (`type`, `name`, `time`, `proc_exp`, `owner`) VALUES ("6", "Повешенный опыт (200%)", "' . ( time () + 60 * 60 * 24 ) . '", "100", "' . $win [ 'uid' ] . '")' );
}
$bad = mysql_query ( 'SELECT `id`, `uid`, `team` FROM `logs_arena` WHERE `team` != "' . $arr_battle [ 'win' ] . '" AND `battle` = "' . $this -> battle_data [ 'id' ] . '" ORDER BY `damage` DESC LIMIT 3' );
while ( $give = mysql_fetch_array ( $bad )) {
mysql_query ( 'INSERT INTO `effects` (`type`, `name`, `time`, `proc_exp`, `owner`) VALUES ("6", "Повешенный опыт (150%)", "' . ( time () + 60 * 60 * 24 ) . '", "50", "' . $give [ 'uid' ] . '")' );
}
if ( $uss != '' ) {
$uss = ltrim ( $uss , ', ' );
} else {
$uss = '-Игроков не было в бою-' ;
}
if ( $arr_battle [ 'win' ] == 1 ) {
AddChatSystem ( " <font color=red>Внимание! Тьма одержала победу благодар� великим воинам : <b> $uss </b></font> " );
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> ' . 'Бой закончен, победа за <B>Силами Тьмы</B><BR>' );
} else {
AddChatSystem ( " <font color=red>Внимание! Свет одержал победу благодар� великим воинам : <b> $uss </b></font> " );
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> ' . 'Бой закончен, победа за <B>Силами Света</B><BR>' );
}
mysql_query ( 'UPDATE `variables` SET `value` = "' . $arr_battle [ 'win' ] . '" WHERE `var` = "arena_win" LIMIT 1' );
mysql_query ( 'UPDATE `battle` SET `aren_of` = 0 WHERE `id` = "' . $arr_battle [ 'id' ] . '" AND `aren_of` = 1 LIMIT 1' );
} else {
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> ' . 'Бой закончен, победа за <B>' . $winers . '</B><BR>' );
}
unset ( $uss );
if ( $this -> battle_data [ 'blood' ]) {
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> ... и победители � тали калечить проигравших...<BR>' );
foreach ( $lomka as $k => $v ) {
if ( $this -> battle_data [ 'blood' ] == 2 ) {
$tr = settravma ( $v , 13 , 86400 , 1 );
} else {
$tr = settravma ( $v , 0 , 86400 , 1 );
}
if ( $v < _BOTSEPARATOR_ ) {
2018-03-04 02:09:58 +02:00
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> <b>' . nick :: id ( $v ) -> short () . '</b> получил повреждение: <font color=red>' . $tr . '</font><BR>' );
2018-01-28 18:40:49 +02:00
$inv_broken = mysql_query ( " SELECT `id`, `type`, `dressed`, `duration`, `maxdur`, `dategoden`, `owner` FROM `inventory` WHERE `type` != 12 AND `dressed` = 1 AND ((`maxdur` <= `duration`) OR (`dategoden` > 0 AND `dategoden` <= ' " . time () . " ')) AND `owner` = ' { $v } ' " );
while ( $br = mysql_fetch_array ( $inv_broken )) {
dropitemid ( $br [ 'type' ], $v );
}
}
}
}
} else {
if ( $this -> battle_data [ 'aren_of' ] == 1 ) {
AddChatSystem ( " <font color=red>Внимание! Бой на � рене � нгелов завершил� � ничьей, на � той недели � илы тьмы и � вета равны.</font> " );
mysql_query ( 'UPDATE `variables` SET `value` = 3 WHERE `var` = "arena_win" LIMIT 1' );
mysql_query ( 'UPDATE `battle` SET `aren_of` = 0 WHERE `id` = "' . $arr_battle [ 'id' ] . '" AND `aren_of` = 1 LIMIT 1' );
}
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> ' . 'Бой закончен. � ичь� .<BR>' );
mysql_query ( " UPDATE `users` SET `battle` = 0, `nich` = (`nich`+1), `fullhptime` = " . time () . " WHERE `battle` = ' { $this -> user [ 'battle' ] } ' " );
$this -> exp = 0 ;
}
if ( $flag == 1 ) {
2018-02-13 20:43:24 +02:00
$rr = implode ( " </B>, <B> " , $nks1 ) . " <img src=../i/flag.gif></B> и <B> " . implode ( " </B>, <B> " , $nks2 );
2018-01-28 18:40:49 +02:00
} elseif ( $flag == 2 ) {
2018-02-13 20:43:24 +02:00
$rr = implode ( " </B>, <B> " , $nks1 ) . " </B> и <B> " . implode ( " </B>, <B> " , $nks2 ) . " <img src=../i/flag.gif /> " ;
2018-01-28 18:40:49 +02:00
} else {
$rr = implode ( " </B>, <B> " , $nks1 ) . " </B> и <B> " . implode ( " </B>, <B> " , $nks2 ) . " " ;
}
mysql_query ( 'UPDATE `battle` SET `t1hist` = \'' . implode ( " , " , $nks1hist ) . '\', `t2hist` = \'' . implode ( " , " , $nks2hist ) . '\' WHERE `id` = "' . $this -> battle_data [ 'id' ] . '" LIMIT 1' );
mysql_query ( 'UPDATE `battle` SET `exp` = \'' . serialize ( $this -> exp ) . '\' WHERE `id` = "' . $this -> battle_data [ 'id' ] . '" LIMIT 1' );
mysql_query ( " UPDATE `users` SET `battle` = 0, `fullhptime` = ' " . time () . " ' WHERE `battle` = ' { $this -> battle_data [ 'id' ] } ' " );
unset ( $this -> battle );
return true ;
}
}
return false ;
}
function end_gora () {
if ( $this -> GetTimeout ()) {
foreach ( $this -> team_mine as $v ) {
if ( in_array ( $v , array_keys ( $this -> battle ))) {
$vvv = $v ;
}
}
$this -> AddToLog ( " <span class=date> " . date ( " H:i " ) . " </span> Бой закончен по таймауту.<BR> " );
foreach ( $this -> team_enemy as $v => $k ) {
if ( $k > _BOTSEPARATOR_ ) {
$bots = mysql_fetch_array ( mysql_query ( 'SELECT `hp` FROM `bots` WHERE `id` = "' . $k . '" LIMIT 1' ));
$us [ 'hp' ] = $bots [ 'hp' ];
} else {
$us = mysql_fetch_array ( mysql_query ( 'SELECT `hp` FROM `users` WHERE `id` = "' . $k . '" LIMIT 1' ));
}
if ( $us && ( int ) $us [ 'hp' ] > 0 ) {
if ( ! $this -> battle_data [ 'blood' ]) {
$tr = settravma ( $k , 0 , 86400 , 1 );
if ( $k < _BOTSEPARATOR_ ) {
2018-03-04 02:09:58 +02:00
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> <b>' . nick :: id ( $k ) -> short () . '</b> получил повреждение: <font color=red>' . $tr . '</font><BR>' );
2018-01-28 18:40:49 +02:00
}
}
}
}
foreach ( $this -> team_enemy as $v => $k ) {
mysql_query ( 'UPDATE `users` SET `hp` = 0, `fullhptime` = ' . time () . ' WHERE `id` = "' . $k . '"' );
}
header ( " Location: " . $_SERVER [ 'PHP_SELF' ] . " ?batl= " . $this -> user [ 'battle' ]);
}
}
function end_draft () {
if ( ! $this -> user [ 'in_tower' ]) {
if ( $this -> GetTimeout ()) {
$this -> battle = null ;
mysql_query ( " UPDATE `users` SET `battle` = 0, `nich` = (`nich`+1), `fullhptime` = " . time () . " WHERE `battle` = { $this -> battle_data [ 'id' ] } " );
mysql_query ( " UPDATE `battle` SET `win` = 0 WHERE `id` = ' { $this -> battle_data [ 'id' ] } ' LIMIT 1 " );
$this -> AddToLog ( " <span class=date> " . date ( " H:i " ) . " </span> Бой закончен по таймауту. <b>� ичь� </b>.<BR> " );
$this -> exp = 0 ;
$this -> write_log ();
}
}
}
function FastDeath () {
if ( $this -> battle ) {
foreach ( $this -> battle as $k => $v ) {
if ( $k > _BOTSEPARATOR_ ) {
$bot = mysql_fetch_array ( mysql_query ( " SELECT `hp`, `battle`, `prototype` FROM `bots` WHERE `id` = ' { $k } ' LIMIT 1 " ));
$us = mysql_fetch_array ( mysql_query ( " SELECT `maxhp`, `sex` FROM `users` WHERE `id` = ' { $bot [ 'prototype' ] } ' LIMIT 1 " ));
$us [ 'hp' ] = $bot [ 'hp' ];
$us [ 'battle' ] = $bot [ 'battle' ];
} else {
$us = mysql_fetch_array ( mysql_query ( " SELECT `hp`, `maxhp`, `sex`, `battle` FROM `users` WHERE `id` = ' { $k } ' LIMIT 1 " ));
}
if ( $us [ 'hp' ] <= 0 ) {
if ( $us [ 'sex' ] == 1 ) {
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> ' . nick5 ( $k , 'b' ) . ' умер!<BR>' );
} else {
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> ' . nick5 ( $k , 'b' ) . ' погибла!<BR>' );
}
if ( $k < _BOTSEPARATOR_ ) {
mysql_query ( " UPDATE `users` SET `hp` = 0, `fullhptime` = ' " . time () . " ' WHERE `id` = ' { $k } ' LIMIT 1 " );
} else {
mysql_query ( " UPDATE `bots` SET `hp` = 0 WHERE `id` = ' { $k } ' LIMIT 1 " );
}
foreach ( $this -> battle as $kak => $vav ) {
unset ( $this -> battle [ $kak ][ $k ]);
}
unset ( $this -> battle [ $k ]);
}
if ( $k == null ) {
foreach ( $this -> battle as $kak => $vav ) {
unset ( $this -> battle [ $kak ][ $k ]);
}
}
if ( $us [ 'battle' ] == 0 ) {
foreach ( $this -> battle as $kak => $vav ) {
unset ( $this -> battle [ $kak ][ $k ]);
}
unset ( $this -> battle [ $k ]);
}
unset ( $us );
}
$this -> UpdateBattle ();
}
}
function gen_color ( $u , $enemy ) {
$this -> t1 = explode ( " ; " , $this -> battle_data [ 't1' ]);
$this -> t2 = explode ( " ; " , $this -> battle_data [ 't2' ]);
$c = array ();
if ( in_array ( $u , $this -> t1 )) {
$c [ 'me' ] = " B1 " ;
$c [ 'he' ] = " B2 " ;
} else {
$c [ 'me' ] = " B2 " ;
$c [ 'he' ] = " B1 " ;
}
return $c ;
}
function GetUserTeam () {
$this -> t1 = explode ( " ; " , $this -> battle_data [ 't1' ]);
$this -> t2 = explode ( " ; " , $this -> battle_data [ 't2' ]);
if ( in_array ( $this -> user [ 'id' ], $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 ;
}
}
function init_botRazmen ( $uid , $enemy , $attack , $defend ) {
$RazmenValues = array ( 1 , 2 , 3 , 4 );
$hp_1 = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp`, `prototype` FROM `bots` WHERE `id` = "' . $uid . '" LIMIT 1' ));
$maxhp_1 = mysql_fetch_array ( mysql_query ( 'SELECT `maxhp` FROM `users` WHERE `id` = "' . $hp_1 [ 'prototype' ] . '" LIMIT 1' ));
$hp_2 = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp`, `prototype` FROM `bots` WHERE `id` = "' . $enemy . '" LIMIT 1' ));
$maxhp_2 = mysql_fetch_array ( mysql_query ( 'SELECT `maxhp` FROM `users` WHERE `id` = "' . $hp_2 [ 'prototype' ] . '" LIMIT 1' ));
$color = $this -> gen_color ( $uid , $enemy );
if ( in_array ( $attack , $RazmenValues ) && in_array ( $defend , $RazmenValues ) && $enemy && $hp_1 [ 'hp' ] > 0 ) {
if ( $this -> battle [ $enemy ][ $uid ][ 0 ] > 0 ) {
$this -> AddToLogBot ( $this -> GetComment ());
$mf = $this -> solve_mfs ( $uid , $enemy , $attack );
$uvorotme = $this -> chanse ( $mf [ 'me' ][ 'chanse' ]);
$krithe = $this -> chanse ( $mf [ 'he' ][ 'chanse_krit' ]);
if ( $uvorotme && ! $krithe ) {
$uve = 1 ;
} elseif ( ! $uvorotme && $krithe ) {
$uve = 2 ;
} elseif ( $uvorotme && $krithe ) {
$uve = rand ( 1 , 2 );
} else {
$uve = 0 ;
}
if ( $uve == 1 ) {
$this -> AddToLogBot ( $this -> razmen_log ( " uvorot " , $this -> battle [ $enemy ][ $uid ][ 0 ], $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]), 0 , $enemy , $color [ 'he' ], $uid , $color [ 'me' ], 0 , 0 ));
} elseif ( $uve == 2 ) {
if ( $this -> GetBlock ( " me " , $this -> battle [ $enemy ][ $uid ][ 0 ], $defend , $enemy )) {
$hs = 1 ; $m = 'a' ;
} else {
$hs = 2 ; $m = '' ;
}
$yron = $mf [ 'he' ][ 'udar' ] * $hs ;
$us = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp` FROM `bots` WHERE `id` = "' . $uid . '" LIMIT 1' ));
if ( $us [ 'hp' ] < $yron ) {
$yron = $us [ 'hp' ];
}
$this -> damage [ $enemy ] += $yron ;
$jv = ( $hp_1 [ 'hp' ] - $yron );
$this -> exp [ $enemy ] += SolveExp ( $enemy , $uid , $yron );
$this -> AddToLogBot ( $this -> razmen_log ( " krit " . $m , $this -> battle [ $enemy ][ $uid ][ 0 ], $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]), $yron , $enemy , $color [ 'he' ], $uid , $color [ 'me' ], ( $hp_1 [ 'hp' ] - $yron ), $maxhp_2 [ 'maxhp' ]));
mysql_query ( 'UPDATE `bots` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $uid . '" LIMIT 1' ); ### Maybe not limited
} elseif ( ! $this -> GetBlock ( " me " , $this -> battle [ $enemy ][ $uid ][ 0 ], $defend , $enemy )) {
$yron = $mf [ 'he' ][ 'udar' ];
$us = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp` FROM `bots` WHERE `id` = "' . $uid . '" LIMIT 1' ));
if ( $us [ 'hp' ] < $yron ) {
$yron = $us [ 'hp' ];
}
$jv = ( $hp_1 [ 'hp' ] - $yron );
$this -> AddToLogBot ( $this -> razmen_log ( " udar " , $this -> battle [ $enemy ][ $uid ][ 0 ], $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]), $yron , $enemy , $color [ 'he' ], $uid , $color [ 'me' ], ( $hp_1 [ 'hp' ] - $yron ), $maxhp_2 [ 'maxhp' ]));
mysql_query ( 'UPDATE `bots` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $uid . '" LIMIT 1' );
} else {
$this -> AddToLogBot ( $this -> razmen_log ( " block " , $this -> battle [ $enemy ][ $uid ][ 0 ], $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]), 0 , $enemy , $color [ 'he' ], $uid , $color [ 'me' ], 0 , 0 ));
}
$uvorothe = $this -> chanse ( $mf [ 'he' ][ 'chanse' ]);
$kritme = $this -> chanse ( $mf [ 'me' ][ 'chanse_krit' ]);
if ( $uvorothe && ! $kritme ) {
$uve = 1 ;
} elseif ( ! $uvorothe && $kritme ) {
$uve = 2 ;
} elseif ( $uvorothe && $kritme ) {
$uve = rand ( 1 , 2 );
} else {
$uve = 0 ;
}
if ( $uve == 1 ) {
$this -> AddToLogBot ( $this -> razmen_log ( " uvorot " , $attack , $this -> GetWeaponType ( $this -> user [ 'weap' ]), 0 , $uid , $color [ 'me' ], $enemy , $color [ 'he' ], 0 , 0 ));
} elseif ( $uve == 2 ) {
if ( $this -> GetBlock ( " he " , $attack , $this -> battle [ $enemy ][ $uid ][ 1 ], $enemy )) {
$hs = 1 ; $m = 'a' ;
} else {
$hs = 2 ; $m = '' ;
}
$yron = $mf [ 'me' ][ 'udar' ] * $hs ;
$us = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp` FROM `bots` WHERE `id` = "' . $enemy . '" LIMIT 1' ));
if ( $us [ 'hp' ] < $yron ) {
$yron = $us [ 'hp' ];
}
$this -> AddToLogBot ( $this -> razmen_log ( " krit " . $m , $attack , $this -> GetWeaponType ( $this -> user [ 'weap' ]), $yron , $uid , $color [ 'me' ], $enemy , $color [ 'he' ], ( $this -> enemyhar [ 'hp' ] - $yron ), $this -> enemyhar [ 'maxhp' ]));
if ( $enemy > _BOTSEPARATOR_ ) {
mysql_query ( 'UPDATE `bots` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $enemy . '" LIMIT 1' );
} else {
mysql_query ( 'UPDATE `bots` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $enemy . '" LIMIT 1' );
}
} elseif ( ! $this -> GetBlock ( " he " , $attack , $this -> battle [ $enemy ][ $uid ][ 1 ], $enemy )) {
$yron = $mf [ 'me' ][ 'udar' ];
$us = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp` FROM `bots` WHERE `id` = "' . $enemy . '" LIMIT 1' ));
if ( $us [ 'hp' ] < $yron ) {
$yron = $us [ 'hp' ];
}
$this -> AddToLogBot ( $this -> razmen_log ( " udar " , $attack , $this -> GetWeaponType ( $this -> user [ 'weap' ]), $yron , $uid , $color [ 'me' ], $enemy , $color [ 'he' ], ( $this -> enemyhar [ 'hp' ] - $yron ), $this -> enemyhar [ 'maxhp' ]));
if ( $enemy > _BOTSEPARATOR_ ) {
mysql_query ( 'UPDATE `bots` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $enemy . '" LIMIT 1' );
} else {
mysql_query ( 'UPDATE `bots` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $enemy . '" LIMIT 1' );
}
} else {
$this -> AddToLogBot ( $this -> razmen_log ( " block " , $attack , $this -> GetWeaponType ( $this -> user [ 'weap' ]), 0 , $uid , $color [ 'me' ], $enemy , $color [ 'he' ], 0 , 0 ));
}
$this -> battle [ $enemy ][ $uid ] = array ( 0 , 0 , time ());
mysql_query ( " UPDATE `battle` SET `to1` = ' " . time () . " ', `to2` = ' " . time () . " ' WHERE `id` = ' " . $this -> battle_data [ 'id' ] . " ' LIMIT 1 " );
$this -> UpdateBattle ();
} else {
$this -> battle [ $uid ][ $enemy ] = array ( $attack , $defend , time ());
if ( $this -> my_class == " B1 " && $jv > 0 ) {
mysql_query ( " UPDATE `battle` SET `to1` = ' " . time () . " ', `to2` = ' " . ( time () - 1 ) . " ' WHERE `id` = ' " . $this -> battle_data [ 'id' ] . " ' LIMIT 1 " );
} elseif ( $jv > 0 ) {
mysql_query ( " UPDATE `battle` SET `to2` = ' " . time () . " ', `to1` = ' " . ( time () - 1 ) . " ' WHERE `id` = ' " . $this -> battle_data [ 'id' ] . " ' LIMIT 1 " );
} else {
mysql_query ( " UPDATE `battle` SET `to2` = ' " . time () . " ', `to1` = ' " . ( time ()) . " ' WHERE `id` = ' " . $this -> battle_data [ 'id' ] . " ' LIMIT 1 " );
}
$this -> FastDeath ();
$this -> UpdateBattle ();
#header('Location: fbattle.php');
die ();
}
} else {
return false ;
}
}
function InitRazmen ( $enemy , $attack , $defend ) {
$RazmenValues = array ( 1 , 2 , 3 , 4 ); $DefValues = array ( 1 , 2 , 3 , 4 );
if ( in_array ( $attack , $RazmenValues ) && in_array ( $defend , $DefValues ) && $enemy && $this -> user [ 'hp' ] > 0 ) {
if ( $this -> battle [ $enemy ][ $this -> user [ 'id' ]][ 0 ] > 0 ) {
$this -> AddToLog ( $this -> GetComment ());
$mfs = $this -> solve_mfs ( $this -> user [ 'id' ], $enemy , $attack );
$color = $this -> gen_color ( $this -> user [ 'id' ], $enemy );
if ( $mfs [ 'me' ][ 'chanse' ] > 0 ) {
$uvorotme = $this -> chanse ( $mfs [ 'me' ][ 'chanse' ]);
} else {
$uvorotme = false ;
}
if ( $mfs [ 'me' ][ 'chanse_krit' ] > 0 ) {
$krithe = $this -> chanse ( $mfs [ 'he' ][ 'chanse_krit' ]);
} else {
$krithe = false ;
}
if ( $uvorotme && ! $krithe ) {
$uve = 1 ;
} elseif ( ! $uvorotme && $krithe ) {
$uve = 2 ;
} elseif ( $uvorotme && $krithe ) {
$uve = rand ( 1 , 2 );
} else {
$uve = 0 ;
}
if ( $uve == 1 ) {
$this -> AddToLog ( $this -> razmen_log ( " uvorot " , $this -> battle [ $enemy ][ $this -> user [ 'id' ]][ 0 ], $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]), 0 , $enemy , $color [ 'me' ], $this -> user [ 'id' ], $color [ 'he' ], 0 , 0 ));
} elseif ( $uve == 2 ) {
$this -> battle [ $enemy ][ $this -> user [ 'id' ]] = array ( $attack , $defend , time ());
if ( $this -> get_blocks ( $this -> battle [ $this -> user [ 'id' ]][ $enemy ][ 0 ], $this -> battle [ $enemy ][ $this -> user [ 'id' ]][ 1 ])) {
$hs = 1 ; $m = 'a' ;
} else {
$hs = 2 ; $m = '' ;
}
$yron = $mfs [ 'he' ][ 'udar' ] * $hs ;
$hp_u = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp` FROM `users` WHERE `id` = "' . $this -> user [ 'id' ] . '" LIMIT 1' ));
if ( $hp_u [ 'hp' ] < ( $mfs [ 'he' ][ 'udar' ] * $hs )) {
$yron = $hp_u [ 'hp' ];
}
$this -> damage [ $enemy ] += $yron ;
$jv = ( $this -> user [ 'hp' ] - $yron );
$this -> exp [ $enemy ] += SolveExp ( $enemy , $this -> user [ 'id' ], $yron );
$this -> AddToLog ( $this -> razmen_log ( " krit " . $m , $this -> battle [ $this -> user [ 'id' ]][ $enemy ][ 0 ], $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]), $yron , $enemy , $color [ 'me' ], $this -> user [ 'id' ], $color [ 'he' ], ( $this -> user [ 'hp' ] - $yron ), $this -> user [ 'maxhp' ]));
mysql_query ( 'UPDATE `users` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $this -> user [ 'id' ] . '" LIMIT 1' );
if ( ! ( $this -> user [ 'align' ] == '2' || $this -> user [ 'align' ] == '8.31' )) {
$tmphp = mysql_fetch_array ( mysql_query ( " SELECT `hp` FROM `users` WHERE `id` = { $this -> user [ 'id' ] } LIMIT 1 " ));
$tmphp = $tmphp [ 'hp' ];
if ( $tmphp <= 0 ) {
if ( mt_rand ( 0 , 100 ) <= 40 && $this -> user [ 'level' ] > 6 ) {
$tr = settravma ( $this -> user [ 'id' ], 0 , 86400 , 0 );
if ( $this -> user [ 'id' ] < _BOTSEPARATOR_ ) {
2018-03-04 02:09:58 +02:00
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> <b>' . nick :: id ( $this -> user [ 'id' ]) -> short () . '</b> получил повреждение: <font color=red>' . $tr . '</font><BR>' );
2018-01-28 18:40:49 +02:00
}
}
}
}
} elseif ( ! $this -> get_blocks ( $this -> user [ 'id' ], $this -> battle [ $enemy ][ $this -> user [ 'id' ]][ 0 ], $enemy , $this -> battle [ $this -> user [ 'id' ]][ $enemy ][ 1 ])) {
$yron = $mfs [ 'he' ][ 'udar' ];
$hp_u = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp` FROM `users` WHERE `id` = "' . $this -> user [ 'id' ] . '" LIMIT 1' ));
if ( $hp_u [ 'hp' ] < $mfs [ 'he' ][ 'udar' ]) {
$yron = $hp_u [ 'hp' ];
}
$this -> damage [ $enemy ] += $yron ;
$jv = ( $this -> user [ 'hp' ] - $yron );
$this -> exp [ $enemy ] += SolveExp ( $enemy , $this -> user [ 'id' ], $yron );
$this -> AddToLog ( $this -> razmen_log ( " udar " , $this -> battle [ $enemy ][ $this -> user [ 'id' ]][ 0 ], $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]), $yron , $enemy , $color [ 'me' ], $this -> user [ 'id' ], $color [ 'he' ], ( $this -> user [ 'hp' ] - $yron ), $this -> user [ 'maxhp' ]));
mysql_query ( 'UPDATE `users` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $this -> user [ 'id' ] . '" LIMIT 1' );
} else {
$this -> AddToLog ( $this -> razmen_log ( " block " , $this -> battle [ $enemy ][ $this -> user [ 'id' ]][ 1 ], $this -> GetWeaponType ( $this -> enemyhar [ 'weap' ]), 0 , $enemy , $color [ 'me' ], $this -> user [ 'id' ], $color [ 'he' ], 0 , 0 ));
}
if ( $mfs [ 'he' ][ 'chanse' ] > 0 ) {
$uvorothe = $this -> chanse ( $mfs [ 'he' ][ 'chanse' ]);
} else {
$uvorothe = false ;
}
if ( $mfs [ 'me' ][ 'chanse_krit' ] > 0 ) {
$kritme = $this -> chanse ( $mfs [ 'me' ][ 'chanse_krit' ]);
} else {
$kritme = false ;
}
if ( $uvorothe && ! $kritme ) {
$uve_1 = 1 ;
} elseif ( ! $uvorothe && $kritme ) {
$uve_1 = 2 ;
} elseif ( $uvorothe && $kritme ) {
$uve_1 = rand ( 1 , 2 );
} else {
$uve_1 = 0 ;
}
if ( $uve_1 == 1 ) {
$this -> AddToLog ( $this -> razmen_log ( " uvorot " , $attack , $this -> GetWeaponType ( $this -> user [ 'weap' ]), 0 , $this -> user [ 'id' ], $color [ 'me' ], $enemy , $color [ 'he' ], 0 , 0 ));
} elseif ( $uve_1 == 2 ) {
if ( $this -> get_blocks ( $enemy , $this -> battle [ $this -> user [ 'id' ]][ $enemy ][ 0 ], $this -> user [ 'id' ], $this -> battle [ $enemy ][ $this -> user [ 'id' ]][ 1 ])) {
$hs = 1 ; $m = 'a' ;
} else {
$hs = 2 ; $m = '' ;
}
$yron = $mfs [ 'me' ][ 'udar' ] * $hs ;
if ( $enemy > _BOTSEPARATOR_ ) {
$hp_u = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp` FROM `bots` WHERE `id` = "' . $enemy . '" LIMIT 1' ));
} else {
$hp_u = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp` FROM `users` WHERE `id` = "' . $enemy . '" LIMIT 1' ));
}
if ( $hp_u [ 'hp' ] < $yron ) {
$yron = $hp_u [ 'hp' ];
}
$this -> damage [ $this -> user [ 'id' ]] += $yron ;
$this -> exp [ $this -> user [ 'id' ]] += SolveExp ( $this -> user [ 'id' ], $enemy , $yron );
$this -> AddToLog ( $this -> razmen_log ( " krit " . $m , $attack , $this -> GetWeaponType ( $this -> user [ 'weap' ]), $yron , $this -> user [ 'id' ], $color [ 'me' ], $enemy , $color [ 'he' ], ( $this -> enemyhar [ 'hp' ] - $yron ), $this -> enemyhar [ 'maxhp' ]));
if ( $enemy > _BOTSEPARATOR_ ) {
mysql_query ( 'UPDATE `bots` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $enemy . '" LIMIT 1' );
} else {
mysql_query ( 'UPDATE `users` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $enemy . '" LIMIT 1' );
$tmpen = mysql_fetch_array ( mysql_query ( " SELECT `id`, `align`, `hp`, `level` FROM `users` WHERE `id`= ' { $enemy } ' LIMIT 1 " ));
if ( ! ( $tmpen [ 'align' ] == '2' || $tmpen [ 'align' ] == '8.31' )) {
$tmphp = $tmpen [ 'hp' ];
if ( $tmphp <= 0 ) {
if ( mt_rand ( 0 , 100 ) <= 40 && $tmpen [ 'level' ] > 6 ) {
$tr = settravma ( $tmpen [ 'id' ], $tmptravma , 86400 , 0 );
if ( $tmpen [ 'id' ] < _BOTSEPARATOR_ ) {
2018-03-04 02:09:58 +02:00
$this -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> <b>' . nick :: id ( $tmpen [ 'id' ]) -> short () . '</b> получил повреждение: <font color=red>' . $tr . '</font><BR>' );
2018-01-28 18:40:49 +02:00
}
}
}
}
}
} elseif ( $this -> get_blocks ( " he " , $this -> battle [ $this -> user [ 'id' ]][ $enemy ][ 0 ], $this -> user [ 'id' ], $this -> battle [ $enemy ][ $this -> user [ 'id' ]][ 1 ])) {
$yron = $mfs [ 'me' ][ 'udar' ];
if ( $enemy > _BOTSEPARATOR_ ) {
$hp_u = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp` FROM `bots` WHERE `id` = "' . $enemy . '" LIMIT 1' ));
} else {
$hp_u = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `hp` FROM `users` WHERE `id` = "' . $enemy . '" LIMIT 1' ));
}
if ( $hp_u [ 'hp' ] < $yron ) {
$yron = $hp_u [ 'hp' ];
}
$this -> damage [ $this -> user [ 'id' ]] += $yron ;
$this -> exp [ $this -> user [ 'id' ]] += SolveExp ( $this -> user [ 'id' ], $enemy , $yron );
$this -> AddToLog ( $this -> razmen_log ( " udar " , $attack , $this -> GetWeaponType ( $this -> user [ 'weap' ]), $yron , $this -> user [ 'id' ], $color [ 'me' ], $enemy , $color [ 'he' ], ( $this -> enemyhar [ 'hp' ] - $yron ), $this -> enemyhar [ 'maxhp' ]));
if ( $enemy > _BOTSEPARATOR_ ) {
mysql_query ( 'UPDATE `bots` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $enemy . '" LIMIT 1' );
} else {
mysql_query ( 'UPDATE `users` SET `hp` = (`hp` - ' . $yron . ') WHERE `id` = "' . $enemy . '" LIMIT 1' );
}
} else {
$this -> AddToLog ( $this -> razmen_log ( " block " , $defend , $this -> GetWeaponType ( $this -> user [ 'weap' ]), 0 , $this -> user [ 'id' ], $color [ 'me' ], $enemy , $color [ 'he' ], 0 , 0 ));
}
$this -> battle [ $enemy ][ $this -> user [ 'id' ]] = array ( 0 , 0 , time ());
mysql_query ( " UPDATE `battle` SET `to1` = ' " . time () . " ', `to2` = ' " . time () . " ' WHERE `id` = ' " . $this -> user [ 'battle' ] . " ' LIMIT 1 " );
$this -> UpdateBattle ();
} else {
$this -> battle [ $this -> user [ 'id' ]][ $enemy ] = array ( $attack , $defend , time ());
if ( $this -> my_class == " B1 " && $jv > 0 ) {
mysql_query ( " UPDATE `battle` SET `to1` = ' " . time () . " ', `to2` = ' " . ( time () - 1 ) . " ' WHERE `id` = ' " . $this -> battle_data [ 'id' ] . " ' LIMIT 1 " );
} elseif ( $jv > 0 ) {
mysql_query ( " UPDATE `battle` SET `to2` = ' " . time () . " ', `to1` = ' " . ( time () - 1 ) . " ' WHERE `id` = ' " . $this -> battle_data [ 'id' ] . " ' LIMIT 1 " );
} else {
mysql_query ( " UPDATE `battle` SET `to2` = ' " . time () . " ', `to1` = ' " . ( time ()) . " ' WHERE `id` = ' " . $this -> battle_data [ 'id' ] . " ' LIMIT 1 " );
}
$this -> UpdateBattle ();
header ( " Location: " . $_SERVER [ 'PHP_SELF' ] . " " );
die ();
}
} else {
return false ;
}
}
function addAction ( $time , $vars , $vls , $uid = NULL ) {
if ( $uid == NULL ) {
$uid = $this -> user [ 'id' ];
}
$ins = mysql_query ( 'INSERT INTO `actions` (`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`) VALUES ("' . $uid . '", "' . $time . '", "capitalcity", "0", "' . mysql_real_escape_string ( $vars ) . '", "' . mysql_real_escape_string ( $_SERVER [ 'HTTP_X_REAL_IP' ]) . '", "' . mysql_real_escape_string ( $vls ) . '")' );
if ( $ins ) {
return true ;
} else {
return false ;
}
}
function GetWeaponType ( $idwep ) {
if ( $idwep == 0 || $idwep == null || $idwep == '' ) {
return " kulak " ;
}
$wep = mysql_fetch_array ( mysql_query ( " SELECT `otdel`, `minu` FROM `inventory` WHERE `id` = ' { $idwep } ' LIMIT 1 " ));
if ( $wep [ 0 ] == '1' ) {
return " noj " ;
} elseif ( $wep [ 0 ] == '12' ) {
return " dubina " ;
} elseif ( $wep [ 0 ] == '11' ) {
return " topor " ;
} elseif ( $wep [ 0 ] == '13' ) {
return " mech " ;
} elseif ( $wep [ 1 ] > 0 ) {
return " buket " ;
} else {
return " kulak " ;
}
}
function razmen_log ( $type , $kuda , $chem , $uron , $kto , $c1 , $pokomy , $c2 , $hp , $maxhp ) {
$color = $this -> gen_color ( $kto , $pokomy );
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 ; }
$hiden_warior = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `invis` FROM `users` WHERE `id` = "' . $pokomy . '" LIMIT 1' ));
if ( $hiden_warior [ 'invis' ] == 1 ) {
$hp = '??' ;
$maxhp = '??' ;
$uron = '??' ;
}
if ( ! $sex1 ) {
$textfail = array ( 'думал о <вырезано цензурой>, в� лед� твие чего' , 'пытал� � нане� ти удар, но ' , 'под� кользнул� � , и' , '� тарал� � прове� ти удар, но' , 'закашл� л� � , и' , 'пытал� � прове� ти удар, но' , 'потер� л � амоконтроль, в� лед� твие чего' , 'думал не о том, и' );
} else {
$textfail = array ( 'думала о <вырезано цензурой>, в� лед� твие чего' , 'пытала� ь нане� ти удар, но ' , 'под� кользнула� ь, и' , '� тарала� ь прове� ти удар, но' , 'закашл� ла� ь, и' , 'пытала� ь прове� ти удар, но ' , 'потер� ла � амоконтроль, в� лед� твие чего' , 'думала не о том, и' );
}
$textchem = array (
" kulak " => array ( " грудью " , " ребром руки " , " лбом " , " кулаком " , " ногой " , " левой ногой " , " правой ногой " , " коленом " ),
" noj " => array ( " ножом " , " тыльной � тороной лезви� ножа " , " руко� тью ножа " , " лезвием ножа " ),
" dubina " => array ( " � учковатой палкой " , " поленом " , " т� желой дубиной " , " дубиной " , " руко� тью молота " ),
" topor " => array ( " � екирой " , " топором " , " лезвием � екиры " , " алебардой " , " т� желым держаком " , " длинной � екирой " ),
" mech " => array ( " ножнами " , " гардой " , " мечом " , " лезвием меча " , " руко� тью меча " , " тупым лезвием " , " о� трой � тороной меча " , " огромным мечом " ,),
" buket " => array ( " охапкой цветов " , " веником " , " букетом " , " колючками " , " � нопом " , " � теблем " , " ли� ть� ми " , " бутоном " ,)
);
$textchem = $textchem [ $chem ];
$udars = array (
1 => array ( 'в но� ' , 'в глаз' , 'в челю� ть' , 'по перено� ице' , 'в кадык' , 'по затылку' , 'в правый глаз' , 'в левый глаз' , 'в � кулу' ),
2 => array ( 'в грудь' , 'в корпу� ' , 'в � олнечное � плетение' , 'в � ердце' , 'в бок' , 'в обла� ть лопаток' , 'по желудку' , 'по левой руке' , 'по правой руке' ),
3 => array ( 'по <вырезано цензурой>' , 'в пах' , 'в промежно� ть' , 'по левой � годице' , 'по правой � годице' ),
4 => array ( 'по ногам' , 'в обла� ть правой п� тки' , 'в обла� ть левой п� тки' , 'по коленной чашечке' , 'по икрам' )
);
$kuda = $udars [ $kuda ][ mt_rand ( 0 , count ( $udars [ $kuda ]) - 1 )];
if ( ! $sex1 ) {
$hark = array ( 'бе� чув� твенный' , 'ра� � троенный' , 'храбрый' , 'обезумевший' , 'неу� трашимый' , 'злобный' , 'же� токий' , 'наглый' , 'разъ� ренный' , 'продвинутый' , 'хитрый' , 'муже� твенный' , '' , '' , '' , '' , '' , '' );
} else {
$hark = array ( 'бе� чув� твенна� ' , 'ра� � троенна� ' , 'храбра� ' , 'обезумевша� ' , 'неу� трашима� ' , 'злобна� ' , 'же� тока� ' , 'нагла� ' , 'разъ� ренна� ' , 'продвинута� ' , 'хитра� ' , 'прекра� на� ' , '' , '' , '' , '' , '' , '' );
}
if ( ! $sex2 ) {
$hark2 = array ( 'бе� чув� твенный' , 'ра� � троенный' , 'храбрый' , 'обезумевший' , 'неу� трашимый' , 'злобный' , 'же� токий' , 'наглый' , 'разъ� ренный' , 'продвинутый' , 'хитрый' , 'муже� твенный' , '' , '' , '' , '' , '' , '' );
} else {
$hark2 = array ( 'бе� чув� твенна� ' , 'ра� � троенна� ' , 'храбра� ' , 'обезумевша� ' , 'неу� трашима� ' , 'злобна� ' , 'же� тока� ' , 'нагла� ' , 'разъ� ренна� ' , 'продвинута� ' , 'хитра� ' , 'прекра� на� ' , '' , '' , '' , '' , '' , '' );
}
if ( ! $sex2 ) {
$textud = array ( 'забыл� � , и тут' , 'замешкал� � , и за � то' , 'ра� тер� л� � , как вдруг' , 'ковыр� л� � в зубах, и тут' , 'поперхнул� � , но вдруг' , 'пытал� � что-то � казать но вдруг, неожиданно' , 'ра� тер� л� � , как вдруг' , 'за� мотрел� � на <вырезано цензурой>, а в � то врем� ' , 'вы� моркал� � , и в � то врем� ' , 'думал не о том, и' , 'пришел в � еб� , но в � то врем� ' , 'обернул� � , как внезапно' );
} else {
$textud = array ( 'забыла� ь, и тут' , 'замешкала� ь, и за � то ' , 'ра� тер� ла� ь, как вдруг ' , 'ковыр� ла� ь в зубах, и тут ' , 'поперхнула� ь, но вдруг ' , 'пытала� ь что-то � казать но вдруг, неожиданно' , 'ра� тер� ла� ь, как вдруг' , 'за� мотрела� ь на <вырезано цензурой>, а в � то врем� ' , 'вы� моркала� ь, и в � то врем� ' , 'думала не о том, и' , 'пришла в � еб� , но в � то врем� ' , 'обернула� ь, как внезапно' );
}
switch ( $type ) {
case " uvorot " :
if ( $sex2 ) {
$textuvorot = array ( " <font color=green><B>уклонила� ь</B></font> от удара " , " <font color=green><B>увернула� ь</B></font> от удара " , " <font color=green><B>от� кочила</B></font> от удара " );
} else {
$textuvorot = array ( " <font color=green><B>уклонил� � </B></font> от удара " , " <font color=green><B>увернул� � </B></font> от удара " , " <font color=green><B>от� кочил</B></font> от удара " );
}
return '<span class=date>' . date ( " H:i " ) . '</span> ' . nick5 ( $kto , $color [ 'me' ]) . ' ' . $textfail [ mt_rand ( 0 , count ( $textfail ) - 1 )] . ' ' . $hark2 [ mt_rand ( 0 , count ( $hark2 ) - 1 )] . ' ' . nick5 ( $pokomy , $color [ 'he' ]) . ' ' . $textuvorot [ mt_rand ( 0 , count ( $textuvorot ) - 1 )] . ' ' . $textchem [ mt_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 , $color [ 'me' ]) . ' ' . $textfail [ mt_rand ( 0 , count ( $textfail ) - 1 )] . ' ' . $hark2 [ mt_rand ( 0 , count ( $hark2 ) - 1 )] . ' ' . nick5 ( $pokomy , $color [ 'he' ]) . ' ' . $textblock [ mt_rand ( 0 , count ( $textblock ) - 1 )] . ' ' . $textchem [ mt_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 , $color [ 'he' ]) . ' ' . $textud [ mt_rand ( 0 , count ( $textud ) - 1 )] . ' ' . $hark [ mt_rand ( 0 , count ( $hark ) - 1 )] . ' ' . nick5 ( $kto , $color [ 'me' ]) . ' ' . $textkrit [ mt_rand ( 0 , count ( $textkrit ) - 1 )] . ' <b><font color=red>-' . $uron . '</font></b> [' . $hp . '/' . $maxhp . ']' . '<BR>' ;
break ;
case " krita " :
if ( $sex1 ) {
$textkrit = array ( " , напугав в� ех, не� лышно подойд� � зади ударила, пробив блок, по голове булыжником оппонента. " , " , пробив блок, ла� ково заломила руку за � пину � оперника. " , " , пробив блок, ра� царапала но� � оперника. " , " , пробив блок, на� тупила на ногу врага. " , " , пробив блок, уку� ила в но� противника. " , " , пробив блок, провела ужа� ный бро� ок через пупок оппонента. " );
} else {
$textkrit = array ( " , напугав в� ех, не� лышно подойд� � зади ударил, пробив блок, по голове булыжником оппонента. " , " , пробив блок, ла� ково заломил руку за � пину � оперника. " , " , пробив блок, ра� царапал но� � оперника. " , " , пробив блок, на� тупил на ногу врага. " , " , пробив блок, уку� ил в но� противника. " , " , пробив блок, провел ужа� ный бро� ок через пупок оппонента. " );
}
return '<span class=date>' . date ( " H:i " ) . '</span> ' . nick5 ( $pokomy , $color [ 'he' ]) . ' ' . $textud [ mt_rand ( 0 , count ( $textud ) - 1 )] . ' ' . $hark [ mt_rand ( 0 , count ( $hark ) - 1 )] . ' ' . nick5 ( $kto , $color [ 'me' ]) . ' ' . $textkrit [ mt_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 , $color [ 'he' ]) . ' ' . $textud [ mt_rand ( 0 , count ( $textud ) - 1 )] . ' ' . $hark [ mt_rand ( 0 , count ( $hark ) - 1 )] . ' ' . nick5 ( $kto , $color [ 'me' ]) . '' . $textudar [ mt_rand ( 0 , count ( $textudar ) - 1 )] . ' ' . $textchem [ mt_rand ( 0 , count ( $textchem ) - 1 )] . ' ' . $kuda . ' <b>-' . $uron . '</b> [' . $hp . '/' . $maxhp . ']' . '<BR>' ;
break ;
}
}
function get_blocks ( $where_atack , $where_defend ) {
$blocks = array ( '1' => array ( 1 , 2 ), '2' => array ( 2 , 3 ), '3' => array ( 3 , 4 ), '4' => array ( 4 , 1 ));
if ( ! in_array ( $where_atack , $blocks [ $where_defend ])) {
return true ;
} else {
return false ;
}
}
function GetBlock ( $komy , $att , $def , $enemy ) {
$blocks = array ( 1 => array ( 1 , 2 ), 2 => array ( 2 , 3 ), 3 => array ( 3 , 4 ), 4 => array ( 4 , 1 ));
switch ( $komy ) {
case " me " :
if ( in_array ( $this -> battle [ $enemy ][ $this -> user [ 'id' ]][ 0 ], $blocks [ $def ])) {
return true ;
} else {
return false ;
}
break ;
case " he " :
if ( in_array ( $this -> battle [ $enemy ][ $this -> user [ 'id' ]][ 1 ], $blocks [ $att ])) {
return true ;
} else {
return false ;
}
break ;
}
}
function GetChance ( $percent ) {
$mm = 1 ;
if ( rand ( $mm , 100 * $mm ) <= $percent * $mm ) {
return true ;
} else {
return false ;
}
}
function SelectEnemy () {
if (( $this -> user [ 'hp' ] > 0 ) && $this -> battle ) {
foreach ( $this -> battle [ $this -> user [ 'id' ]] as $k => $v ) {
if ( $this -> battle [ $this -> user [ 'id' ]][ $k ][ 0 ] == 0 ) {
$enemies [] = $k ;
}
}
if ( isset ( $enemies [ 0 ])) {
$enemy = $enemies [ mt_rand ( 0 , count ( $enemies ) - 1 )];
if ( $enemy > 0 ) {
return $enemy ;
}
} else {
return false ;
}
} else {
return false ;
}
}
function chancebymf ( $mf , $antimf , $min = 1 , $max = 85 , $mid = 10 , $div = 250 ) {
if ( $mf <= $antimf ) return 0 ;
$diff = 1 - pow ( 0.5 , abs ( $mf - $antimf ) / $div );
if ( $mf > $antimf ) {
return ( $max - $mid ) * $diff + $mid ;
} else {
return ( $mid - $min ) * ( 1 - $diff ) + $min ;
}
2018-02-13 21:47:24 +02:00
# До кода ниже невозможно до� тучать� � . в� е варианты return перечи� лены выше.
// $min = $min/100;
// $max = $max/100;
// $diffup = (1/(1+(abs($mf-$antimf)/(($max-$mid)*100))));
// $diffdown = (1/(1+(abs($mf-$antimf)/(($mid-$min)*100))));
// $ret = $mid;
// if($mf > $antimf) {
// $ret = $ret*(2-$diff);
// } else {
// $ret = $ret*$diff;
// }
// if($ret < $min) {
// $ret = $min;
// }
// if($ret > $max) {
// $ret = $max;
// }
// return (int)round($ret*100);
2018-01-28 18:40:49 +02:00
}
function check_bonus ( $uid ) {
2018-02-13 21:47:24 +02:00
$us = db :: c () -> query ( 'SELECT `id`, `sila`, `lovk`, `inta`, `vinos` FROM `users` WHERE `id` = ?i' , $uid ) -> fetch_assoc ();
2018-01-28 18:40:49 +02:00
$i_uminu = 0 ;
$i_fkrit = 0 ;
$i_fauvorot = 0 ;
$i_fakrit = 0 ;
$i_umaxu = 0 ;
if ( $us [ 'sila' ] >= 25 ) { $sila [ 'fauvorot' ] = 10 ; $sila [ 'fakrit' ] = 10 ; $sila [ 'uminu' ] = 0 ; $sila [ 'umaxu' ] = 0 ; }
if ( $us [ 'sila' ] >= 50 ) { $sila [ 'fauvorot' ] = 20 ; $sila [ 'fakrit' ] = 25 ; $sila [ 'uminu' ] = 0 ; $sila [ 'umaxu' ] = 0 ; }
if ( $us [ 'sila' ] >= 75 ) { $sila [ 'fauvorot' ] = 30 ; $sila [ 'fakrit' ] = 40 ; $sila [ 'uminu' ] = 0 ; $sila [ 'umaxu' ] = 0 ; }
if ( $us [ 'sila' ] >= 100 ) { $sila [ 'fauvorot' ] = 40 ; $sila [ 'fakrit' ] = 50 ; $sila [ 'uminu' ] = 2 ; $sila [ 'umaxu' ] = 2 ; }
if ( $us [ 'sila' ] >= 125 ) { $sila [ 'fauvorot' ] = 60 ; $sila [ 'fakrit' ] = 75 ; $sila [ 'uminu' ] = 5 ; $sila [ 'umaxu' ] = 5 ; }
if ( $us [ 'sila' ] >= 150 ) { $sila [ 'fauvorot' ] = 90 ; $sila [ 'fakrit' ] = 110 ; $sila [ 'uminu' ] = 8 ; $sila [ 'umaxu' ] = 8 ; }
if ( $us [ 'sila' ] >= 175 ) { $sila [ 'fauvorot' ] = 120 ; $sila [ 'fakrit' ] = 150 ; $sila [ 'uminu' ] = 12 ; $sila [ 'umaxu' ] = 12 ; }
if ( $us [ 'sila' ] >= 200 ) { $sila [ 'fauvorot' ] = 150 ; $sila [ 'fakrit' ] = 200 ; $sila [ 'uminu' ] = 15 ; $sila [ 'umaxu' ] = 15 ; }
if ( $us [ 'lovk' ] >= 25 ) { $lovk [ 'fuvorot' ] = 10 ; $lovk [ 'fauvorot' ] = 10 ; $lovk [ 'fakrit' ] = 20 ; $lovk [ 'uminu' ] = 0 ; $lovk [ 'umaxu' ] = 0 ; }
if ( $us [ 'lovk' ] >= 50 ) { $lovk [ 'fuvorot' ] = 20 ; $lovk [ 'fauvorot' ] = 25 ; $lovk [ 'fakrit' ] = 40 ; $lovk [ 'uminu' ] = 0 ; $lovk [ 'umaxu' ] = 0 ; }
if ( $us [ 'lovk' ] >= 75 ) { $lovk [ 'fuvorot' ] = 30 ; $lovk [ 'fauvorot' ] = 30 ; $lovk [ 'fakrit' ] = 60 ; $lovk [ 'uminu' ] = 0 ; $lovk [ 'umaxu' ] = 0 ; }
if ( $us [ 'lovk' ] >= 100 ) { $lovk [ 'fuvorot' ] = 40 ; $lovk [ 'fauvorot' ] = 40 ; $lovk [ 'fakrit' ] = 75 ; $lovk [ 'uminu' ] = 5 ; $lovk [ 'umaxu' ] = 5 ; }
if ( $us [ 'lovk' ] >= 125 ) { $lovk [ 'fuvorot' ] = 40 ; $lovk [ 'fauvorot' ] = 70 ; $lovk [ 'fakrit' ] = 90 ; $lovk [ 'uminu' ] = 6 ; $lovk [ 'umaxu' ] = 6 ; }
if ( $us [ 'lovk' ] >= 150 ) { $lovk [ 'fuvorot' ] = 40 ; $lovk [ 'fauvorot' ] = 150 ; $lovk [ 'fakrit' ] = 120 ; $lovk [ 'uminu' ] = 8 ; $lovk [ 'umaxu' ] = 8 ; }
if ( $us [ 'lovk' ] >= 175 ) { $lovk [ 'fuvorot' ] = 40 ; $lovk [ 'fauvorot' ] = 200 ; $lovk [ 'fakrit' ] = 140 ; $lovk [ 'uminu' ] = 10 ; $lovk [ 'umaxu' ] = 10 ; }
if ( $us [ 'lovk' ] >= 200 ) { $lovk [ 'fuvorot' ] = 40 ; $lovk [ 'fauvorot' ] = 250 ; $lovk [ 'fakrit' ] = 160 ; $lovk [ 'uminu' ] = 15 ; $lovk [ 'umaxu' ] = 15 ; }
if ( $us [ 'inta' ] >= 25 ) { $inta [ 'fkrit' ] = 10 ; $inta [ 'fauvorot' ] = 10 ; $inta [ 'fakrit' ] = 15 ; $inta [ 'uminu' ] = 0 ; $inta [ 'umaxu' ] = 0 ; }
if ( $us [ 'inta' ] >= 50 ) { $inta [ 'fkrit' ] = 25 ; $inta [ 'fauvorot' ] = 25 ; $inta [ 'fakrit' ] = 25 ; $inta [ 'uminu' ] = 0 ; $inta [ 'umaxu' ] = 0 ; }
if ( $us [ 'inta' ] >= 75 ) { $inta [ 'fkrit' ] = 60 ; $inta [ 'fauvorot' ] = 30 ; $inta [ 'fakrit' ] = 30 ; $inta [ 'uminu' ] = 0 ; $inta [ 'umaxu' ] = 0 ; }
if ( $us [ 'inta' ] >= 100 ) { $inta [ 'fkrit' ] = 40 ; $inta [ 'fauvorot' ] = 40 ; $inta [ 'fakrit' ] = 75 ; $inta [ 'uminu' ] = 0 ; $inta [ 'umaxu' ] = 0 ; }
if ( $us [ 'inta' ] >= 125 ) { $inta [ 'fkrit' ] = 40 ; $inta [ 'fauvorot' ] = 50 ; $inta [ 'fakrit' ] = 100 ; $inta [ 'uminu' ] = 1 ; $inta [ 'umaxu' ] = 1 ; }
if ( $us [ 'inta' ] >= 150 ) { $inta [ 'fkrit' ] = 60 ; $inta [ 'fauvorot' ] = 40 ; $inta [ 'fakrit' ] = 130 ; $inta [ 'uminu' ] = 5 ; $inta [ 'umaxu' ] = 5 ; }
if ( $us [ 'inta' ] >= 175 ) { $inta [ 'fkrit' ] = 40 ; $inta [ 'fauvorot' ] = 80 ; $inta [ 'fakrit' ] = 170 ; $inta [ 'uminu' ] = 10 ; $inta [ 'umaxu' ] = 10 ; }
if ( $us [ 'inta' ] >= 200 ) { $inta [ 'fkrit' ] = 40 ; $inta [ 'fauvorot' ] = 120 ; $inta [ 'fakrit' ] = 200 ; $inta [ 'uminu' ] = 15 ; $inta [ 'umaxu' ] = 15 ; }
if ( $us [ 'vinos' ] >= 25 ) { $vinos [ 'fkrit' ] = 10 ; $vinos [ 'fauvorot' ] = 10 ; $vinos [ 'fakrit' ] = 15 ; $vinos [ 'uminu' ] = 0 ; $vinos [ 'umaxu' ] = 0 ; }
if ( $us [ 'vinos' ] >= 50 ) { $vinos [ 'fkrit' ] = 25 ; $vinos [ 'fauvorot' ] = 25 ; $vinos [ 'fakrit' ] = 25 ; $vinos [ 'uminu' ] = 0 ; $vinos [ 'umaxu' ] = 0 ; }
if ( $us [ 'vinos' ] >= 75 ) { $vinos [ 'fkrit' ] = 60 ; $vinos [ 'fauvorot' ] = 30 ; $vinos [ 'fakrit' ] = 30 ; $vinos [ 'uminu' ] = 0 ; $vinos [ 'umaxu' ] = 0 ; }
if ( $us [ 'vinos' ] >= 100 ) { $vinos [ 'fkrit' ] = 40 ; $vinos [ 'fauvorot' ] = 40 ; $vinos [ 'fakrit' ] = 75 ; $vinos [ 'uminu' ] = 0 ; $vinos [ 'umaxu' ] = 1 ; }
if ( $us [ 'vinos' ] >= 125 ) { $vinos [ 'fkrit' ] = 40 ; $vinos [ 'fauvorot' ] = 50 ; $vinos [ 'fakrit' ] = 100 ; $vinos [ 'uminu' ] = 1 ; $vinos [ 'umaxu' ] = 1 ; }
if ( $us [ 'vinos' ] >= 150 ) { $vinos [ 'fkrit' ] = 60 ; $vinos [ 'fauvorot' ] = 40 ; $vinos [ 'fakrit' ] = 130 ; $vinos [ 'uminu' ] = 5 ; $vinos [ 'umaxu' ] = 5 ; }
if ( $us [ 'vinos' ] >= 175 ) { $vinos [ 'fkrit' ] = 40 ; $vinos [ 'fauvorot' ] = 80 ; $vinos [ 'fakrit' ] = 170 ; $vinos [ 'uminu' ] = 10 ; $vinos [ 'umaxu' ] = 10 ; }
if ( $us [ 'vinos' ] >= 200 ) { $vinos [ 'fkrit' ] = 40 ; $vinos [ 'fauvorot' ] = 120 ; $vinos [ 'fakrit' ] = 200 ; $vinos [ 'uminu' ] = 15 ; $vinos [ 'umaxu' ] = 15 ; }
if ( $us [ 'vinos' ] >= $us [ 'sila' ] && $us [ 'vinos' ] >= $us [ 'lovk' ] && $us [ 'vinos' ] >= $us [ 'inta' ]) {
$i_uminu = $vinos [ 'uminu' ];
$i_fkrit = $vinos [ 'fkrit' ];
$i_fauvorot = $vinos [ 'fauvorot' ];
$i_fakrit = $vinos [ 'fakrit' ];
$i_umaxu = $vinos [ 'umaxu' ];
}
if ( $us [ 'inta' ] >= $us [ 'sila' ] && $us [ 'inta' ] >= $us [ 'lovk' ] && $us [ 'inta' ] >= $us [ 'vinos' ]) {
$i_uminu = $inta [ 'uminu' ];
$i_fkrit = $inta [ 'fkrit' ];
$i_fauvorot = $inta [ 'fauvorot' ];
$i_fakrit = $inta [ 'fakrit' ];
$i_umaxu = $inta [ 'umaxu' ];
}
if ( $us [ 'lovk' ] >= $us [ 'sila' ] && $us [ 'lovk' ] >= $us [ 'inta' ] && $us [ 'lovk' ] >= $us [ 'vinos' ]) {
$i_uminu = $lovk [ 'uminu' ];
$i_fkrit = $lovk [ 'fkrit' ];
$i_fauvorot = $lovk [ 'fauvorot' ];
$i_fakrit = $lovk [ 'fakrit' ];
$i_umaxu = $lovk [ 'umaxu' ];
}
if ( $us [ 'sila' ] >= $us [ 'lovk' ] && $us [ 'sila' ] >= $us [ 'inta' ] && $us [ 'sila' ] >= $us [ 'vinos' ]) {
$i_uminu = $sila [ 'uminu' ];
$i_fkrit = $sila [ 'fkrit' ];
$i_fauvorot = $sila [ 'fauvorot' ];
$i_fakrit = $sila [ 'fakrit' ];
$i_umaxu = $sila [ 'umaxu' ];
}
return array ( 'minu' => $i_uminu , 'maxu' => $i_umaxu , 'fkrit' => $i_fkrit , 'fauvorot' => $i_fauvorot , 'fakrit' => $i_fakrit );
}
function solve_mfs ( $user_1 , $user_2 , $attack ) {
$mfs = array ();
$uid_1 = $this -> get_info_by_id ( $user_1 );
$uid_2 = $this -> get_info_by_id ( $user_2 );
$b_u_1 = $this -> check_bonus ( $uid_1 [ 'id' ]);
$b_u_2 = $this -> check_bonus ( $uid_2 [ 'id' ]);
$zo = mysql_fetch_row ( mysql_query ( " SELECT `id` FROM `effects` WHERE `type` = 201 AND `owner` = ' " . $uid_1 [ 'id' ] . " ' LIMIT 1 " ));
$zo1 = mysql_fetch_row ( mysql_query ( " SELECT `id` FROM `effects` WHERE `type` = 201 AND `owner` = ' " . $uid_2 [ 'id' ] . " ' LIMIT 1 " ));
$sokr = mysql_fetch_row ( mysql_query ( " SELECT `id` FROM `effects` WHERE `type` = 202 AND `owner` = ' " . $uid_1 [ 'id' ] . " ' LIMIT 1 " ));
$sokr1 = mysql_fetch_row ( mysql_query ( " SELECT `id` FROM `effects` WHERE `type` = 202 AND `owner` = ' " . $uid_2 [ 'id' ] . " ' LIMIT 1 " ));
if ( $sokr [ 0 ] > 0 ) { $bmfud = 5 ; } else { $bmfud = 0 ; }
if ( $zo [ 0 ] > 0 ) { $bmfbron = 25 ; } else { $bmfbron = 0 ; }
if ( $sokr1 [ 0 ] > 0 ) { $bmfud1 = 5 ; } else { $bmfud1 = 0 ; }
if ( $zo1 [ 0 ] > 0 ) { $bmfbron1 = 25 ; } else { $bmfbron1 = 0 ; }
if ( $user_2 > _BOTSEPARATOR_ ) {
$bots = mysql_fetch_array ( mysql_query ( 'SELECT `id`, `name`, `prototype`, `battle`, `hp` FROM `bots` WHERE `id` = "' . $user_2 . '" 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` = "' . $this -> enemyhar [ 'id' ] . '"' ));
$this -> enemyhar [ 'hp' ] = $bots [ 'hp' ];
} else {
$this -> enemyhar = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `users` WHERE `id` = "' . $uid_2 [ 'id' ] . '" 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` = "' . $uid_2 [ 'id' ] . '"' ));
}
$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` = "' . $uid_1 [ 'id' ] . '"' ));
$this -> enemy_dress [ 6 ] += $bmfbron1 ;
$this -> enemy_dress [ 7 ] += $bmfbron1 ;
$this -> enemy_dress [ 8 ] += $bmfbron1 ;
$this -> enemy_dress [ 9 ] += $bmfbron1 ;
$this -> user_dress [ 6 ] += $bmfbron ;
$this -> user_dress [ 7 ] += $bmfbron ;
$this -> user_dress [ 8 ] += $bmfbron ;
$this -> user_dress [ 9 ] += $bmfbron ;
$mykrit = floor ( $this -> user_dress [ 2 ] + ( $uid_1 [ 'inta' ] * 2.95 ) + $b_u_1 [ 'fkrit' ]);
$heakrit = floor ( $this -> enemy_dress [ 3 ] + ( $uid_2 [ 'inta' ] * 2.75 ) + $b_u_2 [ 'fkrit' ]);
$myuvorot = floor ( $this -> user_dress [ 4 ] + $uid_1 [ 'lovk' ] * 5 ); #5 #3
$heauvorot = floor ( $this -> enemy_dress [ 5 ] + $uid_2 [ 'lovk' ] * 4 ); #4 #7 #6
$he_koef_armor = $this -> enemy_dress [ 5 + $attack ] / 50 ;
$mfs [ 'me' ] = array (
'udars' => rand ( floor ( $uid_1 [ 'sila' ] / 3 ) + $b_u_1 [ 'minu' ] + 1 + $this -> user_dress [ 0 ], floor ( $uid_1 [ 'sila' ] / 3 ) + $b_u_1 [ 'maxu' ] + 4 + $this -> user_dress [ 1 ]),
'chanse' => $this -> getmfs ( $myuvorot , $heauvorot ),
'chanse_krit' => $this -> getmfs ( $mykrit , $heakrit )
);
$mfs [ 'me' ][ 'udar' ] = $mfs [ 'me' ][ 'udars' ] - ( $this -> enemy_dress [ 5 + $attack ] * $he_koef_armor );
$uron_vlad_me = 0 ;
switch ( $this -> GetWeaponType ( $uid_1 [ 'weap' ])) {
case " noj " : $uron_vlad_me += $uid_1 [ 'noj' ]; break ;
case " dubina " : $uron_vlad_me += $uid_1 [ 'dubina' ]; break ;
case " topor " : $uron_vlad_me += $uid_1 [ 'topor' ]; break ;
case " mech " : $uron_vlad_me += $uid_1 [ 'mec' ]; break ;
default : 0 ; break ;
}
$mfs [ 'me' ][ 'udar' ] += $uron_vlad_me ;
if ( $bmfud > 5 ) { $mfs [ 'me' ][ 'udar' ] += $bmfud ; }
if ( $mfs [ 'me' ][ 'udar' ] < 0 ) { $mfs [ 'me' ][ 'udar' ] = 0 ; }
if ( $bmfud <= 5 ) { $mfs [ 'me' ][ 'udar' ] += $bmfud ; }
$mfs [ 'me' ][ 'udar' ] = round ( $mfs [ 'me' ][ 'udar' ]);
if ( $mfs [ 'me' ][ 'udar' ] < 1 ) { $mfs [ 'me' ][ 'udar' ] = 1 ; }
$mykrits = floor ( $this -> enemy_dress [ 2 ] + ( $uid_2 [ 'inta' ] * 2.95 ) + $b_u_2 [ 'fkrit' ]);
$heakrits = floor ( $this -> user_dress [ 3 ] + ( $uid_1 [ 'inta' ] * 2.75 ) + $b_u_1 [ 'fkrit' ]);
$myuvorots = floor ( $this -> enemy_dress [ 4 ] + $uid_2 [ 'lovk' ] * 5 );
$heauvorots = floor ( $this -> user_dress [ 5 ] + $uid_1 [ 'lovk' ] * 4 );
$me_koef_armor = $this -> user_dress [ 5 + $this -> battle [ $user_2 ][ $user_1 ][ 0 ]] / 50 ;
$mfs [ 'he' ] = array (
'udars' => floor ( rand ( floor ( $uid_2 [ 'sila' ] / 3 ) + $b_u_2 [ 'minu' ] + 1 + $this -> enemy_dress [ 0 ], floor ( $uid_2 [ 'sila' ] / 3 ) + $b_u_2 [ 'maxu' ] + 4 + $this -> enemy_dress [ 1 ])),
'chanse' => $this -> getmfs ( $myuvorots , $heauvorots ),
'chanse_krit' => $this -> getmfs ( $mykrits , $heakrits )
);
$mfs [ 'he' ][ 'udar' ] = $mfs [ 'he' ][ 'udars' ] - ( $this -> user_dress [ 5 + $this -> battle [ $user_2 ][ $user_1 ][ 0 ]] * $me_koef_armor );
if ( $bmfud1 < 5 ) { $mfs [ 'he' ][ 'udar' ] += $bmfud1 ; }
if ( $mfs [ 'he' ][ 'udar' ] < 0 ) { $mfs [ 'he' ][ 'udar' ] = 0 ; }
if ( $bmfud1 >= 5 ) { $mfs [ 'he' ][ 'udar' ] += $bmfud1 ; }
$uron_vlad_he = 0 ;
switch ( $this -> GetWeaponType ( $uid_2 [ 'weap' ])) {
case " noj " : $uron_vlad_he += $uid_2 [ 'noj' ]; break ;
case " dubina " : $uron_vlad_he += $uid_2 [ 'dubina' ]; break ;
case " topor " : $uron_vlad_he += $uid_2 [ 'topor' ]; break ;
case " mech " : $uron_vlad_he += $uid_2 [ 'mec' ]; break ;
}
$mfs [ 'he' ][ 'udar' ] += $uron_vlad_he ;
$mfs [ 'he' ][ 'udar' ] = round ( $mfs [ 'he' ][ 'udar' ]);
if ( $mfs [ 'he' ][ 'udar' ] < 1 ) { $mfs [ 'he' ][ 'udar' ] = 1 ; }
return $mfs ;
}
function makechange ( $u1 , $u2 , $at_1 , $at_2 , $def_1 , $def_2 ) {
$this -> init_botRazmen ( $u1 , $u2 , $at_1 , $def_1 );
}
function UpdateBattle () {
return mysql_query ( " UPDATE `battle` SET `exp` = ' " . serialize ( $this -> exp ) . " ', `teams` = ' " . serialize ( $this -> battle ) . " ', `damage` = ' " . serialize ( $this -> damage ) . " ' WHERE `id` = ' " . $this -> battle_data [ 'id' ] . " ' LIMIT 1 " );
}
function GetComment () {
$boycom = array ( 'Ð� танцуешь ты лучше.' , 'Ð� мы что, в прÑ� тки тут играем?' , 'Ð� вы разве пингвинов никогда не видели?' , 'Ð� , ведь когда-то, вы были краÑ� ивыми… Ð� теперь? Ð� у и рожи! Жуть!' , 'Ð� потом еще труп пинать будут.' , 'Ð� Ñ� вчера ночью за Ñ� оÑ� едÑ� ми подглÑ� дывал. Они точно так же кувыркалиÑ� ÑŒ' , 'Ð� ведь вы живых людей дубаÑ� ите...' , 'Ð� вот Ñ� вчера в зоопарке был...' , 'Ð� вы в Ñ� тройбате не Ñ� лужили?' , 'Ð� вы видели, чтобы так на улице делали!?' , 'Ð� вы знали что ёжики размножаютÑ� Ñ� в интернете?' , 'Ð� жить-то, как хочетÑ� Ñ� :' , 'Ð� из-за чего вы Ñ� обÑ� твенно дерётеÑ� ÑŒ?' , 'Ð� чего ржёте, вы ещё оÑ� тальных не видели' , 'Ð� что произойдёт еÑ� ли ты иÑ� пугаешÑ� Ñ� до полуÑ� мерти дважды?!' , 'Больше так не делай. Ты же не Ñ� адиÑ� Ñ‚?' , 'Без комментариев...' , 'Больно ведь!' , 'БыÑ� тро ты за монитор Ñ� прÑ� талÑ� Ñ� !' , 'Ð’Ñ� е хотÑ� Ñ‚ попаÑ� ть в рай, но никто не хочет умирать!' , 'Вчера Ñ� такой девчонкой познакомилÑ� Ñ� .' , 'Ð’Ñ� его 5 минут знакомы, а дерутÑ� Ñ� , Ñ� ловно Ñ� упруги Ñ� 20-ти летним Ñ� тажем...' , 'Ð’Ñ� е. Я так больше не могу.' , 'Ð’ конце концов, кто-то победит?' , 'Ð’Ñ‹ чего, Ñ� дерева упали?' , 'ВозÑ� Ñ‚Ñ� Ñ� как Ñ� онные мухи... давайте Ñ� вам лучше анекдот раÑ� Ñ� кажу: ...' , 'Вот видишь, как полезно чиÑ� тить зубы на ночь?' , 'Вот вы вÑ� е руками махаете, а за вами уже очередь' , 'Вот попадёте вы в плен и ваÑ� там будут долго бить. Ð� о вы ничего не раÑ� Ñ� кажете... и не потому, что вы такой Ñ� тойкий, проÑ� то вы ничего не знаете' , 'Ð’Ñ‹ бы лучше пошли потренировалиÑ� ÑŒ!' , 'Ð’Ñ‹ вÑ� е еще разминаетеÑ� ÑŒ? Позовите, когда коÑ� ти в муку друг другу разминать будете.' , 'Ð’Ñ‹ же бойцы! Имейте Ñ� овеÑ� ть!' , 'ГаÑ� и недоумка!' , 'Да, еÑ� ли бы Ñ� Ñ� мог Ñ� то оÑ� тановить, то получил бы нобелевÑ� кую премию `За мир` ' , 'Да куда они бьют?!' , 'Давайте быÑ� трее! За вами уже очередь образовалаÑ� ÑŒ.' , 'Давайте обойдемÑ� Ñ� Ñ� егоднÑ� таймаутом. Ð� ? Ð� то мне уже кошмары Ñ� коро будут Ñ� нитьÑ� Ñ� .' , 'ДерутÑ� Ñ� как девчонки!' , 'Дети, поÑ� мотрите налево... Ой!.. Ð� ет, туда лучше не Ñ� мотреть.' , 'ЕÑ� ли так будет продолжатьÑ� Ñ� , то Ñ� коро мы заÑ� нем!' , 'ЕÑ� ли бы у менÑ� было креÑ� ло-качалка, Ñ� бы в нём качалÑ� Ñ� ...' , 'ЕÑ� ли вы что-то Ñ� казать хотите, то лучше молчите :)' , 'ЖеÑ� токоÑ� ть не порок.' , 'Жизнь вне нашего клуба - Ñ� то пуÑ� таÑ� трата киÑ� лорода!!!' , 'Жми! Дави! КуÑ� ай! Царапай!' , 'За такие бои надо в хаоÑ� отправлÑ� ть!' , 'Знаете откуда в комиÑ� Ñ� ионном магазине Ñ� только вещей? Ðто Ñ� поÑ� ле ваших гулÑ� нок Ñ� обираю и Ñ� даю туда. Иногда вмеÑ� те Ñ� чаÑ� Ñ‚Ñ� ми тела, заÑ� трÑ� вшими в них.' , 'ЗдеÑ� ÑŒ люди так близки друг к другу. ПроÑ� то иначе ударить нельзÑ� .' , 'Ð
if(mt_rand(0, 4) == 1) {
return ' < span class = date > '.date("H:i").' </ span > < i > Комментатор : '.$boycom[mt_rand(0, count($boycom)-1)].' </ i >< BR > ';
} else {
return false;
}
}
function GetTimeout() {
if($this->battle) {
if($this->my_class == ' B1 ') {
if($this->to2 <= $this->to1) {
return ((time()-$this->to2) > $this->battle_data[' timeout ']*60);
} else {
return false;
}
} else {
if($this->to2 >= $this->to1) {
return ((time()-$this->to1) > $this->battle_data[' timeout ']*60);
} else {
return false;
}
}
}
}
function AddToLog($text) {
$this->log .= $text;
}
function AddToLogBot($text) {
if($this->log != $text) {
$this->log .= $text;
}
}
function write_log() {
if($this->log) {
$this->log = $this->log."<hr>";
}
addlogs($this->battle_data[' id '], $this->log);
$this->log = ' ';
}
}
$r = mysql_query("SELECT `id`, `win` FROM `battle` WHERE `win` = 3");
while($rec = mysql_fetch_array($r)) {
$fbattle = new fbattle($rec[' id ']);
if($fbattle->battle_data[' needbb ']) {
foreach($fbattle->battle as $k => $v) {
if($k > _BOTSEPARATOR_) {
foreach($v as $k2 => $v2) {
if($k2 < _BOTSEPARATOR_) continue;
$hp_1 = mysql_fetch_array(mysql_query(' SELECT `hp` FROM `bots` WHERE `id` = " '. $k .' " LIMIT 1 '));
$hp_2 = mysql_fetch_array(mysql_query(' SELECT `hp` FROM `bots` WHERE `id` = " '. $k2 .' " LIMIT 1 '));
if($fbattle->battle[$k][$k2][0] && $fbattle->battle[$k2][$k][0] && $hp_1[' hp '] > 0 && $hp_2[' hp '] > 0) {
$at_1 = $fbattle->battle[$k][$k2][0];
$def_1 = $fbattle->battle[$k][$k2][1];
$at_2 = $fbattle->battle[$k2][$k][0];
$def_2 = $fbattle->battle[$k2][$k][1];
$fbattle->makechange($k, $k2, $at_1, $at_2, $def_1, $def_2);
$fbattle->write_log();
$fbattle->battle[$k][$k2] = array(0, 0, time());
$fbattle->battle[$k2][$k] = array(0, 0, time());
$fbattle->needupdate = 1;
$fbattle->battle_end();
}
}
}
}
if($fbattle->needupdate) {
$fbattle->UpdateBattle();
}
echo ' Bb id = | '.$rec[' id '].' | ';
} else {
echo ' { No bb Id = | '.$rec[' id '].' | } ' ;
}
2018-02-13 21:47:24 +02:00
}