← Все столы

Инструкция

как пользоваться

Blackjack Live Stats — инструкция

Бесплатный счётчик карт и подсказчик стратегии для Pragmatic Play Live Blackjack. Открыл казино у себя в браузере — данные стола приходят сюда автоматически. Ниже — как поставить, как пользоваться, и что делать когда что-то странное.

1. Быстрый старт за минуту

  1. Установи Tampermonkey-скрипт: ⇩ Установить
  2. В Tampermonkey подтверди установку скрипта.
  3. В том же браузере открой казино с Pragmatic BJ (Stake, BC.Game, Bet365, mBit, любое) → кликни по любому Blackjack-столу.
  4. На главной появятся столы и пойдёт счёт. Готово.
Что критично: в казино должен быть открыт хотя бы один Blackjack-стол. Лобби казино не запускает Pragmatic-WebSocket, и расширение не видит ключ сессии. Один открытый стол — и расширение моментально подхватит JSESSIONID.

Альтернативные пути установки:

Пошаговый мастер Через Tampermonkey-скрипт

2. Как это работает (в одной картинке)

Pragmatic Play раздаёт live-таблицы через WebSocket wss://gsN.pragmaticplaylive.net/game. Расширение проксирует window.WebSocket в твоей вкладке казино, перехватывает все фреймы своего стола и шлёт их на наш бэкенд. Никаких паролей и реквизитов аккаунта мы не видим.

Что отправляет расширение

JSESSIONID (строка-токен из URL WS-коннекта), tableId, и поток XML-фреймов с картами/решениями/исходами. Всё на твой backend (адрес запечён при скачивании ZIP).

Что НЕ отправляет

Никаких паролей, email-ов, балансов, истории депозитов. Pragmatic-WS — это только данные раздач, не финансовая часть.

Любая вкладка с активным BJ-столом превращается в источник данных. Закроешь вкладку — поток с этого стола остановится. Откроешь несколько столов — несколько источников параллельно.

3. Сессии и токены

JSESSIONID — это сессионный cookie, который казино выдаёт Pragmatic после твоего логина. С ним наш бэкенд может сам подписаться на все столы этого бренда, не только на тот, что ты открыл в табе. Сессии копятся в БД, можно держать сразу несколько.

Три способа получить сессию

А. Авто (расширение)

Самый удобный. Расширение само ловит SID при открытии стола и POST'ит на /api/sessions. В UI появляется в разделе «Сессии».

Б. Ручной (paste)

Открой DevTools (F12) → Network → найди запрос на pragmaticplaylive.net → скопируй JSESSIONID → вставь в форму на /setup.

В. Через Popup расширения

Клик по иконке расширения → видишь текущий SID и кнопку Push to backend. Удобно если auto-push выключен.

Несколько брендов сразу

Логинишься в Stake — получаешь SID-1. Потом в BC.Game — SID-2. Оба попадают в пул. Покрытие столов растёт за счёт пересечения каталогов брендов.

Subscribe-all-catalog: один SID на все столы

Pragmatic на WebSocket-уровне часто принимает SID одного бренда с канонической internal_id любого стола (которые мы знаем из публичного каталога — 322 шт). Это значит один SID может «прорастить» всю сетку, не только свой бренд. Кнопка для этого — в карточке сессии в UI:

POST /api/sessions/{id}/subscribe-catalog
Берёт SID, проходит по всем 322 каталожным tableId, создаёт runner для каждого. Что Pragmatic примет — стримит, что отобьёт — попадёт в retry-очередь и оттает когда сможет.
Не панацея. Если казино/бэкенд за гео-фильтром Pragmatic — все 322 коннекта упрутся в WAF (HTTP 401/403). Тогда работают только столы, открытые у тебя в браузере (через расширение).

Аудит покрытия

GET /api/sessions/{id}/tables
Список всех подписанных через эту сессию столов с разбивкой по статусам: running retrying error idle. Видно сразу, какие столы реально стримят и почему остальные молчат.

