Рефакторинг, очистка, работа над ошибками, связанными с базой, отказ от глобальной переменной $user во многих файлах.
Singleton в некоторых местах вместо решения #42. Новые шаги для решения #16 и #52. Closes #42. Closes #32. Closes #31.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
use Battles\Database\DBPDO;
|
||||
use Battles\Database\Db;
|
||||
use Battles\DressedItems;
|
||||
use Battles\GameLogs;
|
||||
use Battles\InventoryItem;
|
||||
@@ -18,7 +18,7 @@ if ($get == 'exit') {
|
||||
}
|
||||
require_once 'functions.php';
|
||||
|
||||
User::$current->setOnline();
|
||||
User::getInstance()->setOnline();
|
||||
|
||||
$req = (object)[];
|
||||
$keys = ['ups', 'drop', 'dress', 'destruct', 'use', 'undress', 'edit', 'goto', 'obraz', 'setshadow'];
|
||||
@@ -29,7 +29,7 @@ foreach ($keys as $key) {
|
||||
if ($req->edit) {
|
||||
if ($req->ups) {
|
||||
try {
|
||||
$up = new UserInfo(User::$current->getId());
|
||||
$up = new UserInfo(User::getInstance()->getId());
|
||||
$up->addOnePointToStat($req->ups);
|
||||
unset($up);
|
||||
} catch (GameException $e) {
|
||||
@@ -37,22 +37,22 @@ if ($req->edit) {
|
||||
}
|
||||
}
|
||||
if ($req->drop) {
|
||||
$items = new DressedItems(User::$current->getId());
|
||||
$items = new DressedItems(User::getInstance()->getId());
|
||||
$items->undressItem($req->drop);
|
||||
unset($items);
|
||||
}
|
||||
//Пока что одеваем предмет отсюда.
|
||||
if ($req->dress) {
|
||||
$dressing = new InventoryItem(DBPDO::$db->ofetch('select * from inventory where item_id = ? ', $req->dress));
|
||||
$dressing = new InventoryItem(Db::getInstance()->ofetch('select * from inventory where item_id = ? ', $req->dress));
|
||||
$dressing->dressItem();
|
||||
unset($dressing);
|
||||
}
|
||||
if ($req->destruct) {
|
||||
$q = DBPDO::$db->ofetch('select name,dressed_slot from inventory where owner_id = ? and item_id = ?', [User::$current->getId(), $req->destruct]);
|
||||
$q = Db::getInstance()->ofetch('select name,dressed_slot from inventory where owner_id = ? and item_id = ?', [User::getInstance()->getId(), $req->destruct]);
|
||||
if ($q) {
|
||||
if (empty($q->dressed_slot)) {
|
||||
InventoryItem::destroyItem($req->destruct);
|
||||
GameLogs::addUserLog(User::$current->getId(), User::$current->getLogin() . ' выбросил предмет ' . $q->name . ' id:(cap' . $req->destruct . ')');
|
||||
GameLogs::addUserLog(User::getInstance()->getId(), User::getInstance()->getLogin() . ' выбросил предмет ' . $q->name . ' id:(cap' . $req->destruct . ')');
|
||||
err('Предмет ' . $q->name . ' выброшен.');
|
||||
} else {
|
||||
err('Ошибка: нельзя выбросить одетый предмет!');
|
||||
@@ -65,23 +65,23 @@ if ($req->edit) {
|
||||
usemagic($req->use, $req->useTarget);
|
||||
}
|
||||
if ($req->undress) {
|
||||
DressedItems::undressAllItems(User::$current->getId());
|
||||
DressedItems::undressAllItems(User::getInstance()->getId());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Подготавливаем отображение инфы и предметов.
|
||||
$userInfo = new UserInfo(User::$current->getId());
|
||||
$userStats = new UserStats(User::$current->getId());
|
||||
$userInfo = new UserInfo(User::getInstance()->getId());
|
||||
$userStats = new UserStats(User::getInstance()->getId());
|
||||
$stat = $userStats->getFullStats();
|
||||
$data = DBPDO::$db->ofetchAll('SELECT * FROM inventory WHERE owner_id = ? AND dressed_slot = 0 AND on_sale = 0', User::$current->getId());
|
||||
$data = Db::getInstance()->ofetchAll('SELECT * FROM inventory WHERE owner_id = ? AND dressed_slot = 0 AND on_sale = 0', User::getInstance()->getId());
|
||||
$iteminfo = [];
|
||||
foreach ($data as $row) {
|
||||
$iteminfo = new InventoryItem($row);
|
||||
}
|
||||
|
||||
//Обработчики нажатий на кнопки.
|
||||
if ($req->battlefield ?? 0 && User::$current->getRoom() == 1) {
|
||||
if ($req->battlefield ?? 0 && User::getInstance()->getRoom() == 1) {
|
||||
header('Location: zayavka.php');
|
||||
exit();
|
||||
}
|
||||
@@ -89,11 +89,11 @@ if ($req->module_quest ?? 0) {
|
||||
header('Location: module_quest.php');
|
||||
exit();
|
||||
}
|
||||
if ($req->move_inside ?? 0 && User::$current->getRoom() == 20) {
|
||||
if ($req->move_inside ?? 0 && User::getInstance()->getRoom() == 20) {
|
||||
header('Location: main.php?goto=arena');
|
||||
exit();
|
||||
}
|
||||
if ($req->move_outside ?? 0 && User::$current->getRoom() == 1) {
|
||||
if ($req->move_outside ?? 0 && User::getInstance()->getRoom() == 1) {
|
||||
header('Location: main.php?goto=plo');
|
||||
exit();
|
||||
}
|
||||
@@ -104,12 +104,12 @@ if ($req->main_page ?? 0) {
|
||||
|
||||
if (!$req->edit) {
|
||||
/* === проверяем соответствие комнаты и скрипта === */
|
||||
if (in_array(User::$current->getRoom(), [20, 21, 26, 48, 51, 52, 651, 2655, 2601, 2701, 2702, 2111])) {
|
||||
if (in_array(User::getInstance()->getRoom(), [20, 21, 26, 48, 51, 52, 651, 2655, 2601, 2701, 2702, 2111])) {
|
||||
header('Location: city.php');
|
||||
exit();
|
||||
}
|
||||
if (in_array(User::$current->getRoom(), [22, 23, 25, 27, 29, 30, 31, 34, 45, 53, 61, 402, 403, 600, 601, 602, 603, 620, 621, 650, 660, 661, 662, 666, 760, 1051, 1052, 1055])) {
|
||||
header('location: ' . Travel::$roomFileName[User::$current->getRoom()]);
|
||||
if (in_array(User::getInstance()->getRoom(), [22, 23, 25, 27, 29, 30, 31, 34, 45, 53, 61, 402, 403, 600, 601, 602, 603, 620, 621, 650, 660, 661, 662, 666, 760, 1051, 1052, 1055])) {
|
||||
header('location: ' . Travel::$roomFileName[User::getInstance()->getRoom()]);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -129,9 +129,9 @@ function del_efs($id, $type)
|
||||
// Входим и выходим если можем.
|
||||
if ($req->goto) {
|
||||
$imove = true;
|
||||
$d = db::c()->query('SELECT SUM(weight) AS sum_weight FROM inventory WHERE owner_id = ?i AND on_sale = 0', User::$current->getId())->fetch_assoc();
|
||||
$eff = db::c()->query('SELECT 1 FROM `users_effects` WHERE `owner_id` = ?i AND (`type` = 14 OR `type` = 13)', User::$current->getId());
|
||||
//(масса: <?= $getItemsBonuses->getItemsWeight() . '/' . User::$current->strength * 4
|
||||
$d = db::c()->query('SELECT SUM(weight) AS sum_weight FROM inventory WHERE owner_id = ?i AND on_sale = 0', User::getInstance()->getId())->fetch_assoc();
|
||||
$eff = db::c()->query('SELECT 1 FROM `users_effects` WHERE `owner_id` = ?i AND (`type` = 14 OR `type` = 13)', User::getInstance()->getId());
|
||||
//(масса: <?= $getItemsBonuses->getItemsWeight() . '/' . User::getInstance()->strength * 4
|
||||
|
||||
if ($d['sum_weight'] > $userStats->getMaxWeight()) {
|
||||
err('У вас переполнен рюкзак, вы не можете передвигаться...');
|
||||
@@ -141,15 +141,15 @@ if ($req->goto) {
|
||||
err('У вас тяжелая травма, вы не можете передвигатся...');
|
||||
$imove = false;
|
||||
}
|
||||
if ($req->goto == 'plo' && !User::$current->getZayavka() && $imove && User::$current->getRoom() != 20) {
|
||||
db::c()->query('UPDATE users, online SET users.room = 20, online.room = 20 WHERE online.user_id = users.id AND online.user_id = ?i', User::$current->getId());
|
||||
if ($req->goto == 'plo' && !User::getInstance()->getZayavka() && $imove && User::getInstance()->getRoom() != 20) {
|
||||
db::c()->query('UPDATE users, online SET users.room = 20, online.room = 20 WHERE online.user_id = users.id AND online.user_id = ?i', User::getInstance()->getId());
|
||||
header('Location: city.php');
|
||||
exit("<i>Топ-топ-топ...</i>");
|
||||
} else {
|
||||
err('Подали заявку на бой и убегаете из клуба? Нехорошо...');
|
||||
}
|
||||
if ($req->goto == 'arena' && User::$current->getRoom() == 20 && $imove) {
|
||||
db::c()->query('UPDATE users, online SET users.room = 1, online.room = 1 WHERE online.user_id = users.id AND online.user_id = ?i', User::$current->getId());
|
||||
if ($req->goto == 'arena' && User::getInstance()->getRoom() == 20 && $imove) {
|
||||
db::c()->query('UPDATE users, online SET users.room = 1, online.room = 1 WHERE online.user_id = users.id AND online.user_id = ?i', User::getInstance()->getId());
|
||||
header('Location: main.php');
|
||||
exit("<i>Топ-топ-топ...</i>");
|
||||
}
|
||||
@@ -160,8 +160,8 @@ if ($req->use) {
|
||||
}
|
||||
|
||||
if ($req->obraz) {
|
||||
User::$current->setShadow($req->obraz);
|
||||
User::$current->saveUser();
|
||||
User::getInstance()->setShadow($req->obraz);
|
||||
User::getInstance()->saveUser();
|
||||
}
|
||||
|
||||
if ($req->setshadow) {
|
||||
@@ -272,12 +272,12 @@ Template::header('Игра');
|
||||
</td>
|
||||
<td style="vertical-align: top; width: 250px"> <!-- Второй столбец -->
|
||||
<div>
|
||||
<br>Уровень: <strong><?= User::$current->getLevel() ?></strong>
|
||||
<br>Опыт: <strong><?= User::$current->getExperience() ?></strong>
|
||||
<br>Уровень: <strong><?= User::getInstance()->getLevel() ?></strong>
|
||||
<br>Опыт: <strong><?= User::getInstance()->getExperience() ?></strong>
|
||||
<br>Побед: <strong>??</strong>
|
||||
<br>Поражений: <strong>??</strong>
|
||||
<br>Ничьих: <strong>??</strong>
|
||||
<br>Деньги: <strong><?= User::$current->getMoney() ?></strong> кр.
|
||||
<br>Деньги: <strong><?= User::getInstance()->getMoney() ?></strong> кр.
|
||||
<HR>
|
||||
</div>
|
||||
<!--Параметры-->
|
||||
@@ -329,14 +329,14 @@ Template::header('Игра');
|
||||
<td style="vertical-align: top;">
|
||||
<div class="button-container"> <!--Меню-кнопки-->
|
||||
<FORM METHOD=POST ACTION="?edit=1" name=f1>
|
||||
<?php if (User::$current->getShadow() == '0.gif' || User::$current->getAdmin() == 1): ?>
|
||||
<?php if (User::getInstance()->getShadow() == '0.gif' || User::getInstance()->getAdmin() == 1): ?>
|
||||
<INPUT class="button primary icon user" TYPE="submit" name="setshadow" value="Образы"
|
||||
title="Образы">
|
||||
<?php endif; ?>
|
||||
<div class="button-group">
|
||||
<?php if (User::$current->getRoom() == 20): ?>
|
||||
<?php if (User::getInstance()->getRoom() == 20): ?>
|
||||
<input class="button icon move" type="submit" name="move_inside" value="Войти внутрь">
|
||||
<?php elseif (User::$current->getRoom() == 1): ?>
|
||||
<?php elseif (User::getInstance()->getRoom() == 1): ?>
|
||||
<input class="button primary" type="submit" name="battlefield" value="Поединки">
|
||||
<input class="button icon move" type="submit" name="move_outside" value="Выйти на улицу">
|
||||
<?php endif; ?>
|
||||
|
||||
Reference in New Issue
Block a user