EngineGP

Форк
0
166 строк · 5.7 Кб
1
<?php
2
/*
3
 * EngineGP   (https://enginegp.ru or https://enginegp.com)
4
 *
5
 * @copyright Copyright (c) 2018-present Solovev Sergei <inbox@seansolovev.ru>
6
 *
7
 * @link      https://github.com/EngineGPDev/EngineGP for the canonical source repository
8
 *
9
 * @license   https://github.com/EngineGPDev/EngineGP/blob/main/LICENSE MIT License
10
 */
11

12
if (!defined('EGP')) {
13
    exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
14
}
15

16
include(LIB . 'games/games.php');
17

18
// Обработка заказа
19
if ($go) {
20
    // Проверка на авторизацию
21
    sys::noauth();
22

23
    if ($mcache->get('buy_server')) {
24
        sleep(1.5);
25
    }
26

27
    $mcache->set('buy_server', true, false, 3);
28

29
    include(LIB . 'games/' . $section . '/service.php');
30

31
    // Входные данные
32
    $aData = [
33
        'unit' => isset($_POST['unit']) ? sys::int($_POST['unit']) : 0,
34
        'tarif' => isset($_POST['tarif']) ? sys::int($_POST['tarif']) : 0,
35
        'pack' => $_POST['pack'] ?? '',
36
        'tickrate' => isset($_POST['tickrate']) ? sys::int($_POST['tickrate']) : 0,
37
        'fps' => isset($_POST['fps']) ? sys::int($_POST['fps']) : 0,
38
        'slots' => isset($_POST['slots']) ? sys::int($_POST['slots']) : 0,
39
        'time' => isset($_POST['time']) ? sys::int($_POST['time']) : 30,
40
        'test' => (isset($_POST['time']) and $_POST['time'] == 'test') ? true : false,
41
        'promo' => $_POST['promo'] ?? false,
42
    ];
43

44
    // Массвив данных
45
    $aSDATA = service::buy($aData);
46

47
    // Процесс выдачи игрового сервера
48
    $id = service::install($aSDATA);
49

50
    sys::outjs(['s' => 'ok', 'id' => $id]);
51
}
52

53
include(LIB . 'games/services.php');
54

55
$check = false;
56

57
// Проверка наличия доступной локации
58
$sql->query(services::unit($section));
59
if ($sql->num()) {
60
    // Выбранная локация
61
    if (isset($url['get']) and in_array($url['get'], ['tarifs', 'data'])) {
62
        $sql->query('SELECT `id`, `test` FROM `units` WHERE `id`="' . $id . '" LIMIT 1');
63
    }
64

65
    $select_unit = $sql->get();
66

67
    // Генерация списка локаций
68
    $units = services::units($section);
69

70
    // Генерация списка тарифов
71
    $tarifs = services::tarifs($section, $select_unit['id']);
72

73
    if (isset($url['get']) and in_array($url['get'], ['price', 'promo'])) {
74
        $aGet = [
75
            'tarif' => sys::int($url['tarif']),
76
            'tickrate' => sys::int($url['tickrate']),
77
            'fps' => sys::int($url['fps']),
78
            'slots' => sys::int($url['slots']),
79
            'time' => sys::int($url['time']),
80
            'user' => $user['id'],
81
        ];
82

83
        $sql->query('SELECT `price`, `fps`, `tickrate`, `discount` FROM `tarifs` WHERE `id`="' . $aGet['tarif'] . '" LIMIT 1');
84
        $tarif = $sql->get();
85

86
        $aPrice = sys::b64djs($tarif['price'], true);
87

88
        // Определение цены
89
        $price = $aPrice[$aGet['tickrate'] . '_' . $aGet['fps']];
90

91
        // Выхлоп цены за выбранные параметры
92
        if ($url['get'] == 'price') {
93
            // Если выбран тестовый период
94
            if ($url['time'] == 'test') {
95
                sys::outjs(['sum' => 0]);
96
            }
97

98
            sys::outjs([
99
                'sum' => games::define_sum($tarif['discount'], $price, $aGet['slots'], $aGet['time']),
100
            ]);
101
        }
102

103
        // Выхлоп цены с учетом промо-кода
104
        if ($url['get'] == 'promo') {
105
            games::define_promo(
106
                $url['cod'],
107
                $tarif['discount'],
108
                games::define_sum($tarif['discount'], $price, $aGet['slots'], $aGet['time']),
109
                $aGet
110
            );
111
        }
112
    }
113

114
    // Генерация сборок/слот/периодов
115
    if (isset($url['get']) and $url['get'] == 'data') {
116
        $sql->query('SELECT `id`, `name`, `price`, `slots_min`, `slots_max`, `packs`, `tickrate`, `fps`, `time`, `test`, `discount` FROM `tarifs` WHERE `id`="' . sys::int($url['tarif']) . '" LIMIT 1');
117
    } else {
118
        $sql->query('SELECT `id`, `name`, `price`, `slots_min`, `slots_max`, `packs`, `tickrate`, `fps`, `time`, `test`, `discount` FROM `tarifs` WHERE `game`="' . $section . '" AND `unit`="' . $select_unit['id'] . '" AND `show`="1" ORDER BY `sort` ASC LIMIT 1');
119
    }
120

121
    if ($sql->num()) {
122
        $select_tarif = $sql->get();
123

124
        $aTarif = games::parse_tarif($select_tarif, $select_unit);
125

126
        if (isset($url['get'])) {
127
            // Выхлоп при выборе локации
128
            if ($url['get'] == 'tarifs') {
129
                sys::outjs(array_merge(['tarifs' => $tarifs], $aTarif));
130
            }
131

132
            // Выхлоп при выборе тарифа
133
            if ($url['get'] == 'data') {
134
                sys::outjs($aTarif);
135
            }
136
        }
137

138
        $html->get($section, 'sections/services/games');
139
        $html->set('units', $units);
140
        $html->set('tarifs', $tarifs);
141
        $html->set('packs', $aTarif['packs']);
142
        $html->set('tickrate', $aTarif['tickrate']);
143
        $html->set('fps', $aTarif['fps']);
144
        $html->set('slots', $aTarif['slots']);
145
        $html->set('time', $aTarif['time']);
146
        $html->set('cur', $cfg['currency']);
147
        $html->set('date', date('d.m.Y', $start_point));
148

149
        if ($cfg['settlement_period']) {
150
            $html->unit('settlement_period', true, true);
151
        } else {
152
            $html->unit('settlement_period', false, true);
153
        }
154

155
        $html->unit('informer', false, true);
156
        $html->pack('main');
157

158
        $check = true;
159
    }
160
}
161

162
if (!$check) {
163
    $html->get($section, 'sections/services/games');
164
    $html->unit('informer', true, true);
165
    $html->pack('main');
166
}
167

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.