Оценка сайтов | Первые разработки
Учу php месяц или чуть меньше, написал типа сундуков .
________
посл. ред. 16.12.2021 в 22:55; всего 2 раз(а); by 213731682
php
<?php class sun { const PRICE_OPEN_1 = 1; const PRICE_OPEN_2 = 2; const PRICE_OPEN_3 = 3; const PRICE_KEY = 5; const PLAYERS_NUM_ON_ONE_PAGE = 10; //Узнать цену сундука public static function get_price_sun($price_open) { if ($price_open == 1) { $price_open = self::PRICE_OPEN_1; } elseif ($price_open == 2) { $price_open = self::PRICE_OPEN_2; } elseif ($price_open == 3) { $price_open = self::PRICE_OPEN_3; } return $price_open; } // узнать количество ключей id public static function get_maykeys($id_user) { $sql = 'select maykeys from users where id = ? limit 1'; $sth = db::$pdo->prepare($sql); $sth->execute([$id_user]); return $sth->fetch(PDO::FETCH_NUM)[0]; } // добавить ключ игроку id public static function set_maykeys($key, $id_user) { $sql = 'update users set maykeys = maykeys + ? where id = ? limit 1'; $sth = db::$pdo->prepare($sql); $sth->execute([$key, $id_user]); } // записать приз в базу public static function set_priz($id_user,$names_sun, $name_sun, $name_priz, $num_priz) { $sql = 'insert into users_sun set id_user = ?, num_sun = ?, number_sun = ?, name_priz = ?, num_priz = ? '; $sth = db::$pdo->prepare($sql); $sth->execute([$id_user,$names_sun, $name_sun, $name_priz, $num_priz]); } // достать призы игрока с базы масcив public static function get_priz($id_user) { $sql = "select * from users_sun where id_user = ? order by id desc limit 10"; $sth = db::$pdo->prepare($sql); $sth->execute([$id_user]); return $sth->fetchAll(PDO::FETCH_ASSOC); } // узнать общее количество откритых сундуков всех видов сундука или определенное public static function get_sun_num($name = false) { $z = "count(*) from users_sun where num_sun = {$name}"; if ( $name === false) { $z = "count(*) from users_sun"; } $sql = "select $z limit 1"; $sth = db::$pdo->query($sql); return $sth->fetch(PDO::FETCH_NUM)[0]; } // получить всех игроков с призами с базы которые открыли сундуки public static function get_part_pack($limit, $start) { $sql = "select * from users_sun order by id desc limit $start, $limit"; $sth = db::$pdo->query($sql); return $sth->fetchAll(PDO::FETCH_ASSOC); } //контролер покупки ключа public static function buy_keys_ctrl() { self::set_maykeys(1, ID); // плюс ключь игроку set_mutagen(-self::PRICE_KEY, ID); // минус мутаген за покупку } //контролер начисления награды public static function award_accrual_ctrl($type, $name_priz, $num_priz) { $price_key = self::get_price_sun($type); // цена сундука (для минуса) self::set_maykeys(-$price_key, ID); // минус ключи if ($name_priz == 'bucks') { set_bucks($num_priz, ID); } if ($name_priz == 'mutagen') { set_mutagen($num_priz, ID); } if ($name_priz == 'exp') { set_exp($num_priz, ID); } if ($name_priz == 'pancers') { set_pancers($num_priz, ID); } if ($name_priz == 'JACKPOT') { set_mutagen($num_priz, ID); } } } class sun_model { public function get() { $price_open = [ // цены на сундуки 'sunduk_1' => sun::PRICE_OPEN_1, 'sunduk_2' => sun::PRICE_OPEN_2, 'sunduk_3' => sun::PRICE_OPEN_3 ]; $price_key = sun::PRICE_KEY; //Цена ключа $key_users = sun::get_maykeys(ID); //количество ключей игрока $prizes = sun::get_priz(ID); $count_open = [ // количество открытых сундуков 'count_1' => sun::PRICE_KEY, 'count_2' => sun::get_sun_num(2), 'count_3' => sun::get_sun_num(3) ]; return [ 'count_open' => $count_open, 'prizes' => $prizes, 'price_open' => $price_open, 'price_key' => $price_key, 'key_users' => $key_users, ]; } public function history() { $pag = new pagin; $p = $pag->start(sun::get_sun_num(), sun::PLAYERS_NUM_ON_ONE_PAGE); $part = sun::get_part_pack($p['limit'], $p['start']); array_renumber($part); $count_open = [ // количество открытых сундуков 'count_sum' =>sun::get_sun_num(),// общее кол во. 'count_1' => sun::get_sun_num(1), 'count_2' => sun::get_sun_num(2), 'count_3' => sun::get_sun_num(3) ]; return [ 'count_open' => $count_open, 'part' => $part, 'pag' => $pag, ]; } } ________
посл. ред. 16.12.2021 в 22:55; всего 2 раз(а); by 213731682
php
<?php require_once(ROOT . 'project/internal/core.php'); // грузим ядро // Названия сундуков $name_sun = [ '1' => '<span style = "color:rgb(235 207 207)">Обычный сундук</span>', '2' => '<span style = "color: rgb(146 40 163)">Мифический сундук</span>', '3' => '<span style = "color:rgb(245 0 0)">Божественный сундук</span>', ]; $open = ['1', '2', '3',]; $type = filter_input(INPUT_GET, 'open'); $key_boy = filter_input(INPUT_GET, 'key'); if (isset($key_boy)) { // если нажата кнопка купить ключь //если не достаточно мутагена if (get_mutagen_by_id(ID) < sun::PRICE_KEY) { $_SESSION['err'] = "Не достаточно мутагена!"; redirect::go()->ruler_cut('key'); } else { // если достаточно sun::buy_keys_ctrl(); //контролер покупки ключей $_SESSION['message'] = "Ключ куплен!"; redirect::go()->ruler_cut('key'); } } //////////// if (in_array($type, $open)) { if (sun::get_maykeys(ID) < sun::get_price_sun($type)) { $_SESSION['err'] = "Не достаточно ключей"; redirect::go()->ruler_cut('open'); } else { $r = mt_rand(1, 100); //рандом //Сундук #1 if ($type == 1) { // может выпасть // баксы - 40% // опыт - 40% // мутаген - 20% if ($r <= 40) { $priz = mt_rand(100, 500); $name = [ 'name' => 'bucks', 'name_public' => '<span style = "color:green">Сигареты', ]; } elseif ($r <= 80 && $r > 40) { $priz = mt_rand(500, 1000); $name = [ 'name' => 'exp', 'name_public' => '<span style = "color:yellow">Пиво', ]; } elseif ($r > 80) { $priz = mt_rand(1, 10); $name = [ 'name' => 'mutagen', 'name_public' => '<span style = "color:lime">Бутылка водки ', ]; } } // Сундук #2 if ($type == 2) { // если сундук номер 2 // может выпасть // баксы - 30% // опыт - 30% // мутаген - 30% if ($r <= 30) { $priz = mt_rand(200, 1000); $name = [ 'name' => 'bucks', 'name_public' => '<span style = "color:green">[B]', ]; } elseif ($r <= 70 && $r > 30) { $priz = mt_rand(1000, 2500); $name = [ 'name' => 'exp', 'name_public' => '<span style = "color:yellow">[EXP]', ]; } elseif ($r > 70) { $priz = mt_rand(2, 15); $name = [ 'name' => 'mutagen', 'name_public' => '<span style = "color:lime">[M]', ]; } } // Сундук #3 if ($type == 3) { // если сундук номер 3 // может выпасть // баксы - 30% // опыт - 30% // мутаген - 35% // VIP - 5% if ($r <= 30) { $priz = mt_rand(3000, 5000); $name = [ 'name' => 'bucks', 'name_public' => '<span style = "color:green">[B]', ]; } elseif ($r <= 60 && $r > 30) { $priz = mt_rand(1500, 2500); $name = [ 'name' => 'exp', 'name_public' => '<span style = "color:yellow">[EXP]', ]; } elseif ($r > 60 && $r < 95) { $priz = mt_rand(10, 5000); $name = [ 'name' => 'mutagen', 'name_public' => '<span style = "color:lime">[M]', ]; } elseif ($r > 95) { $priz = mt_rand(500, 1000); $name = [ 'name' => 'pancers', 'name_public' => '<span style = "color:blue">[P]', ]; } elseif ($r = 99) { $priz = 100000; $name = [ 'name' => 'JACKPOT', 'name_public' => '<span style = "color:red">[M]', ]; } } // запись в базу приз sun::set_priz(ID, $type,$name_sun[$type], $name['name_public'], $priz); // контролер начисления награды sun::award_accrual_ctrl($type, $name['name'], $priz); redirect::go()->ruler_cut('open'); } } view('tpl/cap'); view('tpl/header'); view('tpl/header-enter'); view('sun', (new sun_model)->get()); view('tpl/footer-enter'); view('tpl/footer'); php
<div class = "block"> Сундуки </div> <div class = "fon-tex"> <div> <img src="<?= public_url("1.png") ?>" width="100" class = ""> </div> <b style="color:rgb(235 207 207)">Обычный сундук</b><br> <a href="<?= subord_url('sun', 'open=1') ?>" class="atom mt-5">Открыть [K]<?= $price_open["sunduk_1"] ?> </a> <div> <small> баксы - 40%, опыт - 40%, мутаген - 20% </small> </div> </div> <div class = "fon-tex"> <div> <img src="<?= public_url("2.png") ?>" width="100" class = ""> </div> <b style="color:rgb(146 40 163)">Мифический сундук</b><br> <a href="<?= subord_url('sun', 'open=2') ?>" class="atom mt-5">Открыть [K] <?= $price_open["sunduk_2"] ?></a> <div> <small> баксы - 30%, опыт - 40%, мутаген - 30% </small> </div> </div> <div class = "fon-tex"> <div> <img src="<?= public_url("3.png") ?>" width="100" class = ""> </div> <b style="color:rgb(245 0 0)">Божественный сундук</b><br> <a href="<?= subord_url('sun', 'open=3') ?>" class="atom mt-5">Открыть [K] <?= $price_open["sunduk_3"] ?></a> <div> <small> баксы - 30%, опыт - 30%, мутаген - 35%, панцырь - 5% LACKPOT - 1% </small> </div> </div> <div class = "fon-tex"> У вас: <?= $key_users ?> ключей.<br> <a href="<?= subord_url('sun','key=by') ?>"class = "atom mt-5";> Купить ключь за <?= $price_key ?> мутагена. </a> </div> <div class = "fon-info"><u>Ваша история призов:</u></div> <?php if ($prizes): ?> <?php foreach ($prizes as $sun): ?> <div class="fon-lvl"><small> Открыт <?= $sun['number_sun'] ?> и найдено: <?= $sun['name_priz']; ?> <?= $sun['num_priz']; ?></span> </div></small> <?php endforeach ?> <?php else: ?> <div class="fon-tex"><small> <?php echo "История еще пустая!"; ?> </div></small> <?php endif ?> <a href="<?= subord_url('history_sun') ?>"><div class = "fon-tex">Летопись всех игроков </div></a>
Спасибо, кое-что взял себе
popka_slonika , да без проблем , пиши в личку если что. Подскажу по коду своему
Не плохо !
Это за месяц выучил?)

