diff --git a/classes/Battles/Bank.php b/classes/Battles/Bank.php index 99a534b..7ebea5a 100644 --- a/classes/Battles/Bank.php +++ b/classes/Battles/Bank.php @@ -10,6 +10,7 @@ namespace Battles; use Exceptions\GameException; use Battles\Database\Db; use Throwable; +use Battles\Models\BankModel; class Bank { @@ -17,15 +18,20 @@ class Bank private int $money = 0; private $user; - const ERROR_NO_MONEY_IN_WALLET = "Ошибка! Нет денег в кошельке!"; - const ERROR_NO_BANK_ACCOUNT = "Ошибка! Счёта не существует!"; - const ERROR_NO_MONEY_IN_BANK_ACCOUNT = "Ошибка! Нет денег на счету!"; - const ERROR_WRONG_AMOUNT = "Ошибка! Сумма должна быть положительной!"; - const LOG = [ - 'sendMoney' => 'Банк: Перевод средств на другой счёт.', - 'receiveMoney' => 'Банк: Получение средств.', - 'depositMoney' => 'Пополнение счёта.', - 'withdrawMoney' => 'Снятие денег со счёта.', + private const ERROR_NO_MONEY_IN_WALLET = "Ошибка! Нет денег в кошельке!"; + private const ERROR_NO_BANK_ACCOUNT = "Ошибка! Счёта не существует!"; + private const ERROR_NO_MONEY_IN_BANK_ACCOUNT = "Ошибка! Нет денег на счету!"; + private const ERROR_WRONG_AMOUNT = "Ошибка! Сумма должна быть положительной!"; + private const MINIMUM_COMISSION_VALUE = 1; + private const OPERATION_SEND_MONEY = 'sendMoney'; + private const OPERATION_DEPOSIT_MONEY = 'depositMoney'; + private const OPERATION_RECEIVE_MONEY = 'receiveMoney'; + private const OPERATION_WITHDRAW_MONEY = 'withdrawMoney'; + private const LOG = [ + self::OPERATION_SEND_MONEY => 'Банк: Перевод средств на другой счёт.', + self::OPERATION_RECEIVE_MONEY => 'Банк: Получение средств.', + self::OPERATION_DEPOSIT_MONEY => 'Пополнение счёта.', + self::OPERATION_WITHDRAW_MONEY => 'Снятие денег со счёта.', 'clanRegister' => 'Оплата стоимости регистрации клана.', 'sellShop' => 'Продажа товара в магазине.' ]; @@ -51,11 +57,7 @@ class Bank private function bankCommission(int $amount): int { $bankCommission = round($amount * GameConfigs::BANK_COMISSION); - if ($bankCommission < 1) { - return 1; - } else { - return (int)$bankCommission; - } + return $bankCommission >= self::MINIMUM_COMISSION_VALUE ? (int)$bankCommission : self::MINIMUM_COMISSION_VALUE; } /** @@ -64,25 +66,25 @@ class Bank * @param int $receiverId ID получателя. * @param int $amount сумма. * @param string $operationType тип банковской операции. - * @param int $senderId ID отправителя (ID игрока, если не указано иное). + * @param ?int $senderId ID отправителя (ID игрока, если не указано иное). * * @return void */ - private function bankLogs(int $receiverId, int $amount, string $operationType, int $senderId = null): void + private function bankLogs(int $receiverId, int $amount, string $operationType, ?int $senderId = null): void { if (is_null($senderId)) { $senderId = $this->user_id; } $text = self::LOG[$operationType]; - if ($operationType == "sendMoney") { + if ($operationType == self::OPERATION_SEND_MONEY) { $text .= " Комиссия: " . $this->bankCommission($amount); - } elseif ($operationType == "depositMoney") { + } elseif ($operationType == self::OPERATION_DEPOSIT_MONEY) { $receiverId = $this->user_id; - } elseif ($operationType == "withdrawMoney") { + } elseif ($operationType == self::OPERATION_WITHDRAW_MONEY) { $receiverId = $this->user_id; $text .= " Комиссия: " . $this->bankCommission($amount); } - GameLogs::addBankLog($senderId,$receiverId,$amount,$operationType,$text); + GameLogs::addBankLog($senderId, $receiverId, $amount, $operationType, $text); } /** @@ -110,11 +112,11 @@ class Bank // Снимаем сумму с комиссией у отправителя $this->money -= $amountWithComission; self::setBankMoney($this->money, $this->user_id); - $this->bankLogs($receiver, $this->money, "sendMoney"); + $this->bankLogs($receiver, $this->money, self::OPERATION_SEND_MONEY); // Отдаём сумму на счёт получателю $receiverWallet->money += $amount; self::setBankMoney($receiverWallet->money, $receiver); - $this->bankLogs($receiver, $receiverWallet->money, "receiveMoney"); + $this->bankLogs($receiver, $receiverWallet->money, self::OPERATION_RECEIVE_MONEY); // Возвращаем изменившиеся значения return $this->money; } @@ -142,7 +144,7 @@ class Bank // Отдаём сумму на счёт получателю $this->money += $amount; self::setBankMoney($this->money, $this->user_id); - $this->bankLogs(0, $this->money, "depositMoney"); + $this->bankLogs(0, $this->money, self::OPERATION_DEPOSIT_MONEY); // Возвращаем изменившиеся значения return [ 'walletMoney' => $this->user->money, @@ -170,7 +172,7 @@ class Bank // Снимаем сумму с комиссией у отправителя $this->money -= $amountWithComission; self::setBankMoney($this->money, $this->user_id); - $this->bankLogs(0, $this->money, "withdrawMoney"); + $this->bankLogs(0, $this->money, self::OPERATION_WITHDRAW_MONEY); // Отдаём сумму в кошелёк получателя $this->user['money'] += $amount; self::setWalletMoney($this->user['money'], $this->user_id); @@ -185,15 +187,16 @@ class Bank * Установить количество денег на банковском счету. * * @param int $amount сумма. - * @param int $user_id ID пользователя. + * @param int $uid ID пользователя. * @param string $operationType Тип операции. По умолчанию пусто. Если ввести, система запишет событие в банковский лог. * * @return void */ - public static function setBankMoney(int $amount, int $user_id, string $operationType = ''): void + public static function setBankMoney(int $amount, int $uid, string $operationType = ''): void { + $bm = new BankModel(); try { - Db::getInstance()->execute('UPDATE bank SET money = ? WHERE user_id = ?', [$amount, $user_id]); + $bm->setMoney($amount, $uid); if ($operationType) { GameLogs::addBankLog(0, 0, $amount, $operationType, self::LOG[$operationType]); } @@ -207,14 +210,14 @@ class Bank * Установить количество денег на руках. * * @param int $amount сумма. - * @param int $user_id ID пользователя. + * @param int $uid ID пользователя. * * @return void */ - public static function setWalletMoney(int $amount, int $user_id): void + public static function setWalletMoney(int $amount, int $uid): void { - User::getInstance($user_id)->setMoney($amount); - User::getInstance($user_id)->saveMoney(); + User::getInstance($uid)->setMoney($amount); + User::getInstance($uid)->saveMoney(); } public function getMoney(): int diff --git a/classes/Battles/City.php b/classes/Battles/City.php index ccf785f..16d6b69 100644 --- a/classes/Battles/City.php +++ b/classes/Battles/City.php @@ -1,9 +1,11 @@ '; + self::showBuilding(222, "cap_arr_top", 180, 650, "Торговая улица"); } elseif ($id === 21) { echo '
background' . self::showBuilding(3, "cap_arr_right", 255, 708, "Ристалище") . @@ -26,15 +27,13 @@ class City self::showBuilding(5, "spring_cap_bank", 180, 485, self::$roomNames[29]) . self::showBuilding(13, "spring_cap_flowershop", 220, 613, self::$roomNames[34]) . self::showBuilding(14, "spring_cap_registratura", 170, 113, self::$roomNames[30]) . - self::showBuilding(16, "spring_cap_tower", 5, 315, self::$roomNames[31]) . - '
'; + self::showBuilding(16, "spring_cap_tower", 5, 315, self::$roomNames[31]); } elseif ($id === 26) { echo '
background' . self::showBuilding(3, "cap_arr_left", 259, 27, self::$roomNames[2601]) . self::showBuilding(4, "cap_arr_right", 259, 715, self::$roomNames[20]) . self::showBuilding(6, "cap_gate", 170, 340, "Городские ворота") . - self::showBuilding(660, "spring_cap_vokzal", 163, 43, self::$roomNames[661]) . - '
'; + self::showBuilding(660, "spring_cap_vokzal", 163, 43, self::$roomNames[661]); } elseif ($id === 2601) { echo '
background' . self::showBuilding(1, "spring_cap_ruins", 166, 48, "Руины Старого замка") . @@ -42,43 +41,42 @@ class City self::showBuilding(10, "ava_post", 240, 300, self::$roomNames[35]) . self::showBuilding(55, "cap_arr_left", 258, 21, self::$roomNames[2655]) . self::showBuilding(1051, "spring_cap_lab", 130, 327, self::$roomNames[33]) . - self::showBuilding(1052, "spring_cap_lavka", 240, 425, self::$roomNames[1053]) . - '
'; + self::showBuilding(1052, "spring_cap_lavka", 240, 425, self::$roomNames[1053]); } elseif ($id === 2655) { echo '
background' . self::showBuilding(10, "arr_right_png2", 260, 710, self::$roomNames[2601]) . - self::showBuilding(2055, "altr_g", 230, 340, self::$roomNames[603]) . - '
'; + self::showBuilding(2055, "altr_g", 230, 340, self::$roomNames[603]); } elseif ($id === 2111) { echo '
background' . self::showBuilding(1, "cap_arr_left", 240, 30, self::$roomNames[21]) . self::showBuilding(14, "spring_cap_rist_solo", 210, 160, "Вход в Одиночные сражения") . self::showBuilding(14, "spring_cap_rist_group", 243, 340, "Вход в Сражение отрядов") . self::showBuilding(203, "spring_cap_rist_monstr", 145, 570, "Вход в Груповые сражения") . - self::showBuilding(1000, "av_zamk_rud", 80, 310, self::$roomNames[1001]) . - '
'; + self::showBuilding(1000, "av_zamk_rud", 80, 310, self::$roomNames[1001]); } elseif ($id === 2701) { echo '
background' . self::showBuilding(1, "cap_3strelka", 260, 30, "Берег Залива") . - self::showBuilding(2, "cap_shar_dark", 234, 356, "Лабиринт Хаоса") . - '
'; + self::showBuilding(2, "cap_shar_dark", 234, 356, "Лабиринт Хаоса"); } elseif ($id === 2702) { echo '
background' . self::showBuilding(6, "spring_cap_build1", 175, 70, "Академия") . self::showBuilding(10, "cap_rist_arr_left", 259, 25, self::$roomNames[20]) . self::showBuilding(16, "auk", 120, 300, "Аукцион") . self::showBuilding(21, "spring_cap_build2", 150, 565, "Ломбард") . - self::showBuilding(16555, "spring_cap_build3", 155, 480, "Прокатная лавка") . - '
'; + self::showBuilding(16555, "spring_cap_build3", 155, 480, "Прокатная лавка"); + } + if (in_array($id, [20, 21, 26, 2601, 2655, 2111, 2701, 2702])) { + echo ''; } } - private static function showBuilding(int $id, string $image, int $top, int $left, string $description) + private static function showBuilding(int $id, string $image, int $top, int $left, string $description): string { - return sprintf(' -
-%s -
', - $left, $top, $image, $description, $description, $id, $id); + return << + $description + + HTML; } } \ No newline at end of file diff --git a/classes/Battles/Item.php b/classes/Battles/Item.php index d6472c3..476a631 100644 --- a/classes/Battles/Item.php +++ b/classes/Battles/Item.php @@ -131,7 +131,7 @@ class Item $mods_cost_modifier = 2 + floor($sum_mods / 50); $damage_cost_modifier = 1 + floor($sum_damage / 100); $result = intval($sum_stats * $stats_cost_modifier + $sum_mods * $mods_cost_modifier + $sum_damage * $damage_cost_modifier); - return $result < 1 ? 1 : $result; + return max($result, 1); } protected function wrap(int $number): string diff --git a/classes/Battles/Models/BankModel.php b/classes/Battles/Models/BankModel.php new file mode 100644 index 0000000..4efd7c9 --- /dev/null +++ b/classes/Battles/Models/BankModel.php @@ -0,0 +1,22 @@ +columns = [ + self::$primaryKey => $uid, + 'money' => $money, + ]; + $this->updateByPrimaryKey(); + } +} \ No newline at end of file diff --git a/classes/Battles/Models/Model.php b/classes/Battles/Models/Model.php new file mode 100644 index 0000000..80c4029 --- /dev/null +++ b/classes/Battles/Models/Model.php @@ -0,0 +1,50 @@ +columns[$column]; + } + + protected function setColumnValue($column, $value) + { + $this->columns[$column] = $value; + } + + /** + * Полная перезапись. Отсутствующие параметры превратятся в default|null. + * @return void + */ + protected function save() + { + $q = 'replace into ' . self::$tableName . ' (' . implode(', ', array_keys($this->columns)) . ') values('; + $keys = []; + foreach ($this->columns as $key => $value) { + $keys[':' . $key] = $value; + } + $q .= implode(', ', array_keys($keys)) . ')'; + Db::getInstance()->execute($q, $keys); + } + + protected function updateByPrimaryKey() + { + $q = 'update ' . self::$tableName . ' set '; + $keys = []; + foreach ($this->columns as $key => $value) { + $keys[':' . $key] = $value; + $q .= $key . ' = :' . $key . ', '; + } + $q = rtrim($q, ','); + $q .= 'where ' . self::$primaryKey . ' = :' . self::$primaryKey; + Db::getInstance()->execute($q, $keys); + } +} diff --git a/classes/Battles/Models/UserStats.php b/classes/Battles/Models/UserStats.php new file mode 100644 index 0000000..1656f5f --- /dev/null +++ b/classes/Battles/Models/UserStats.php @@ -0,0 +1,104 @@ +id = $uid; + } + + + public function getFull(): object + { + $stats = Db::getInstance()->ofetch(" + select + strength, + dexterity, + intuition, + endurance, + intelligence, + wisdom + from users where id = $this->id"); + $itemBonuses = Db::getInstance()->ofetch(" + select + sum(add_strength) as item_strength, + sum(add_dexterity) as item_dexterity, + sum(add_intuition) as item_intuition, + sum(add_endurance) as item_endurance, + sum(add_intelligence) as item_intelligence, + sum(add_wisdom) as item_wisdom, + sum(add_accuracy) as item_accuracy, + sum(add_evasion) as item_evasion, + sum(add_criticals) as item_criticals, + sum(add_min_physical_damage) as item_min_physical_damage, + sum(add_max_physical_damage) as item_max_physical_damage + from inventory where dressed_slot != 0 and owner_id = $this->id"); + $effectBonuses = Db::getInstance()->ofetch(" + select + sum(mod_strength) as effect_strength, + sum(mod_dexterity) as effect_dexterity, + sum(mod_intuition) as effect_intuition, + sum(mod_endurance) as effect_endurance, + sum(mod_intelligence) as effect_intelligence, + sum(mod_wisdom) as effect_wisdom + from users_effects where owner_id = $this->id"); + $obj = (object)[]; + $obj->strength = max(0,$stats->strength + $itemBonuses->item_strength + $effectBonuses->effect_strength); + $obj->dexterity = max(0,$stats->dexterity + $itemBonuses->item_dexterity + $effectBonuses->effect_dexterity); + $obj->intuition = max(0,$stats->intuition + $itemBonuses->item_intuition + $effectBonuses->effect_intuition); + $obj->endurance = max(0,$stats->endurance + $itemBonuses->item_endurance + $effectBonuses->effect_endurance); + $obj->intelligence = max(0,$stats->intelligence + $itemBonuses->item_intelligence + $effectBonuses->effect_intelligence); + $obj->wisdom = max(0,$stats->wisdom + $itemBonuses->item_wisdom + $effectBonuses->effect_wisdom); + $obj->accuracy = max(0, $itemBonuses->item_accuracy); + $obj->evasion = max(0, $itemBonuses->item_evasion); + $obj->criticals = max(0, $itemBonuses->item_criticals); + $obj->min_physical_damage = max(self::KULAK_MIN_DAMAGE, self::KULAK_MIN_DAMAGE + $itemBonuses->item_min_physical_damage); + $obj->max_physical_damage = max(self::KULAK_MAX_DAMAGE, self::KULAK_MAX_DAMAGE + $itemBonuses->item_max_physical_damage); + return $obj; + } + + public function addPoint(string $stat) + { + $query = "update users set $stat = $stat + 1, free_stat_points = free_stat_points - 1 where " . self::$primaryKey . " = ?"; + Db::getInstance()->execute($query, $this->id); + + } + + public function save() + { + $this->columns = [ + self::$primaryKey => $this->id, + 'strength' => $this->strength, + 'dexterity' => $this->dexterity, + 'intuition' => $this->intuition, + 'endurance' => $this->endurance, + 'intelligence' => $this->intelligence, + 'wisdom' => $this->wisdom, + 'health' => $this->health, + 'mana' => $this->mana, + 'free_stat_points' => $this->free_stat_points, + 'level' => $this->level, + ]; + $this->updateByPrimaryKey(); + } +} \ No newline at end of file diff --git a/classes/Battles/Moderation.php b/classes/Battles/Moderation.php index a8cf52e..f3b5b38 100644 --- a/classes/Battles/Moderation.php +++ b/classes/Battles/Moderation.php @@ -54,13 +54,13 @@ class Moderation public static function blockUser(int $target) { self::addEffectStatusToUserLog($target, "Блокировка"); - Db::getInstance()->execute('UPDATE battles.users SET block = 1 WHERE id = ?', $target); + Db::getInstance()->execute('UPDATE users SET block = 1 WHERE id = ?', $target); } public static function unBlockUser(int $target) { self::addEffectStatusToUserLog($target, "Блокировка" . self::STATUS_OFF); - Db::getInstance()->execute('UPDATE battles.users SET block = 0 WHERE block = 1 AND id = ?', $target); + Db::getInstance()->execute('UPDATE users SET block = 0 WHERE block = 1 AND id = ?', $target); } public static function addToUserLog(int $target, string $message, int $senderId) diff --git a/classes/Battles/Register.php b/classes/Battles/Register.php index 4dd5e17..a40fbc4 100644 --- a/classes/Battles/Register.php +++ b/classes/Battles/Register.php @@ -11,10 +11,12 @@ class Register if (Db::getInstance()->execute('select count(*) from users where login = ? or email = ?', [$login, $email])->fetchColumn()) { return 0; } - Db::getInstance()->execute('insert into users (login,pass,email,borndate,ip,session_id,shadow) values (?,?,?,?,?,?,?)', - [$login, $password, $email, $birthday, $_SERVER['REMOTE_ADDR'], session_id(), '0.png']); + Db::getInstance()->execute( + 'insert into users (login,pass,email,borndate,ip,session_id,shadow) values (?,?,?,?,?,?,?)', + [$login, $password, $email, $birthday, $_SERVER['REMOTE_ADDR'], session_id(), '0.png'] + ); $userId = Db::getInstance()->lastInsertId(); - Db::getInstance()->execute('insert into online (user_id, login_time, room, real_time) values (?,?,1,?)', [$userId, time(), time()]); + Db::getInstance()->execute('insert into online (user_id, login_time, room, real_time) values (?,unix_timestamp(),1,unix_timestamp())', $userId); Db::getInstance()->execute('insert into bank (user_id) values ?', $userId); return $userId; } diff --git a/classes/Battles/Travel.php b/classes/Battles/Travel.php index ae88e2a..884b05a 100644 --- a/classes/Battles/Travel.php +++ b/classes/Battles/Travel.php @@ -10,7 +10,7 @@ class Travel * Соответствие ID комнаты игровому файлу. * @var string[] */ - public static $roomFileName = [ + public static array $roomFileName = [ 1 => 'main.php', 20 => 'city.php', 21 => 'city.php', @@ -98,7 +98,7 @@ class Travel */ public static function toRoom(int $roomId, int $roomIdCurrent): void { - UserStats::getInstance()-> + //UserStats::getInstance()-> $itemsWeightOverflow = Db::getInstance()->fetchColumn('SELECT SUM(weight) - (select strength * 4 from users where id = ?) AS weight_overflow FROM inventory WHERE owner_id = ? AND on_sale = 0', [$_SESSION['uid'], $_SESSION['uid']]); $eff = Db::getInstance()->fetchColumn('SELECT type FROM users_effects WHERE owner_id = ? AND (`type` = 10 OR `type` = 13 OR `type` = 14)', $_SESSION['uid']); $errors = []; diff --git a/classes/Battles/UserEffects.php b/classes/Battles/UserEffects.php index 4182357..904d06f 100644 --- a/classes/Battles/UserEffects.php +++ b/classes/Battles/UserEffects.php @@ -4,7 +4,7 @@ namespace Battles; trait UserEffects { - public static $effectName = [ + public static array $effectName = [ 2 => 'Заклинание молчания', 3 => 'Заклятие форумного молчания', 4 => 'Заклятие хаоса', @@ -50,7 +50,7 @@ trait UserEffects 9994 => 'Антидот/Путы (Эликсир?)', ]; - public static $effectImage = [ + public static array $effectImage = [ 1 => 'travma.gif', 2 => 'magic/sleep.gif', 3 => 'magic/sleepf.gif', diff --git a/classes/Battles/UserStats.php b/classes/Battles/UserStats.php index 8e01125..318f429 100644 --- a/classes/Battles/UserStats.php +++ b/classes/Battles/UserStats.php @@ -17,6 +17,7 @@ class UserStats extends User protected $health; protected $mana; protected $free_stat_points; + private Models\UserStats $db; private const STAT_MAXIMUM_AMOUNT = 40; private const ERROR_STAT_IS_MAXIMUM = 'Ошибка: Параметр достиг своего лимита!'; private const ERROR_STAT_UNKNOWN = 'Ошибка: Неизвестный параметр!'; @@ -87,6 +88,8 @@ class UserStats extends User } else { $query = "UPDATE users SET {$stat_name} = {$stat_name} + 1, free_stat_points = free_stat_points - 1 WHERE id = ?"; Db::getInstance()->execute($query, $this->id); + //$this->db = new \Battles\Models\UserStats(23); + $this->db->addPoint($stat_name); } } @@ -161,51 +164,7 @@ class UserStats extends User public function getFullStats(): object { - $stats = Db::getInstance()->ofetch(" - select - strength, - dexterity, - intuition, - endurance, - intelligence, - wisdom - from users where id = $this->id"); - $itemBonuses = Db::getInstance()->ofetch(" - select - sum(add_strength) as item_strength, - sum(add_dexterity) as item_dexterity, - sum(add_intuition) as item_intuition, - sum(add_endurance) as item_endurance, - sum(add_intelligence) as item_intelligence, - sum(add_wisdom) as item_wisdom, - sum(add_accuracy) as item_accuracy, - sum(add_evasion) as item_evasion, - sum(add_criticals) as item_criticals, - sum(add_min_physical_damage) as item_min_physical_damage, - sum(add_max_physical_damage) as item_max_physical_damage - from inventory where dressed_slot != 0 and owner_id = $this->id"); - $effectBonuses = Db::getInstance()->ofetch(" - select - sum(mod_strength) as effect_strength, - sum(mod_dexterity) as effect_dexterity, - sum(mod_intuition) as effect_intuition, - sum(mod_endurance) as effect_endurance, - sum(mod_intelligence) as effect_intelligence, - sum(mod_wisdom) as effect_wisdom - from users_effects where owner_id = $this->id"); - $obj = (object)[]; - $obj->strength = max(0,$stats->strength + $itemBonuses->item_strength + $effectBonuses->effect_strength); - $obj->dexterity = max(0,$stats->dexterity + $itemBonuses->item_dexterity + $effectBonuses->effect_dexterity); - $obj->intuition = max(0,$stats->intuition + $itemBonuses->item_intuition + $effectBonuses->effect_intuition); - $obj->endurance = max(0,$stats->endurance + $itemBonuses->item_endurance + $effectBonuses->effect_endurance); - $obj->intelligence = max(0,$stats->intelligence + $itemBonuses->item_intelligence + $effectBonuses->effect_intelligence); - $obj->wisdom = max(0,$stats->wisdom + $itemBonuses->item_wisdom + $effectBonuses->effect_wisdom); - $obj->accuracy = max(0, $itemBonuses->item_accuracy); - $obj->evasion = max(0, $itemBonuses->item_evasion); - $obj->criticals = max(0, $itemBonuses->item_criticals); - $obj->min_physical_damage = max($this->minDamage, $this->minDamage + $itemBonuses->item_min_physical_damage); - $obj->max_physical_damage = max($this->maxDamage, $this->maxDamage + $itemBonuses->item_max_physical_damage); - return $obj; + return (new Models\UserStats($this->id))->getFull(); } public function levelUp(): string @@ -222,6 +181,7 @@ class UserStats extends User */ private function saveStats() { + //$this->db->save(); $query = 'update users set strength = ?, dexterity = ?, intuition = ?, endurance = ?, intelligence = ?, wisdom = ?, health = ?, mana = ?, free_stat_points = ?, level = ? where id = ?'; diff --git a/databases/battle.logs.db b/databases/battle.logs.db new file mode 100644 index 0000000..13a00cb Binary files /dev/null and b/databases/battle.logs.db differ diff --git a/functions.php b/functions.php index 28b43f8..9ab5205 100644 --- a/functions.php +++ b/functions.php @@ -7,7 +7,6 @@ use Battles\Chat; use Battles\Database\Db; -use Battles\DressedItems; use Battles\InventoryItem; use Battles\Travel; use Battles\User; @@ -25,7 +24,11 @@ if (User::getInstance()->getBlock()) { } //Проверки на соответствие скрипта и комнаты, которые были натыканы по всем файлам. -Travel::roomRedirects(User::getInstance()->getRoom(), User::getInstance()->getBattle(), User::getInstance()->getInTower()); +Travel::roomRedirects( + User::getInstance()->getRoom(), + User::getInstance()->getBattle(), + User::getInstance()->getInTower() +); ///* // * Проверки на соответствие скрипта и комнаты, которые были натыканы по всем файлам. @@ -220,7 +223,7 @@ function showhrefmagic(array $dress): string return $r; } -function timeOut($ttm) +function timeOut($ttm): string { $out = ''; $time_still = $ttm; @@ -281,7 +284,7 @@ function addActions($time, $vars, $vls, $uid) return $ins; } -// использовать магию +// использовать магию (встроить в предмет?) function usemagic($id, $target) { $user = Db::getInstance()->fetch('select * from users where id = ?', $_SESSION['uid']);