95) {$chance = 95;} //Интеллект заклинателя $mage_intellect = 0; $mage_intellect = $user['intel']; //Данные игрока, на которого колдуем $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(); //Сила заклинания (на сколько лечим) //Если не указано, лечим на случайное значение от 0 до уровня интеллекта мага. $magic_power = mt_rand(0, $mage_intellect); if (!empty($_POST['magic_power'])) {$magic_power = $_POST['magic_power'];} //Является ли сила лечения процентом? $percentage = false; if (!empty($_POST['percentage'])) { $percentage = true; if ($magic_power > 100) {$magic_power = 100;} } //Статус, отображаемый магу $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 = "Нельзя лечить противников!"; } elseif ($user['hp'] < 1) { $status = "Вы мертвы!"; } else { //TODO: Проверка на то, что магу хватает навыка владения школой магии. //IDEA: Можно добавить проверку на интеллект, где при определённом интеллекте шанс на успех становится 95-100%. if ($chance >= mt_rand(1, 100)) { //Проверка на то, повышается здоровье на константу или на процент. if ($percentage) { $new_hp = $receiver['hp'] + $receiver['maxhp'] / 100 * $magic_power; } else { $new_hp = $receiver['hp'] + $magic_power; } if ($new_hp >= $receiver['maxhp']) {$new_hp = $receiver['maxhp'];} if ($user['battle'] > 0) { db::c()->query('UPDATE `battle` SET `to1` = ?i, `to2` = ?i WHERE `id` = ?i', time(), time(), $user['battle']); $fbattle->AddToLog('' . date("H:i") . ' ' . Nick::id($user['id'])->short() . ' колдует заклятие лечения и восстанавливает ' . (($receiver['id'] != $user['id']) ? Nick::id($receiver['id'])->short() : "себе") . ' здоровье ' . $magic_power . ' [' . ($new_hp) . '/' . $receiver['maxhp'] . ']
'); $fbattle->write_log(); } db::c()->query('UPDATE `users` SET `hp` = ?i WHERE `id` = ?i', $new_hp, $receiver['id']); $status = "Вы восстановили {$magic_power} НР персонажу {$target}!"; } else { $status = "Свиток рассыпался в ваших руках..."; } } echo "$status";