Loading...
Типа покупка ресурсов в игре . Строго не судите , учу пыху пару месяцев

Первый файл
php
   <?php 



class obmen

{

public static function r($type) {
return package('price-resurs')[$type];
}





//узнать сколько добавить ресурса за покупку
public static function get_resurs_set($type, $lot_id) {
return package('price-resurs')[$type][$lot_id]['set'];
}



//узнать цену ресурса
public static function get_resurs_price($type, $lot_id) {
return package('price-resurs')[$type][$lot_id]['mutagen_price'];
}



//контролер покупки
public static function boy_ctr($lot_id, $type) {
$q = package('price-resurs')[$type][$lot_id]['mutagen_price'];

if (get_mutagen_by_id(ID) >= $q) {

if ($type == 'bucks') {

$resurs = self::get_resurs_set($type, $lot_id);

$mutagen = self::get_resurs_price($type, $lot_id);

set_bucks($resurs, ID); //добавить баксы
}

if ($type == 'metall') {

$resurs = self::get_resurs_set($type, $lot_id);

$mutagen = self::get_resurs_price($type, $lot_id);

set_metal($resurs, ID); //добавить металл

}

set_mutagen(-$mutagen, ID); //минус мутаген

} else {
$_SESSION['err'] = 'Не достаточно мутагена!';
}

}





}











class obmen_model

{

public function get($data) //принимаю масив с контролера

{



$type = $data['type'];



if ($type == 'bucks') {

$t = obmen::r('bucks');

}

if ($type == 'metall') {

$t = obmen::r('metall');

}







return [

't' => $t,

'type' => $data['type'],

];

}

}


Второй
php
   <?php 

require_once(ROOT . 'project/internal/core.php');

$type_default = 'bucks';
$type_perhaps = [
'bucks',
'metall',
];


$lot_id = filter_input(INPUT_GET, 'lot_id');

$type = filter_input(INPUT_GET, 'p');
if ( ! in_array($type, $type_perhaps)) {
$type = $type_default;
}

//нажата кнопка купить
if( !empty($lot_id) ) {
obmen::boy_ctr($lot_id,$type);

// что бы при перезагркзеи страницы не повторялся код
redirect_return('index.php?page=obmen');
}

$data = [
'type' => $type,
];


view('tpl/cap');
view('tpl/header');
view('tpl/header-enter');
view('obmen', (new obmen_model)->get($data));
view('tpl/footer-enter');
view('tpl/footer');


Третий
php
   <div class="block"> Магазин ресурсов </div> 







<div class="fon-lvl">



<?php if ($type == 'bucks') : ?>

<div class="atom">Баксы</div>

<?php else : ?>

<a href="<?= subord_url('obmen', 'p=bucks') ?>" class="atom">Баксы</a>

<?php endif ?>



<?php if ($type == 'metall') : ?>

<div class="atom">Металлалом</div>

<?php else : ?>

<a href="<?= subord_url('obmen', 'p=metall') ?>" class="atom">Металлалом</a>

<?php endif ?>



</div>

<div>

<?php foreach ($t as $val) : ?>

<div class="fon-tex">

<a href="<?= subord_url('obmen', "p=$type&lot_id=$val[id]" ) ?>"> Купить <?= $val['set'] ?> <?= $val['name'] ?> за <?= $val['mutagen_price'] ?> </a>

</div>

<?php endforeach ?>



</div>
Тут можно было в три строки уложиться
Dofor (08.01.2022 в 20:57)
Тут можно было в три строки уложиться

Говорит человек, который не шарит в начальных моментах https://i.imgur.com/uChZjxG.png
Сам не сильно шарю, но как для нескольких месяцев вполне не плохо 👍
213731682 , у тебя все методы класса obmen статичные, логично было бы сделать его абстрактным - конечно если в планах держать только статик методы, но опять же, класс всегда можно перевести в инстанс
213731682 , public static function r($type) {

никогда не называй методы r , a GG, ZZ, и так далее, проблема в том что никто кроме тебя не знает что делает метод r пока не посмотрит в метод r, это время затратно
Trec80 , Это для теста был назван , назвал так временно
213731682 , у тебя все методы принимают тип , я бы обьявил его, и в конструктор передал бы этот самый тип и ипользовал его через конектс
Trec80 , можешь на моем коде так сделать ?) Как пример , в л.с или сюда же ,буду благодарен
НЕЙМИНГ ССУКА!!! Не obmen а swap!!! ТОЛЬКО на английском!!!
Онлайн: 3
Время:
Gen. 0.0734
(c) Bym.Guru 2010-2026