4. Счёт и метрики

Бэкенд хранит композицию шуза — сколько карт каждого ранга осталось. TC (True Count), Hi-Lo, Wong Halves и любые другие системы счёта вычисляются на клиенте из этой композиции. Можно переключать системы на лету без перезаливки данных.

Встроенные системы

Кастомные системы

В ⚙ Настройках → вкладка «Счёт» можно создать свою систему: задать веса на каждый ранг, тип (balanced/unbalanced), сохранить в библиотеку. Сохраняется в localStorage браузера, ни на сервер, ни в облако ничего не уходит.

Тонкие настройки TC

Пороги «горячий/холодный»

В настройках задаются Hot threshold (TC выше этого — плитка подсвечивается зелёным как кандидат на increase bet) и Cold threshold (ниже — плитка краснеет, signal to leave). В фильтре лобби можно показать только столы выше определённого TC.

Производные метрики

5. Отклонения от базовой стратегии

Базовая стратегия фиксирована для нейтрального шуза. Когда счёт смещается, оптимальное решение меняется. Эти переходы и есть отклонения. Самые ценные — в наборе Illustrious 18 (по Doniger / Wong) — они дают ~80% прироста EV от всех возможных отклонений.

В ⚙ Настройках → «Отклонения» — все 18 правил включены по умолчанию. Можно отключить отдельные, отредактировать пороги TC, добавить свои. На странице стола рекомендация автоматически учитывает текущий TC: если он выше порога правила, оптимальное действие меняется (например, hard 16 vs 10: HS при TC ≥ 0).

Стратегия динамическая. Кроме классических отклонений, мы пересчитываем матрицу полностью на каждой раздаче от текущей композиции шуза. То есть рекомендация учитывает не только TC, но и какие именно карты остались — это даёт чуть больше точности, чем чистый Illustrious 18.

6. Лобби — все столы на одном экране

В каталоге 502 стола Pragmatic + Evolution, скрейпится с gamblingcounting.com каждые 30 минут. Плитки делятся на:

Фильтры

Настройки фильтров сохраняются в localStorage между сессиями.

Глобальная панель

7. Страница стола

Клик по плитке live-стола → детальная страница /t/{table_id}. Там:

8. Что бэкенд делает сам, без тебя

9. Если не работает

Расширение поставил, но ничего не появляется

Сессия в UI с last_error: HTTP 401

Это WAF/гео-фильтр Pragmatic режет HTTP-запросы с IP бэкенда. Сама сессия (SID) скорее всего в порядке. Варианты:

Все столы в status=retrying

Скорее всего сетевой провал у бэкенда или временный 5xx у Pragmatic. Раннеры сидят на 60с±jitter и сами вернутся, когда условие пройдёт. Ничего делать не надо.

Таблица показывает старые данные / dealer не меняется

В заголовке плитки появится тихо 30с или замер ⚠ — значит фреймы давно не приходят. В live-обстановке стол либо в перемешивании (сейчас вернётся), либо WS оборван и идёт reconnect. Если статус «замер ⚠» более 3 минут — раннер скорее всего в retrying-цикле; в логах бэкенда увидишь причину.

Хочу поменять SID на свежий

Расширение само заменит — при открытии стола в казино оно ловит новый SID из URL и POST'ит на /api/sessions. Пул обновляется, при следующей ротации раннер возьмёт новый SID. Старый помеченный «dead» SID будет переизбран реанимирующим циклом если оживёт через ~10 минут.

Что-то совсем странное

В терминале где запущен бэкенд — все ошибки логируются. Поищи строки [bjXYZ] с table_id проблемного стола. session_invalid, duplicate_session, retrying, rotating SID — это нормальные состояния. listener crashed со стек-трейсом — кидай в issues.

Bonne chance · если есть вопросы — каталог репо