3
* EngineGP (https://enginegp.ru or https://enginegp.com)
5
* @copyright Copyright (c) 2018-present Solovev Sergei <inbox@seansolovev.ru>
7
* @link https://github.com/EngineGPDev/EngineGP for the canonical source repository
9
* @license https://github.com/EngineGPDev/EngineGP/blob/main/LICENSE MIT License
13
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
16
include(LIB . 'games/games.php');
20
// Проверка на авторизацию
23
if ($mcache->get('buy_server')) {
27
$mcache->set('buy_server', true, false, 3);
29
include(LIB . 'games/' . $section . '/service.php');
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,
45
$aSDATA = service::buy($aData);
47
// Процесс выдачи игрового сервера
48
$id = service::install($aSDATA);
50
sys::outjs(['s' => 'ok', 'id' => $id]);
53
include(LIB . 'games/services.php');
57
// Проверка наличия доступной локации
58
$sql->query(services::unit($section));
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');
65
$select_unit = $sql->get();
67
// Генерация списка локаций
68
$units = services::units($section);
70
// Генерация списка тарифов
71
$tarifs = services::tarifs($section, $select_unit['id']);
73
if (isset($url['get']) and in_array($url['get'], ['price', 'promo'])) {
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'],
83
$sql->query('SELECT `price`, `fps`, `tickrate`, `discount` FROM `tarifs` WHERE `id`="' . $aGet['tarif'] . '" LIMIT 1');
86
$aPrice = sys::b64djs($tarif['price'], true);
89
$price = $aPrice[$aGet['tickrate'] . '_' . $aGet['fps']];
91
// Выхлоп цены за выбранные параметры
92
if ($url['get'] == 'price') {
93
// Если выбран тестовый период
94
if ($url['time'] == 'test') {
95
sys::outjs(['sum' => 0]);
99
'sum' => games::define_sum($tarif['discount'], $price, $aGet['slots'], $aGet['time']),
103
// Выхлоп цены с учетом промо-кода
104
if ($url['get'] == 'promo') {
108
games::define_sum($tarif['discount'], $price, $aGet['slots'], $aGet['time']),
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');
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');
122
$select_tarif = $sql->get();
124
$aTarif = games::parse_tarif($select_tarif, $select_unit);
126
if (isset($url['get'])) {
127
// Выхлоп при выборе локации
128
if ($url['get'] == 'tarifs') {
129
sys::outjs(array_merge(['tarifs' => $tarifs], $aTarif));
132
// Выхлоп при выборе тарифа
133
if ($url['get'] == 'data') {
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));
149
if ($cfg['settlement_period']) {
150
$html->unit('settlement_period', true, true);
152
$html->unit('settlement_period', false, true);
155
$html->unit('informer', false, true);
163
$html->get($section, 'sections/services/games');
164
$html->unit('informer', true, true);