2019-12-23 18:04:05 +00:00
< ? php
// Магия исцеления
// В с е их соберём, вместе соберём...
/*
* Сейчас в игре ( да , один этот файл заменит кучу тех , что ниже ) :
* cure15 . php
* cure30 . php
* cure30_8 . php
* cure30_100 . php
* cure45 . php
* cure60 . php
* cure120 . php
* cure150 . php
* cure300 . php
* cure_20 . php
* cure_35 . php
* cure_50 . php
* cure_d . php
* cure_rep_90 . php
* cure_rep_120 . php
* cure_rep_150 . php
* cure_rep_180 . php
* cure_rep_270 . php
* cure_rep_360 . php
* c30_100 . php
* 8 cure30 . php
2020-08-30 16:48:39 +00:00
* klan / heal20 . php user_abilities . php
* klan / heal35 . php user_abilities . php
* klan / heal50 . php user_abilities . php
* user / heal20 . php user_abilities . php
* user / heal35 . php user_abilities . php
* user / heal50 . php user_abilities . php
2019-12-23 18:04:05 +00:00
* */
// Если не в игре - идём нахер.
2020-06-23 06:12:04 +00:00
if ( empty ( $_SESSION [ 'uid' ])) { header ( " Location: index.php " );}
2019-12-23 18:04:05 +00:00
// Если нет цели заклинания - идём нахер.
2020-06-23 06:12:04 +00:00
if ( empty ( $_POST [ 'target' ])) { header ( " Location: index.php " );}
2019-12-23 18:04:05 +00:00
//Цель заклинания
$target = $_POST [ 'target' ];
//Шанс на успех
$chance = 0 ;
$chance = $_POST [ 'chance' ];
2020-06-23 06:12:04 +00:00
if ( $chance > 95 ) { $chance = 95 ;}
2019-12-23 18:04:05 +00:00
//Интеллект заклинателя
$mage_intellect = 0 ;
$mage_intellect = $user [ 'intel' ];
//Данные игрока, на которого колдуем
2019-12-23 20:15:22 +00:00
$receiver = db :: c () -> query ( 'SELECT `id`, `hp`, `maxhp`, `battle`, `room`, (select `id` from `online` WHERE `id` = `users`.`id` AND `date` >= ?i) as `online` FROM `users` WHERE `login` = "?s"' , time () - 60 , $target ) -> fetch_assoc ();
2019-12-23 18:04:05 +00:00
//Сила заклинания (на сколько лечим)
//Если не указано, лечим на случайное значение от 0 до уровня интеллекта мага.
$magic_power = mt_rand ( 0 , $mage_intellect );
2020-06-23 06:12:04 +00:00
if ( ! empty ( $_POST [ 'magic_power' ])) { $magic_power = $_POST [ 'magic_power' ];}
2019-12-23 19:53:10 +00:00
//Является ли сила лечения процентом?
$percentage = false ;
if ( ! empty ( $_POST [ 'percentage' ])) {
$percentage = true ;
2020-06-23 06:12:04 +00:00
if ( $magic_power > 100 ) { $magic_power = 100 ;}
2019-12-23 19:53:10 +00:00
}
//Статус, отображаемый магу
2019-12-23 18:04:05 +00:00
$status = '' ;
if ( $receiver [ 'battle' ] != $user [ 'battle' ]) {
$status = " Персонаж находится в поединке! " ;
} elseif ( $user [ 'room' ] != $receiver [ 'room' ] && ! $receiver [ 'battle' ]) {
$status = " Персонаж в другой комнате! " ;
} elseif ( $receiver [ 'battle' ] && ! in_array ( $receiver [ 'id' ], $fbattle -> team_mine )) {
$status = " Нельзя лечить противников! " ;
2019-12-23 20:10:47 +00:00
} elseif ( $user [ 'hp' ] < 1 ) {
$status = " Вы мертвы! " ;
2019-12-23 18:04:05 +00:00
} else {
//TODO: Проверка на то, что магу хватает навыка владения школой магии.
//IDEA: Можно добавить проверку на интеллект, где при определённом интеллекте шанс на успех становится 95-100%.
2019-12-23 19:53:10 +00:00
if ( $chance >= mt_rand ( 1 , 100 )) {
2019-12-23 18:04:05 +00:00
2019-12-23 19:53:10 +00:00
//Проверка на то, повышается здоровье на константу или на процент.
if ( $percentage ) {
$new_hp = $receiver [ 'hp' ] + $receiver [ 'maxhp' ] / 100 * $magic_power ;
2019-12-23 18:04:05 +00:00
} else {
$new_hp = $receiver [ 'hp' ] + $magic_power ;
}
2020-06-23 06:12:04 +00:00
if ( $new_hp >= $receiver [ 'maxhp' ]) { $new_hp = $receiver [ 'maxhp' ];}
2019-12-23 19:53:10 +00:00
2019-12-23 18:04:05 +00:00
if ( $user [ 'battle' ] > 0 ) {
db :: c () -> query ( 'UPDATE `battle` SET `to1` = ?i, `to2` = ?i WHERE `id` = ?i' , time (), time (), $user [ 'battle' ]);
2020-08-27 12:17:02 +00:00
$fbattle -> AddToLog ( '<span class=date>' . date ( " H:i " ) . '</span> ' . Nick :: id ( $user [ 'id' ]) -> short () . ' колдует заклятие лечения и восстанавливает ' . (( $receiver [ 'id' ] != $user [ 'id' ]) ? Nick :: id ( $receiver [ 'id' ]) -> short () : " с е б е " ) . ' здоровье <B>' . $magic_power . '</B> [' . ( $new_hp ) . '/' . $receiver [ 'maxhp' ] . ']<BR>' );
2019-12-23 18:04:05 +00:00
$fbattle -> write_log ();
}
db :: c () -> query ( 'UPDATE `users` SET `hp` = ?i WHERE `id` = ?i' , $new_hp , $receiver [ 'id' ]);
2019-12-23 20:15:22 +00:00
$status = " Вы восстановили { $magic_power } Н Р персонажу { $target } ! " ;
2019-12-23 18:04:05 +00:00
} else {
$status = " Свиток рассыпался в ваших руках... " ;
}
}
echo " <span style='color:red;'> $status </span> " ;