<?php
# заголовок
define('TITLE', 'Фортуна');
# определение данных
$params = PARAMS; $info = array(); // получение параметров
$refresh = $FUNC->random(8, true); // случайное число
####################
# изменение типа фортуны
if (isset($params['param']) && $params['param'] == 'change' && isset($params['token']) && $params['token'] == TOKEN) {
$change = true; $type = (SETUP['fortune'] == 'free') ? 'paid' : 'free'; // определение типа
# данные нижней ссылки
$bottom = array(); $bottom['icon'] = ($type == 'free') ? 'money' : 'star'; // иконка
$bottom['link'] = ($type == 'free') ? 'Играть на монеты' : 'Играть бесплатно'; // ссылка
# обновление в базе данных
db_update($DB,'settings', array('fortune' => $type), array('id' => USER['id'])); }
# определение данных
$mode = (isset($change)) ? $type : SETUP['fortune']; $free = ($mode == 'free') ? // тип
true : false; $worth = ($free) ? 'star' : 'money'; $cost = ($free) ? 'Бесплатно' : // режим
'Стоимость игры: <span class="color">'. DATA['fortune'] .'</span>'; // иконка
# данные нижней ссылки
$bottom = array(); $bottom['icon'] = ($free) ? 'money' : 'star'; // иконка
$bottom['link'] = ($free) ? 'Играть на монеты' : 'Играть бесплатно'; // ссылка
####################
# проверка доступа на игру
$finance = db_output($DB, 'users', 'money', array('id' => USER['id'])); // выборка из базы
$game = (($finance['money'] >= DATA['fortune']) || $free) ? true : false; // проверка суммы на счету
# игра в фортуну, проверка ограничений доступа
if (isset($params['param']) && $params['param'] == 'play' && isset($params['token']) && $params['token'] == TOKEN) {
if (!$FUNC->ajax()) { $FUNC->go('/fortune'); exit; } if (!$game) { http_response_code(403); exit; } // ajax запрос, перенаправление
$rand = $GAME->random(1, 10000); $order = array(4, 10, 3, 9, 2, 8, 1, 0, 14, 7, 13, 6, 12, 5, 11); // определение вероятности
$one = $GAME->random(1, 3); $two = $GAME->random(1, 4); $three = $GAME->random(1, 5); // специальные позиции
# определение вероятности выигрыша
if ($rand < 50 && $three == 4) { $jackpot = true; $max = 100; $number = 7; } // выигран джекпот
elseif ($rand < 120 && $three == 4) { $min = 32; $max = 70; $number = 6; } // единица
elseif ($rand < 200 && $two == 3) { $min = 53; $max = 61; $number = 4; } // двойка
elseif ($rand < 320 && $two == 3) { $min = 44; $max = 52; $number = 2; } // тройка
elseif ($rand < 450 && $two == 3) { $min = 35; $max = 43; $number = 0; } // четверка
elseif ($rand < 600 && $one == 2) { $min = 26; $max = 34; $number = 13; } // пятерка
elseif ($rand < 780 && $one == 2) { $min = 17; $max = 25; $number = 11; } // шестерка
elseif ($rand < 950 && $one == 2) { $min = 7; $max = 16; $number = 9; } // семерка
else { $array =array(1, 3, 5, 8, 10, 12, 14); $number = $array[array_rand($array)]; } // нет выигрыша
# выигрыш джекпота, определение данных
if (isset($jackpot) && !$free) { $icon = 'win'; $text = 'Выпало: <span class="color">0</span>, розыгрыш Ваш!'; $price = DATA['jackpot']; }
# выигрыш, бесплатный режим
elseif (isset($max) && $free) { $icon = 'tick'; $text = 'Выпало: <span class="color">'. $order[$number] .'</span>, Вы выиграли!'; }
# выигрыш, платный режим
elseif (isset($max)) { $icon = 'money'; $num = $GAME->random($min, $max); $price = (DATA['jackpot'] /100) * $num; // иконка, приз
$text = 'Выпало: <span class="color">'. $order[$number] .'</span>, выигрыш: <span class="color">'. $price .'</span>.'; } // текст
# проигрыш, определение данных
else { $icon = 'cross'; $text = 'Выпало: <span class="color">'. $order[$number] .'</span>, Вы проиграли.'; }
# обновление баланса игрока, статистики
if (isset($max) && !$free) { db_update($DB, 'users', array('money' => $price .';+'), array ('id' => USER['id'])); // зачисление монет
db_update($DB, 'statistic', array('fortune' => '1;+'), array('id' => USER['id'])); } // обновление статистики
if (!$free) db_update($DB, 'users', array('money' => DATA['fortune'] .';-'), array ('id' => USER['id'])); // вычитание монет игрока
# проверка доступа на игру
$finances = db_output($DB, 'users', 'money', array('id' => USER['id'])); // выборка из базы
$game = (($finances['money'] >= DATA['fortune']) ||$free ) ? true : false; // проверка суммы на оплату
# подключение шаблона
ob_start('ob_gzhandler'); header('Content-Type: text/html; charset=UTF-8'); // буферизация, тип, кодировка
require_once MODS . ROUT['folder'] .'/blocks/'. ROUT['file'] .'.php'; $buffer = ob_get_clean(); // шаблон
$body = array('number' => $number, 'body' => $buffer); // буфер, запись данных в массив
echo json_encode($body); exit; } // преобразование в json, отправка к клиенту
?>