Блэкджек

Блэкджек 1.3.2

Нет прав для скачивания
Всем привет, вот решил выложить обновление мода, так как была найдена важная ошибка при которой не начислялись жетоны.
Исправлена cron задача!
И еще исправлены мелкие недочеты , убран лишний запрос в базу.

1-е. Сделать запрос в базу.
Код:
ALTER TABLE `bb_blackjack` CHANGE COLUMN `bj_placeholder` `bj_StartGame` varchar(20) NOT NULL DEFAULT '',
CHANGE `bj_gamer` `bj_TookGame` varchar(20) NOT NULL DEFAULT '';
2-е. Заменить код в (library\language\ru\main.php) с
PHP:
 $lang['BJ'] = array(
    'BLACKJACK'    => 'Блек Джек',
    'NOT_TOKENS'    => 'Недостаточно жетонов!',
    'THE_TITLE'     =>'Блек Джек, ставка %s жетонов',
    'MAX_OPEN_GAMES'  => 'У вас уже открыто <b>%s</b> игр!',
    'THE_A_GAMES'    => 'Играть самому с собой тупо!',
    'GAME_IS_PLAYED'    => 'Игра уже сыграна!',
    'BUST'    => 'Вы набрали %s очков, Перебор!',
    21    => 'Вы набрали 21, (Очко)!',
    'YOU_WON'    => '(Вы набрали  <b>%s</b>). Вы выиграли, очки оппонента: <b>%d</b>',
    'YOU_LOST'    => '(Вы набрали  <b>%s</b>). Вы проиграли, очки оппонента: <b>%d</b>',
    'NOT_WIN'    => 'Ничья, вы не чего не выиграли!',
    'NOBODY_WON'    => '(Вы набрали <b>%s</b>). Перебор, никто не выиграл, очки оппонента: <b>%d</b>',
    'GAME_NOT_FOUND'    => 'Игра не найдена.',
    'DRAW'    => 'Ничья',
    'ROBIN'    => 'Перебор',
    'PLAY'    => ' -> <b>Играют</b>',

);
на
PHP:
$lang['BLACKJACK'] = 'Блекджек';
$lang['BJ_STARTED'] = 'Начал';
$lang['BJ_TIME'] = 'Время';
$lang['BJ_TOOK'] = 'Принял';
$lang['BJ_GAME'] = 'Игра';
$lang['NOT_TOKENS'] = 'Недостаточно жетонов!';
$lang['THE_TITLE'] = 'Блекджек, ставка %s жетонов';
$lang['MAX_OPEN_GAMES'] = 'У вас уже открыто <b>%s</b> игр!';
$lang['THE_A_GAMES'] = 'Играть самому с собой тупо!';
$lang['GAME_IS_PLAYED'] = 'Игра уже сыграна!';
$lang['BUST'] = 'Вы набрали %s очков, Перебор!';
$lang[21] = 'Вы набрали 21, (Очко)!';
$lang['YOU_WON'] = '(Вы набрали  <b>%s</b>). Вы выиграли, очки оппонента: <b>%d</b>';
$lang['YOU_LOST'] = '(Вы набрали  <b>%s</b>). Вы проиграли, очки оппонента: <b>%d</b>';
$lang['NOT_WIN'] = 'Ничья, вы не чего не выиграли!';
$lang['NOBODY_WON'] = '(Вы набрали <b>%s</b>). Перебор, никто не выиграл, очки оппонента: <b>%d</b>';
$lang['GAME_NOT_FOUND'] = 'Игра не найдена.';
$lang['DRAW'] = 'Ничья';
$lang['ROBIN'] = 'Перебор';
$lang['NO_GAMES'] = 'Нет открытых игр!';
$lang['GAME_WIN'] = ' -> <b>%s</b> %d | %d';
$lang['BJ_INFO'] = 'Жетоны снимаются с вас сразу после того как вы нажали на ставку.<br>
Если вы бросили игру или она у Вас зависла, Администрация не будет вам возвращать утерянные жетоны!<br>
Зависшие игры автоматически удаляются через определённое время.';

Вроде все, есть небольшой баг с обновлениям жетонов, пока решение не найдено.
Если есть у кого какие предложения по этому поводу пишите будем исправлять.
Заменить код в (library\language\ru\main.php) на
PHP:
$lang['BJ'] = array(
    'BLACKJACK'    => 'Блек Джек',
    'NOT_TOKENS'    => 'Недостаточно жетонов!',
    'THE_TITLE'     =>'Блек Джек, ставка %s жетонов',
    'MAX_OPEN_GAMES'  => 'У вас уже открыто <b>%s</b> игр!',
    'THE_A_GAMES'    => 'Играть самому с собой тупо!',
    'GAME_IS_PLAYED'    => 'Игра уже сыграна!',
    'BUST'    => 'Вы набрали %s очков, Перебор!',
    21    => 'Вы набрали 21, (Очко)!',
    'YOU_WON'    => '(Вы набрали  <b>%s</b>). Вы выиграли, очки оппонента: <b>%d</b>',
    'YOU_LOST'    => '(Вы набрали  <b>%s</b>). Вы проиграли, очки оппонента: <b>%d</b>',
    'NOT_WIN'    => 'Ничья, вы не чего не выиграли!',
    'NOBODY_WON'    => '(Вы набрали <b>%s</b>). Перебор, никто не выиграл, очки оппонента: <b>%d</b>',
    'GAME_NOT_FOUND'    => 'Игра не найдена.',
    'DRAW'    => 'Ничья',
    'ROBIN'    => 'Перебор',
    'PLAY'    => ' -> <b>Играют</b>',

);
и в bonus.php заменить
elseif(isset($_POST['tokens']))

На
elseif(isset($_POST['tokens']) && $_POST['tokens'] >= 1)


