getClan() || User::$current->getBattle()) { exit(); } const PRICES = [ 'sleep15' => 20, 'sleep30' => 20, 'closebattle' => 100, 'heal20' => 10, 'heal35' => 25, 'heal50' => 50, 'travmoff' => 10, 'attack' => 10, 'bloodattack' => 25, 'death' => 100, 'comment' => 5, 'openbattle' => 100, 'reamdeath' => 50, 'clone' => 25, 'unclone' => 25, ]; $check_owner = DBPDO::$db->ofetch('select short_name from clans where owner_id = ?', User::$current->getId()); $check_bonuses = DBPDO::$db->ofetch('select 1 from clan_bonuses where short_name = ?', User::$current->getClan()); if (User::$current->getClan() !== $check_owner->short_name) { exit('Запрещено: Вы не глава клана.'); } if (!$check_bonuses) { exit('Запрещено: Вашему клану нельзя покупать бонусы.'); } function buy_bonus($name): bool { global $prices; $bank = new Bank(User::$current->getId()); if ($bank->getMoney() <= PRICES[$name]) { return false; } $query = sprintf('update clan_bonuses set %s = %s + 1 where short_name = ?', $name, $name); DBPDO::$db->execute($query, User::$current->getClan()); $bank->setMoney($bank->getMoney() - $prices[$name]); return true; } echo !empty($_POST['type']) && buy_bonus($_POST['type']) ? 'success' : 'error';