EngineGP

Форк
0
163 строки · 5.5 Кб
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
        'slots' => isset($_POST['slots']) ? sys::int($_POST['slots']) : 0,
38
        'time' => isset($_POST['time']) ? sys::int($_POST['time']) : 30,
39
        'test' => (isset($_POST['time']) and $_POST['time'] == 'test') ? true : false,
40
        'promo' => $_POST['promo'] ?? false,
41
    ];
42

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

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

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

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

54
$check = false;
55

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

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

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

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

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

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

84
        $aPrice = explode(':', $tarif['price']);
85

86
        // Определение цены
87
        $price = $aPrice[array_search($aGet['tickrate'], explode(':', $tarif['tickrate']))];
88

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

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

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

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

119
    if ($sql->num()) {
120
        $select_tarif = $sql->get();
121

122
        $aTarif = games::parse_tarif($select_tarif, $select_unit);
123

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

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

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

146
        if ($cfg['settlement_period']) {
147
            $html->unit('settlement_period', true, true);
148
        } else {
149
            $html->unit('settlement_period', false, true);
150
        }
151

152
        $html->unit('informer', false, true);
153
        $html->pack('main');
154

155
        $check = true;
156
    }
157
}
158

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

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

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

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

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