Исправлен не правильный вывод сообщения, зачисления выигрыша/проигрыша. Ну и так небольшие изменения.
Всем привет, спасибо за подсказки проверки и тесты (

Please Login or Register to view hidden text.

,

Please Login or Register to view hidden text.

). Пишите будем улучшать по мере возможности.
В этом обновлении:
Исправлена: Крит ошибка.
Исправлен: Перевод.
Новое: Добавлена крон задача. (Нужна проверка!)

Код:
INSERT INTO `bb_cron` VALUES(22, 1, 'Удаление зависших, старых игр.', 'clean_blackjack.php', 'interval', '', '00:00:00', 255, '0000-00-00', '0000-00-00 00-00-00', '00:15:00', 0, '', 0, 0, 0);


Предлагайте что добавить что убрать! По мере времени буду делать!
1-е: Открыть (library/language/ru/main.php)
Найти:
PHP:
$lang['BONUS'] = 'На редких';
Ниже вставить:
PHP:
$lang['TOKENS'] = 'Жетонов';
2-е: Открыть (library/includes/page_header.php)
Найти:
PHP:
'POINTS' => $userdata['user_points'],
Ниже вставить:
PHP:
 'TOKENS' => number_format($userdata['user_tokens']),
3-е: Открыть (styles/templates/default/page_header.tpl)
Найти:
PHP:
<!-- IF $bb_cfg['seed_bonus_enabled'] --><tr><td>{L_SEED_BONUS}</td><td><a href="profile.php?mode=bonus"><span class="points bold">{POINTS}</span></a></td></tr><!-- ENDIF -->
Ниже вставить:
PHP:
<tr><td>{L_TOKENS}</td><td class="seedmed">{TOKENS}</td></tr>
Вот и новая версия, Исправлены все ранее найденные ошибки, добавлен кеш (cards), добавлена многоязычность.
1-е: Сделать запрос в базу.
ALTER TABLE `bb_users` ADD `user_tokens` int(6) NOT NULL DEFAULT '0';

2-е: Открыть (library/language/ru/main.php) в самый конец добавить.
PHP:
$lang['BJ'] = array(
    'BLACKJACK'    => 'Блек Джек',
    'NOT_TOKENS'    => 'Недостаточно жетонов!',
    'THE_TITLE'     =>'Блек Джек, ставка %s жетонов',
    'MAX_OPEN_GAMES'  => 'У вас уже открыто %s игр!',
    'THE_A_GAMES'    => 'Играть самому с собой тупо!',
    'GAME_IS_PLAYED'    => 'Игра уже сыграна!',
    'BUST'    => 'Вы набрали %s очков, Перебор!',
    21    => 'Вы набрали 21, (Очко)!',
    'YOU_WON'    => 'Вы выйграли, очки оппонента: %s',
    'YOU_LOST'    => 'Вы проиграли, очки оппонента: %s',
    'DRAW'    => 'Ничья, вы не чего не выиграли!',
    'NOBODY_WON'    => 'Перебор, никто не выиграл, очки оппонента: %s',
    'GAME_NOT_FOUND'    => 'Игра не найдена.',
);

3-е: Открыть (library/includes/ucp/bonus.php).

Найти:
PHP:
else
{
    $template->assign_vars(array(
        'U_USER_PROFILE'  => PROFILE_URL . $user_id,
        'S_MODE_ACTION'      => 'profile.php?mode=bonus',
        'PAGE_TITLE'      => $lang['EXCHANGE_BONUS'],
        'MY_BONUS'        => sprintf($lang['MY_BONUS'], $user_points),
    ));
Выше вставить:
PHP:
elseif(isset($_POST['tokens']))
{
    $tokens = (int) $_POST['tokens'];

        if($userdata['user_points'] < ($tokens * 0.1))
        {
            meta_refresh('index.php', 5);

            $message = $lang['BONUS_NOT_SUCCES'] .'<br /><br /><a href="'. BONUS_URL .'">'. $lang['BONUS_RETURN'] .'</a><br /><br /><a href="'. PROFILE_URL . $userdata['user_id'] .'">'. $lang['RETURN_PROFILE'] .'</a><br /><br />'. sprintf($lang['CLICK_RETURN_INDEX'],  '<a href="index.php">', '</a>');

            bb_die($message);
        }
        else
        {
            DB()->query("UPDATE ". BB_USERS ."
                SET user_points   = user_points - ". ($tokens * 0.1) .",
                    user_tokens   = user_tokens + $tokens
                WHERE user_id   = ". $user_id
            );

            cache_rm_user_sessions($user_id);
            meta_refresh(BONUS_URL, 5);

            $message = sprintf($lang['BONUS_SUCCES'], $tokens);
            $message .= '<br /><br /><a href="'. BONUS_URL .'">'. $lang['BONUS_RETURN'] .'</a><br /><br /><a href="'. PROFILE_URL . $userdata['user_id'] .'">'. $lang['RETURN_PROFILE'] .'</a><br /><br />'. sprintf($lang['CLICK_RETURN_INDEX'],  '<a href="index.php">', '</a>');

            bb_die($message);
        }
}
4-е: Открыть (styles/templates/default/usercp_bonus.tpl).
Найти:
<!-- END bonus_upload -->

Ниже вставить:
HTML:
<tr class="row3 med">
    <td class="bold tCenter">{L_DESCRIPTION}</td>
    <td class="bold tCenter" colspan=2>{L_PRICE}</td>
</tr>
<tr class="row1 med">
    <td class="tLeft"><b>Купить жетоны:</b><br><input type="text" name="tokens" maxlength="6" value="100" style="width:100px;">&nbsp;&nbsp;жетонов</td>
    <td align="center" id="tokens" colspan=2>1ж = 0,1б</td>
</tr>
Сверху