2018-01-28 16:40:49 +00:00
< ? php
//параметры
$basedmg = 150 ;
$needmana = 35 ;
$needint = 100 ;
$elem = 'e' ;
$mag_id = 97 ;
$log_text = " <strong><font color=#086604>Метеорит [2]</font></strong> " ;
$book = 908 ; $have_book = mysql_fetch_array ( mysql_query ( " SELECT `id` FROM `inventory` WHERE `prototype`=' { $book } ' AND `owner`=' { $user [ 'id' ] } ' LIMIT 1; " ));
if ( $_SESSION [ 'uid' ] == null ) header ( " Location: index.php " );
$us = mysql_fetch_array ( mysql_query ( " SELECT *,(select `id` from `online` WHERE `real_time` >= " . ( time () - 60 ) . " AND `id` = users.`id`) as `online` FROM `users` WHERE `login` = ' { $_POST [ 'target' ] } ' LIMIT 1; " ));
$magic = mysql_fetch_array ( mysql_query ( " SELECT `chanse` FROM `magic` WHERE `id` = ' { $mag_id } ' LIMIT 1 ; " ));
$bat = mysql_fetch_array ( mysql_query ( " SELECT * FROM `battle` WHERE `id`=' { $user [ 'battle' ] } '; " ));
if ( ! $us ) $bot = mysql_fetch_array ( mysql_query ( " SELECT * FROM `bots` WHERE `name` = ' " . $_POST [ 'target' ] . " ' LIMIT 1; " ));
//mana needed
$t1 = explode ( " ; " , $bat [ 't1' ]);
$t2 = explode ( " ; " , $bat [ 't2' ]);
if ( $us ) $e_id = $us [ 'id' ];
else $e_id = $bot [ 'id' ];
if ( $user [ 'battle' ] == 0 ) {
echo " Это боевая магия... " ;
} elseif ( ! $have_book [ 'id' ]) {
echo ( " У В а с нет необходимой книги магии!" );
} elseif (( in_array ( $user [ 'id' ], $t1 ) && in_array ( $e_id , $t1 )) || ( in_array ( $user [ 'id' ], $t2 ) && in_array ( $e_id , $t2 ))) {
echo " Персонаж в Вашей команде! " ;
} elseif ( $user [ 'login' ] == $_POST [ 'target' ]) {
echo " Герр Леопольд фон З а х е р Мазох был бы доволен Вами... " ;
} elseif ( $us && $us [ 'battle' ] != $user [ 'battle' ]) {
echo " Персонаж не в Вашем бою! " ;
} elseif ( $user [ 'mana' ] < $needmana ) {
echo " Недостаточно энергии! " ;
} elseif ( ! $us [ 'online' ] &&! $bot ) {
echo " Персонаж не в игре! " ;
} else {
//attack script
if ( $user [ 'intel' ] >= $needint ) {
$int = $magic [ 'chanse' ] + ( $user [ 'intel' ] - $needint ) * 3 ;
if ( $int > 98 ){ $int = 99 ;}
}
else { $int = 0 ;}
if ( rand ( 1 , 100 ) < $int ) {
global $elem_align , $elem_bonus ;
$user_elem = element ( star_sign ( substr ( $user [ 'borndate' ], 3 , 2 ), substr ( $user [ 'borndate' ], 0 , 2 )));
switch ( $user_elem )
{
case 'f' : $uel = 'mfire' ; break ;
case 'a' : $uel = 'mair' ; break ;
case 'w' : $uel = 'mwater' ; break ;
case 'e' : $uel = 'mearth' ; break ;
};
switch ( $elem )
{
case 'f' : $sel = 'mfire' ; break ;
case 'a' : $sel = 'mair' ; break ;
case 'w' : $sel = 'mwater' ; break ;
case 'e' : $sel = 'mearth' ; break ;
};
//dmg=base+INT/LVL+X_magic
$dmg = $basedmg + ( $user [ 'intel' ] / 4 ) + $user [ $sel ];
//MF
$dmg *= $elem_align [ $user_elem ][ $elem ];
if ( $us ) $dmg *= $elem_bonus [ element ( star_sign ( substr ( $user [ 'borndate' ], 3 , 2 ), substr ( $user [ 'borndate' ], 0 , 2 )))][ element ( star_sign ( substr ( $us [ 'borndate' ], 3 , 2 ), substr ( $us [ 'borndate' ], 0 , 2 )))];
//- MF
if ( $us ) {
$def = magic_def ( $elem , $_POST [ 'target' ], $user_elem ); $dmg *= ( 1 - magic_def ( $elem , $us [ 'login' ], $user_elem , 1 ) / 100 );
$dmg -= $def ;
}
//rand +- 25%
$dmg = mt_rand ( 0.75 * $dmg , 1.25 * $dmg );
$dmg = round ( $dmg );
if ( $us ) $target = $us [ 'id' ];
else $target = $bot [ 'id' ];
// команды
$t1 = explode ( " ; " , $bat [ 't1' ]);
$t2 = explode ( " ; " , $bat [ 't2' ]);
if ( in_array ( $user [ 'id' ], $t1 )) {
$us_team = " B1 " ;
$tar_team = " B2 " ;
}
else {
$us_team = " B2 " ;
$tar_team = " B1 " ;
}
2020-08-27 12:17:02 +00:00
$targeted = ' на ' . Nick :: id ( $target ) -> short ();
2018-01-28 16:40:49 +00:00
//dmg >0 - go
$all_dmg = unserialize ( $bat [ 'damage' ]);
$all_exp = unserialize ( $bat [ 'exp' ]);
$all_dmg [ $user [ 'id' ]] += $dmg ;
$all_exp [ $user [ 'id' ]] += SolveExp ( $user [ 'id' ], $target , $dmg );
$sex_action = " применил " ; if ( $user [ 'sex' ] == 0 ) $sex_action .= " а " ;
if ( ! (( $us [ 'id' ] > 0 && $us [ 'hp' ] < 1 ) || ( $bot [ 'id' ] > 0 && $bot [ 'hp' ] < 1 )))
2020-08-27 12:17:02 +00:00
addlog ( $user [ 'battle' ], '<span class=date>' . date ( " H:i " ) . '</span> ' . Nick :: id ( $user [ 'id' ]) -> short () . ' ' . $sex_action . $targeted . ' заклинание ' . $log_text . '<BR>' );
2018-01-28 16:40:49 +00:00
else
echo " Н е нарушайте покой мертвых!" ;
//сработало
if ( $dmg > 0 ) $hit = 1 ; else $hit = 0 ;
2020-08-27 12:17:02 +00:00
$action = preg_replace ( " /Х / " , Nick :: id ( $target ) -> short (), magic_log ( $elem , $hit , $target ));
2018-01-28 16:40:49 +00:00
//проверка hp>0
if ( ! (( $us [ 'id' ] > 0 && $us [ 'hp' ] < 1 ) || ( $bot [ 'id' ] > 0 && $bot [ 'hp' ] < 1 )))
if ( $dmg > 0 )
{
if ( $us )
mysql_query ( " UPDATE `users` SET `hp` = `hp`-' " . $dmg . " ' WHERE `id` = ' " . $target . " '; " );
else
mysql_query ( " UPDATE `bots` SET `hp` = `hp`-' " . $dmg . " ' WHERE `id` = ' " . $target . " '; " );
mysql_query ( " UPDATE `battle` SET `damage`=' " . serialize ( $all_dmg ) . " ', `exp`=' " . serialize ( $all_exp ) . " ' WHERE `id`=' { $user [ 'battle' ] } '; " );
mysql_query ( " UPDATE `users` SET `mana` = `mana`-' " . $needmana . " ' WHERE `id` = ' " . $user [ 'id' ] . " '; " );
addlog ( $user [ 'battle' ], '<span class=date>' . date ( " H:i " ) . '</span> ' . $action . ' <strong>-' . $dmg . '</strong><BR>' );
$bet = 1 ;
}
else
//не сработало
{
addlog ( $user [ 'battle' ], '<span class=date>' . date ( " H:i " ) . '</span> ' . $action . '<BR>' );
$bet = 1 ;
}
} else {
echo " Свиток рассыпался в ваших руках... " ;
$bet = 1 ;
}
}