Новый свиток лечения. Один файл вместо многих. Initial commit.
This commit is contained in:
parent
a9bafb83ea
commit
c34b7a54a1
92
magic/healing.php
Normal file
92
magic/healing.php
Normal file
@ -0,0 +1,92 @@
|
||||
<?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
|
||||
* 8cure30.php
|
||||
* klan/heal20.php
|
||||
* klan/heal35.php
|
||||
* klan/heal50.php
|
||||
* user/heal20.php
|
||||
* user/heal35.php
|
||||
* user/heal50.php
|
||||
* */
|
||||
|
||||
// Если не в игре - идём нахер.
|
||||
if ($_SESSION['uid'] == null) header("Location: index.php");
|
||||
// Если нет цели заклинания - идём нахер.
|
||||
// IDEA: Или кастуем на себя. Но тут нужны дополнительные проверки.
|
||||
if (empty($_POST['target'])) header("Location: index.php");
|
||||
|
||||
//Цель заклинания
|
||||
$target = $_POST['target'];
|
||||
//Шанс на успех
|
||||
$chance = 0;
|
||||
$chance = $_POST['chance'];
|
||||
if ($chance > 95) $chance = 95;
|
||||
//Интеллект заклинателя
|
||||
$mage_intellect = 0;
|
||||
$mage_intellect = $user['intel'];
|
||||
//Данные игрока, на которого колдуем
|
||||
$receiver = db::c()->query('SELECT *, (select `id` from `online` WHERE `id` = `users`.`id` AND `date` >= ?i) as `online` FROM `users` WHERE `login` = "?s"', time() - 60, $_POST['target'])->fetch_assoc();
|
||||
//Сила заклинания (на сколько лечим)
|
||||
//Если не указано, лечим на случайное значение от 0 до уровня интеллекта мага.
|
||||
$magic_power = mt_rand(0, $mage_intellect);
|
||||
$magic_power = $_POST['magic_power'];
|
||||
//Статус, отображаемый игроку
|
||||
$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 = "Нельзя лечить противников!";
|
||||
} else {
|
||||
//TODO: Проверка на то, что маг не умер.
|
||||
//TODO: Проверка на то, что магу хватает навыка владения школой магии.
|
||||
//IDEA: Можно добавить проверку на интеллект, где при определённом интеллекте шанс на успех становится 95-100%.
|
||||
|
||||
//FIXME Пять раз перепроверить!!!
|
||||
if ($chance >= mt_rand(1,100)) {
|
||||
|
||||
//TODO: В нескольких файлах добавлялся процент от максимального(?) здоровья, а не константа. Надо внедрить.
|
||||
if (($receiver['hp'] + $magic_power) > $receiver['maxhp']) {
|
||||
$new_hp = $receiver['maxhp'];
|
||||
} else {
|
||||
$new_hp = $receiver['hp'] + $magic_power;
|
||||
}
|
||||
|
||||
if ($user['battle'] > 0) {
|
||||
db::c()->query('UPDATE `battle` SET `to1` = ?i, `to2` = ?i WHERE `id` = ?i', time(), time(), $user['battle']);
|
||||
$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>');
|
||||
$fbattle->write_log();
|
||||
}
|
||||
|
||||
db::c()->query('UPDATE `users` SET `hp` = ?i WHERE `id` = ?i', $new_hp, $receiver['id']);
|
||||
$status = "Вы восстановили {$magic_power} НР персонажу {$receiver['login']}!";
|
||||
} else {
|
||||
$status = "Свиток рассыпался в ваших руках...";
|
||||
}
|
||||
}
|
||||
echo "<span style='color:red;'>$status</span>";
|
Loading…
Reference in New Issue
Block a user