Compare commits

...

2 Commits

12 changed files with 12 additions and 190 deletions

View File

@ -1,7 +1,6 @@
<?php
# Date: 26.10.2020 (17:56)
namespace Battles;
// todo: #10
class City
{
use Rooms;

View File

@ -38,8 +38,7 @@ class Nick extends User
}
/**
* Берем ID и возвращаем его. Что-то для обратной совместимости, скорее всего.
* TODO: Отвязаться от функции и удалить.
* Вызов класса из самого себя. Читать про обратное связывание и пытаться что-то понять.
* @param $playerId
*
* @return Nick

View File

@ -567,7 +567,6 @@ class fbattle
function solve_mf($enemy, $myattack)
{
// БОНУСЫ! Как бы работают, но просто отвратительно.
// todo переоформить всю таблицу effects, чтобы туда писался сам параметр и его значение, чтобы на выхлопе суммировать;
// $zo = mysql_fetch_row(mysql_query("SELECT id FROM effects WHERE type=201 AND owner=" . (int)$this->user['id'] . ";"));
// $zo1 = mysql_fetch_row(mysql_query("SELECT id FROM effects WHERE type=201 AND owner=" . (int)$this->enemyhar['id'] . ";"));
// $zo2 = mysql_fetch_row(mysql_query("SELECT id FROM effects WHERE type=205 AND owner=" . (int)$this->user['id'] . ";"));

View File

@ -293,7 +293,6 @@ $fbattle = new fbattle($user['battle']);
if (($user['hp'] > 0) && $fbattle->battle) {
echo '<center><FONT COLOR=red><b>Ожидаем хода противника...</b></FONT><BR><INPUT TYPE=submit value="Обновить" name=' . (($user['battle'] > 0) ? "battle" : "end") . '><BR></CENTER>';
} elseif ($user['hp'] <= 0 && $fbattle->battle) {
//FIXME роняем вещи, которые больше не можем держать
ref_drop();
echo '<center><FONT COLOR=red><b>Ожидаем, пока бой закончат другие игроки...</b></FONT><BR><INPUT TYPE=submit value="Обновить" name=' . (($user['battle'] > 0) ? "battle" : "end") . '><BR></CENTER>';
}

View File

@ -409,9 +409,9 @@ function show_eff_inf($u, $type)
$and = " AND `type` != 1022";
}
$effs = db::c()->query('SELECT * FROM `users_effects` WHERE `type` <> 20 AND `owner_id` = ?i' . $and, $u)->fetch_assoc();
/* FIXME Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 132644820 bytes) in /home/combats/web/combats.loc/public_html/functions.php on line 873
/* Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 132644820 bytes) in /home/combats/web/combats.loc/public_html/functions.php on line 873
* Если на человеке стоит type=20
*
* #26
*/
$etype = $effs['type'];
if ($type == 1) {
@ -744,7 +744,7 @@ function dropitem($slot)
return true;
}
//FIXME роняем вещи, которые больше не можем держать
#15
function ref_drop()
{
//сможет держать
@ -829,7 +829,7 @@ function usemagic($id, $target)
if ($incmagic['needcharge'] > 0) {
$charge = $incmagic['needcharge'];
}
//FIXME Переделать под новую базу
//Переделать под новую базу
if (($all_magic[$user->id] < 1 || $charge == 0) &&
($user['sila'] >= $row['nsila'] &&
$user['lovk'] >= $row['nlovk'] &&
@ -947,174 +947,6 @@ function err($t)
return true;
}
// TODO: Переписать выдачу травм.
// ставим травму
//function settravma($id, $type, $time = 86400, $kill = false)
//{
// $user = mysql_fetch_array(mysql_query("SELECT `align`, `level` FROM `users` WHERE `id` = '{$id}' LIMIT 1"));
// if ((($user['align'] == 2 && mt_rand(1, 100) > 20) && !$kill) || ($user['level'] == 0)) {
// return false;
// } else {
// $travmalist = ["разбитый нос", "сотрясение первой степени", "потрепанные уши", "прикушенный язык", "перелом переносицы", "растяжение ноги", "растяжение руки", "подбитый глаз", "синяк под глазом", "кровоточащее рассечение", "отбитая «пятая точка»", "заклинившая челюсть", "выбитый зуб «мудрости»", "косоглазие"];
// $travmalist2 = ["отбитые почки", "вывих «вырезано цензурой»", "сотрясение второй степени", "оторванное ухо", "вывих руки", "оторванные уши", "поврежденный позвоночник", "отбитые почки", "поврежденный копчик", "разрыв сухожилия", "перелом ребра", "перелом двух ребер", "вывих ноги", "сломанная челюсть"];
// $travmalist3 = ["пробитый череп", "разрыв селезенки", "смещение позвонков", "открытый перелом руки", "открытый перелом «вырезано цензурой»", "излом носоглотки", "непонятные, но множественные травмы", "сильное внутреннее кровотечение", "раздробленная коленная чашечка", "перелом шеи", "смещение позвонков", "открытый перелом ключицы", "перелом позвоночника", "вывих позвоночника", "сотрясение третьей степени"];
// $owntravma = mysql_fetch_array(mysql_query("SELECT `type`, `id`, `sila`, `lovk`, `inta`, `hp` FROM `effects` WHERE `owner` = " . $id . " AND (`type` = 11 OR `type` = 12 OR `type` = 13) ORDER BY `type` DESC LIMIT 1"));
// if ($type != 0 && $type != 100) {
// $owntravma['type'] = $type;
// } elseif ($type != 0 && $type == 100 && $owntravma['type'] == 0) {
// $type = mt_rand(1, 100);
// if ($type < 10) {
// $owntravma['type'] = 25;
// } elseif ($type < 60) {
// $owntravma['type'] = "set";
// } elseif ($type < 85) {
// $owntravma['type'] = 11;
// } else {
// $owntravma['type'] = 12;
// }
// } elseif ($owntravma['type'] == 0) {
// $tr = mt_rand(1, 3);
// switch ($tr) {
// case 1:
// $owntravma['type'] = 0;
// break;
// case 2:
// $owntravma['type'] = 11;
// break;
// case 3:
// $owntravma['type'] = 12;
// break;
// }
// }
//
// switch ($owntravma['type']) {
//
// case 20:
// $st = mt_rand(0, 2);
// $zz = mt_rand(1, 3);
// $s = 0;
// $l = 0;
// $i = 0;
// switch ($zz) {
// case 1:
// $s = ($user['level'] + $st) * 3;
// break;
// case 2:
// $l = ($user['level'] + $st) * 3;
// break;
// case 3:
// $i = ($user['level'] + $st) * 3;
// break;
// }
// $trv = $travmalist3[mt_rand(0, count($travmalist3) - 1)];
// mysql_query("INSERT INTO `effects` (`owner`, `name`, `time`, `type`, `sila`, `lovk`, `inta`, `vinos`) VALUES ('" . $id . "', 'Травма &quot;" . $trv . "&quot;', " . (time() + $time) . ", '13', '" . $s . "', '" . $l . "', '" . $i . "', '0')");
// mysql_query("UPDATE `users` SET `sila` = (`sila`-'" . $s . "'), `lovk` = (`lovk`-'" . $l . "'), `inta` = (`inta`-'" . $i . "') WHERE `id` = '" . $id . "' LIMIT 1");
// return $trv;
// break;
//
// default:
// $st = mt_rand(0, 2);
// $zz = mt_rand(1, 3);
// $s = 0;
// $l = 0;
// $i = 0;
// switch ($zz) {
// case 1:
// $s = $user['level'] + $st;
// break;
// case 2:
// $l = $user['level'] + $st;
// break;
// case 3:
// $i = $user['level'] + $st;
// break;
// }
// $trv = $travmalist[mt_rand(0, count($travmalist) - 1)];
// $time = 60 * 60 * mt_rand(1, 5);
// mysql_query("INSERT INTO `effects` (`owner`, `name`, `time`, `type`, `sila`, `lovk`, `inta`, `vinos`) VALUES ('" . $id . "', 'Травма &quot;" . $trv . "&quot;', " . (time() + $time) . ", '11', '" . $s . "', '" . $l . "', '" . $i . "', '0')");
// mysql_query("UPDATE `users` SET `sila` = (`sila`-'" . $s . "'), `lovk` = (`lovk`-'" . $l . "'), `inta` = (`inta`-'" . $i . "') WHERE `id` = '" . $id . "' LIMIT 1");
// return $trv;
// break;
//
// case 11:
// $zz = mt_rand(1, 3);
// $s = 0;
// $l = 0;
// $i = 0;
// switch ($zz) {
// case 1:
// $s = ($user['level']) * 2;
// break;
// case 2:
// $l = ($user['level']) * 2;
// break;
// case 3:
// $i = ($user['level']) * 2;
// break;
// }
// $trv = $travmalist2[mt_rand(0, count($travmalist2) - 1)];
// $time = 60 * 60 * mt_rand(5, 15);
// mysql_query("INSERT INTO `effects` (`owner`, `name`, `time`, `type`, `sila`, `lovk`, `inta`, `vinos`) VALUES ('" . $id . "', 'Травма &quot;" . $trv . "&quot;', " . (time() + $time) . ", '12', '" . $s . "', '" . $l . "', '" . $i . "', '0')");
// mysql_query("UPDATE `users` SET `sila` = (`sila`-'" . $s . "'), `lovk` = (`lovk`-'" . $l . "'), `inta` = (`inta`-'" . $i . "') WHERE `id` = '" . $id . "' LIMIT 1");
// return $trv;
// break;
//
// case 12:
// $zz = mt_rand(1, 3);
// $s = 0;
// $l = 0;
// $i = 0;
// switch ($zz) {
// case 1:
// $s = ($user['level']) * 3;
// break;
// case 2:
// $l = ($user['level']) * 3;
// break;
// case 3:
// $i = ($user['level']) * 3;
// break;
// }
// $trv = $travmalist3[mt_rand(0, count($travmalist3) - 1)];
// $time = 60 * 60 * mt_rand(15, 24);
// mysql_query("INSERT INTO `effects` (`owner`, `name`, `time`, `type`, `sila`, `lovk`, `inta`, `vinos`) VALUES ('" . $id . "', 'Травма &quot;" . $trv . "&quot;', " . (time() + $time) . ", '13', '" . $s . "', '" . $l . "', '" . $i . "', '0')");
// mysql_query("UPDATE `users` SET `sila` = (`sila`-'" . $s . "'), `lovk` = (`lovk`-'" . $l . "'), `inta` = (`inta`-'" . $i . "') WHERE `id` = '" . $id . "' LIMIT 1");
// return $trv;
// break;
//
// case 13:
// $zz = mt_rand(1, 3);
// $s = 0;
// $l = 0;
// $i = 0;
// switch ($zz) {
// case 1:
// $s = ($user['level']) * 3;
// break;
// case 2:
// $l = ($user['level']) * 3;
// break;
// case 3:
// $i = ($user['level']) * 3;
// break;
// }
// $trv = $travmalist3[mt_rand(0, count($travmalist3) - 1)];
// $time = 60 * 60 * mt_rand(25, 26);
// mysql_query("INSERT INTO `effects` (`owner`, `name`, `time`, `type`, `sila`, `lovk`, `inta`, `vinos`) VALUES ('" . $id . "', 'Травма &quot;" . $trv . "&quot;', " . (time() + $time) . ", '14', '" . $s . "', '" . $l . "', '" . $i . "', '0')");
// mysql_query("UPDATE `users` SET `sila` = (`sila`-'" . $s . "'), `lovk` = (`lovk`-'" . $l . "'), `inta` = (`inta`-'" . $i . "') WHERE `id` = '" . $id . "' LIMIT 1");
// return $trv;
// break;
// }
// }
//}
//
//function deltravma($id)
//{
// $owntravmadb = db::c()->query('SELECT id FROM effects WHERE (`type` = 11 OR `type` = 12 OR `type` = 13 OR `type` = 14) AND id = ?i', $id);
// while ($owntravma = $owntravmadb->fetch_assoc_array()) {
// db::c()->query('DELETE FROM `effects` WHERE `id` = ?i', $owntravma['id']);
// }
//}
/**
* @param $name

View File

@ -32,7 +32,6 @@ function show_item($row, $txt, $place)
$magic['targeted'] = $incmagic['targeted'];
}
if (isset($row['id'])) {
//todo подтянуть отображение предмета из класса
$r .= '<div id="inv_' . $row['id'] . '"><table><tbody>';
$r .= '<tr valign="top" style="border: 2px groove threedface;">';
$r .= '<td class="even links original"><img src="/i/sh/' . $row['img'] . '">

View File

@ -1,7 +1,7 @@
<?php
// Магия восстагновления здоровья
use Battles\User;
class Healing extends magic
class Healing extends \Battles\Magic\Magic
{
private $target;
private $magicPower;
@ -17,8 +17,6 @@ class Healing extends magic
$this->magicPower = $power;
$this->target = $target;
if ($target && $this->isUsable()) {
//TODO: Проверка на то, что магу хватает навыка владения школой магии.
//IDEA: Можно добавить проверку на интеллект, где при определённом интеллекте шанс на успех становится 95-100%.
if ($isPercentage) {
$healHealthAmount = $this->target->health + $this->target->maxHealth / 100 * $this->magicPower;
} else {
@ -29,7 +27,6 @@ class Healing extends magic
}
db::c()->query('UPDATE users SET health = ?i WHERE id = ?i', $healHealthAmount, $this->target->id);
$targetName = $this->target->login;
//todo уведомление в лог боя если лечение происходит в бою.
return "Вы восстановили ${healHealthAmount} здоровья персонажу ${targetName}.";
} else {
return $this->status;

View File

@ -84,7 +84,7 @@ function del_efs($id, $type)
// одеть предмет
function dressitem($id)
{
//FIXME bug #7
//bug #7
define('HELMET', 1);
define('ARMOR', 2);
define('LEGS', 3);

View File

@ -781,7 +781,7 @@ if ($fd['location'] == '28' and $fd['name'] == 'Канализация 1 эта
<?php
$bot = "Лука";
$buser = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `login` = '$bot' LIMIT 1;"));
//FIXME Этот класс не умеет работать с ботами! Этот вызов - заглушка!
//Этот класс не умеет работать с ботами! Этот вызов - заглушка!
$botInfo = new \Battles\User('Лука');
$botInfo->showUserDoll();
?>

View File

@ -41,7 +41,6 @@ if ($_SESSION['receiverName']) {
$user->money -= 1;
Bank::setWalletMoney($user->money, $user->id);
db::c()->query('UPDATE `inventory` SET owner_id = ?i WHERE item_id= ?i AND owner_id = ?i', $receiverId, $sendItemId, $_SESSION['uid']);
//TODO: #9
$statusMessage = 'Предмет "' . $res['name'] . '" передан персонажу ' . $receiverId;
db::c()->query('INSERT INTO `telegraph` (`receiver`,`text`) VALUES (?i,"?s")', $receiverId, 'Почтовый перевод: ' . $res['name'] . ' от персонажа ' . $user['login'] . '.');
}

View File

@ -127,7 +127,6 @@ if ($sellItemId) {
$allcost = mt_rand(0, $dress['cost'] / 2);
db::c()->query('DELETE FROM `inventory` WHERE `id` = ?i', $dress['id']);
//todo подключить банковский класс
db::c()->query('UPDATE `users` SET `money` = `money` + ?i WHERE `id` = ?i', $allcost, $_SESSION['uid']);
if ($allcost == 0) {
$status = "После длительных и изнурительных торгов вы плюнули на всё и просто подарили ваш «{$dress['name']}» торговцу.";

View File

@ -438,7 +438,7 @@ class Zayavka
db::c()->query('UPDATE `users` SET `zayavka` = 0 WHERE `zayavka` = ?i', $zay);
foreach ($z['team1'] as $k => $v) {
if ($v < _BOTSEPARATOR_) {
//TODO Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().
//Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().
#addchp('<font color=red>Внимание!</font> Ваш бой не может начаться по причине <b>Группа не набрана</b>.', '{[]}' . nick::id($v)->short() . '{[]}');
exit('Bitch');
}
@ -510,7 +510,7 @@ class Zayavka
db::c()->query('UPDATE `users` SET `zayavka` = 0 WHERE `zayavka` = ?i', $zay);
db::c()->query('DELETE FROM `zayavka` WHERE `id` = ?i', $zay);
foreach ($z['team1'] as $k => $v) {
//TODO Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().[2]
//Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().[2]
#addchp('<font color=red>Внимание!</font> Ваш бой не может начаться по причине "Группа не набрана".', '{[]}' . nick::id($v)->short() . '{[]}');
return null;
}
@ -544,7 +544,7 @@ VALUES ("?s","?s",?i,?i,?i,"?s","?s",?i,?i,?i,?i)',
$rr .= ", ";
}
$rr .= Nick::id($v)->full(1);
//TODO Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().[3]
//Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().[3]
#addchp('<font color=red>Внимание!</font> Ваш бой начался!<br />\'; top.frames[\'main\'].location=\'fbattle.php\'; var z = \' ', '{[]}' . nick::id($v)->short() . '{[]}');
}
@ -555,7 +555,7 @@ VALUES ("?s","?s",?i,?i,?i,"?s","?s",?i,?i,?i,?i)',
$rr .= ", ";
}
$rr .= Nick::id($v)->full(1);
//TODO Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().[4]
//Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().[4]
#addchp('<font color=red>Внимание!</font> Ваш бой начался!<br />\'; top.frames[\'main\'].location=\'fbattle.php\'; var z = \' ', '{[]}' . nick::id($v)->short() . '{[]}');
}