Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
df436bcef9
@ -48,12 +48,18 @@ if ($chance > 95) $chance = 95;
|
|||||||
$mage_intellect = 0;
|
$mage_intellect = 0;
|
||||||
$mage_intellect = $user['intel'];
|
$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();
|
$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 до уровня интеллекта мага.
|
//Если не указано, лечим на случайное значение от 0 до уровня интеллекта мага.
|
||||||
$magic_power = mt_rand(0, $mage_intellect);
|
$magic_power = mt_rand(0, $mage_intellect);
|
||||||
$magic_power = $_POST['magic_power'];
|
$magic_power = $_POST['magic_power'];
|
||||||
//Статус, отображаемый игроку
|
//Является ли сила лечения процентом?
|
||||||
|
$percentage = false;
|
||||||
|
if (!empty($_POST['percentage'])) {
|
||||||
|
$percentage = true;
|
||||||
|
if ($magic_power > 100) $magic_power = 100;
|
||||||
|
}
|
||||||
|
//Статус, отображаемый магу
|
||||||
$status = '';
|
$status = '';
|
||||||
|
|
||||||
if ($receiver['battle'] != $user['battle']) {
|
if ($receiver['battle'] != $user['battle']) {
|
||||||
@ -62,21 +68,23 @@ if ($receiver['battle'] != $user['battle']) {
|
|||||||
$status = "Персонаж в другой комнате!";
|
$status = "Персонаж в другой комнате!";
|
||||||
} elseif ($receiver['battle'] && !in_array($receiver['id'], $fbattle->team_mine)) {
|
} elseif ($receiver['battle'] && !in_array($receiver['id'], $fbattle->team_mine)) {
|
||||||
$status = "Нельзя лечить противников!";
|
$status = "Нельзя лечить противников!";
|
||||||
|
} elseif ($user['hp'] < 1) {
|
||||||
|
$status = "Вы мертвы!";
|
||||||
} else {
|
} else {
|
||||||
//TODO: Проверка на то, что маг не умер.
|
|
||||||
//TODO: Проверка на то, что магу хватает навыка владения школой магии.
|
//TODO: Проверка на то, что магу хватает навыка владения школой магии.
|
||||||
//IDEA: Можно добавить проверку на интеллект, где при определённом интеллекте шанс на успех становится 95-100%.
|
//IDEA: Можно добавить проверку на интеллект, где при определённом интеллекте шанс на успех становится 95-100%.
|
||||||
|
|
||||||
//FIXME Пять раз перепроверить!!!
|
|
||||||
if ($chance >= mt_rand(1, 100)) {
|
if ($chance >= mt_rand(1, 100)) {
|
||||||
|
|
||||||
//TODO: В нескольких файлах добавлялся процент от максимального(?) здоровья, а не константа. Надо внедрить.
|
//Проверка на то, повышается здоровье на константу или на процент.
|
||||||
if (($receiver['hp'] + $magic_power) > $receiver['maxhp']) {
|
if ($percentage) {
|
||||||
$new_hp = $receiver['maxhp'];
|
$new_hp = $receiver['hp'] + $receiver['maxhp'] / 100 * $magic_power;
|
||||||
} else {
|
} else {
|
||||||
$new_hp = $receiver['hp'] + $magic_power;
|
$new_hp = $receiver['hp'] + $magic_power;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($new_hp >= $receiver['maxhp']) $new_hp = $receiver['maxhp'];
|
||||||
|
|
||||||
if ($user['battle'] > 0) {
|
if ($user['battle'] > 0) {
|
||||||
db::c()->query('UPDATE `battle` SET `to1` = ?i, `to2` = ?i WHERE `id` = ?i', time(), time(), $user['battle']);
|
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->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>');
|
||||||
@ -84,7 +92,7 @@ if ($receiver['battle'] != $user['battle']) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
db::c()->query('UPDATE `users` SET `hp` = ?i WHERE `id` = ?i', $new_hp, $receiver['id']);
|
db::c()->query('UPDATE `users` SET `hp` = ?i WHERE `id` = ?i', $new_hp, $receiver['id']);
|
||||||
$status = "Вы восстановили {$magic_power} НР персонажу {$receiver['login']}!";
|
$status = "Вы восстановили {$magic_power} НР персонажу {$target}!";
|
||||||
} else {
|
} else {
|
||||||
$status = "Свиток рассыпался в ваших руках...";
|
$status = "Свиток рассыпался в ваших руках...";
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user