Как разрабатываются программы для помощи в игре в покер

Последний пост:23.02.2021
73
1 2 3
  • Тема #3. Как StarsHelper взаимодействует с клиентом.

    Как извлечь данные из клиента - такой вопрос периодически поступает в поддержку.
    На него можно ответить по-разному, зависит от уровня подготовки того кто спрашивает.

    Как правило спрашивающий не указывает никаких деталей, его уровень знаний мне не известен, поэтому приходится давать самый простой ответ.
    Один спрашивающий указал что хочет сделать дипломную работу как то связанную с этой темой.

    Так как здесь программистов не очень много, я буду писать только понятные всем вещи.

    Итак простой ответ.
    Чтобы понять что происходит за игровым столом можно применить метод оптического распознавания текста или образов.
    Распознавание текста сокращённо называется OCR.
    Существуют уже готовые библиотеки которые сами могут распознать текст.
    Распознавание сложных (не статичных) образов обычно строится на обучении.
    Например, в нейронную сеть подаётся десятки изображений котиков. После этого, если сети показать новое изображение, то она выдаст с какой вероятностью это изображение является котиком.
    Чем сложнее образ, тем сложнее обучить сеть.
    Если изображение всегда статичное, то можно не применять нейронные сети, а просто сравнивать картинку с оригиналом.
    На практике, из-за того что изображение имеет свойство растягиваться и масштабироваться, как правило абсолютно статичной картинки не бывает.

    Плюсы такого метода.
    Легко освоить и реализовать.
    Можно применять где угодно.

    Минусы.
    Нет 100% точности.
    Низкая производительность.

    Но есть и другой метод.
    Вся нарисованная на столе информация хранится в оперативной памяти вашего компьютера.
    Windows предоставляет инструменты для чтения памяти других процессов.
    Например вы можете обратиться к вашей операционной системе и попросить её скопировать для вас нужный вам участок памяти.
    А дальше делать с этой информацией что вам угодно.

    Плюсы такого метода.
    Высокая производительность (по сравнению с OCR).
    Можно прочитать даже то что не нарисовано на экране.
    100% точность.

    Минусы.
    Очень сложно реализовать.
    При малейшем изменении в структуре данных у вас всё сломается.


    StarsHelper использует метод чтения памяти.
    Для работы функции chips to bb, кроме чтения памяти, так же применяется запись в память.
    Простыми словами StarsHelper подменяет числа и буквы в памяти процесса клиента, чтобы заставить клиент нарисовать другой текст.

    Как понять в каком участке памяти находится нужная информация?
    Для этого нужно использовать дизассемблер, знать ассемблер и иметь очень много терпения.
    Я использовал в своей работе дизассемблеры IDA и ollydbg. Хотя есть и другие хорошие инструменты.
    В зависимости от уровня подготовки и поставленной задачи, на поиск нужной информации может уйти от 1 дня до нескольких месяцев.

    Для наглядности сделал скриншот демонстрирующий работу в ollydbg.



    Понимаю что для большинства это выглядит как текст на китайском.

    Такая работа чем то похожа на работу следователя который ищет скрывшегося преступника используя улики, инструменты и смекалку.
    После недель неудачных поисков иногда хочется всё бросить и забыть навсегда.


    Как StarsHelper узнаёт в какой момент нужно считывать информацию?
    Для решения этой задачи используется модификация кода клиента.
    Например, в момент когда клиент заканчивает рисовать стол, клиент посылает в StarsHelper сигнал что я закончил, теперь твоя очередь думать.
    Разумеется в клиенте изначально нет таких алгоритмов, я сам их написал, а StarsHelper вживляет эти алгоритмы в клиент.
    Такие алгоритмы, которые вживляются в клиент, я пишу двоичными кодами не используя языки программирования.
    Пример такой программы:
    0x5A
    0x59
    0x58
    0xC2
    0x04
    0x00
    Такие микропрограммы пишутся очень долго. Я потратил много месяцев. Хотя при наличии опыта можно управиться быстрее.

    Если написать такую программу на языке высокого уровня, то вживить её в клиент будет сложнее. Хотя это возможно.


    Но не думайте что если вы нашли нужную информацию и написали мега программу на этом всё закончилось.
    Любое обновление клиента может сломать ваши алгоритмы.
    Чем больше информации вы извлекаете и чем больше функций сделали, тем чаще у вас будет всё ломаться.

    К сожалению StarsHelper на столько сложен что полностью ломается при любом обновлении клиента.
    Я бы рад сделать проще, но не придумал как это реализовать и при этом сохранить все функции в программе.

    Когда обновляется клиент, мне приходит уведомление в телеграмм. Я бросаю все дела, открываю IDA и начинаю искать нужные для StarsHelper участки памяти.
    Так как я занимаюсь этим уже 9 лет и наперёд знаю что искать, каждый такой поиск занимает у меня в среднем 1 час. Это если в клиенте не произошло каких то значительных изменений.
    При значительных изменениях требуемое время может увеличиться в десять-сто раз.

    На сегодняшний день StarsHelper поддерживает 21 регион PokerStars. Каждый регион имеет свой клиент и обновляется независимо.
    В среднем за месяц я произвожу примерно 10-30 таких поисков (иногда весь месяц нет ни одного обновления).

    Часто бывает так что обновляется сразу 3-5 клиентов в одно время и мне нужно много времени чтобы всё обработать.
    Самый популярный com клиент я обновляю всегда в первую очередь.
    Результаты моих поисков загружаются в StarsHelper автоматически, поэтому не все замечают что произошли какие то изменения.

    Из-за этой особенности я всегда должен находиться в пределах досягаемости компьютера. И иметь возможность бросить другие дела.
    В студенческие годы иногда я занимался этим прямо на парах используя ноутбук. Если не получалось, то между пар.


    StarsHelper это моя первая программа такого уровня сложности.
    Если вы знаете как реализовать алгоритмы StarsHelper проще или лучше, напишите, возможно я чего то не знаю.


    В следующем выпуске я расскажу сколько времени занимает создание новых функций. А так же почему даже лёгкие в реализации функции часто не добавляются в программу.
    Ответить Цитировать
    123
  • заголовок слегка клик-бейтный


    Добрый день всем собравшимся.

    Эта тема посвящена истории разработки вспомогательного программного обеспечения для онлайн игры в покер.
    Многие меня знают как автора программы StarsHelper.
    Это программа выполняла разные мелкие полезные функции в руме PokerStars.
    Я был разработчиком StarsHelper на протяжении 9 лет и сейчас готов поделиться разными подробностями и историями.
    Надеюсь вам будет интересно.
    -----------------------

    Тема #1. Почему не будет продолжения развития программы?
    Первый вопрос который я решил осветить на мой взгляд не очень интересен.
    Но этот вопрос часто спрашивают, я отвечал на него много раз и решил ответить ещё раз максимально подробно.


    Причина 1.
    Цена на программу была впервые установлена около 8 лет назад и за это время поменялась только один раз с 25 долларов до 35 долларов.
    Условия продажи подразумевают разовую оплату. А не ежегодную или ежемесячную.
    Такая модель позволяет финансировать будущую разработку только за счёт новых пользователей, так как старые пользователи уже не платят.
    Это можно частично сравнить с финансовой пирамидой, которая живёт до тех пор пока есть новые пользователи.
    Вероятно это моя ошибка изначально назначить сверх низкую цену, но 8 лет назад я не очень хорошо умел прогнозировать.

    Причина 2.
    PokerStars не очень хорошо относится к вспомогательному программному обеспечению.
    Это выражается в том что каждые несколько лет правила относительно дополнительных программ ужесточаются.
    В результате все подобные программы созданные для PokerStars постоянно становятся всё более менее эффективны.
    Возможно для игроков это плюс, но для разработчиков это минус.

    Причина 3.
    PokerStars добавляют функции и улучшают свой клиент. В результате чего частично отпадает необходимость в дополнительных программах.
    Приведу небольшой, но яркий пример. После того как PokerStars добавили встроенное преобразования фишек в большие блайнды, продажи StarsHelper снизились примерно в 2 раза.
    Многие пользователи прямо говорили что использовали StarsHelper только для этой функции, а всё остальное им не интересно.

    Причина 4.
    Румов становится всё больше. Их качество постепенно повышается. Нет однозначной доминации PokerStars как безальтернативного рума.
    Из-за этого процесса игроки распределяются более равномерно по множеству румов.
    Делать программу которая будет работать сразу во многих румах значительно сложнее. Хотя это возможно, но потребуется больше ресурсов и времени.

    Причина 5.
    Малая прогнозируемость решений покер румов. В любой момент рум может выпустить обновление которое сломает часть функций. Или же сломает вообще все функции как это было например с графикой Aurora на PokerStars.
    В этот же пункт можно добавить вероятность закрытия рума.

    Причина 6.
    Онлайн покер в целом это довольно малая целевая аудитория. Ввиду разных государственных запретов и ограничений мне кажется что аудитория скорее снижается, в лучшем случае остаётся на одном месте.
    Например когда то давно игроки разных стран могли законно играть друг против друга за одним столом. Сейчас многие развитые страны разрешают игру только внутри своей страны или только внутри одного штата.
    Этот пункт субъективный и основан на ощущении. Точных статистических данных у меня нет.

    Причина 7.
    Наличие конкурентов.
    Конкуренты были практически всегда. Но из-за причин выше остаётся всё меньше возможности создания множества подобных программ.
    Если бы конкурентов не было, либо они были слабые, тогда было бы выгодно разрабатывать новую программу или адаптировать старую.
    Интересный факт. На момент первичной разработки StarsHelper у меня не было ни одного конкурента.


    В следующем выпуске я расскажу как изначально появилась идея создать такую программу, как выглядела первая публичная версия программы и что она умела делать.

    Ставьте лайки и подписывайтесь на мой канал


    -----------------------
    Техническая поддержка StarsHelper в этой теме
    Сообщение отредактировал StarsHelper - 29.10.2020, 1:56
    Ответить Цитировать
    110
  • Тема #2. Первая версия StarsHelper.

    Так как описываемые события происходили очень давно, некоторые нюансы я упрощаю или указываю неточно.


    Начну совсем издалека. О программировании.
    Я начал программировать будучи школьником. Мой первый проект был браузерной онлайн игрой. Я сделал её не сам. Сначала я смог уговорить разработчиков игры передать мне исходники и сайт. Игра не была каким то коммерческим мега проектом, скорее как хобби. Поэтому мне так легко её отдали. Для школьника который ничего не умеет это был предел мечтаний и возможностей. Мне даже удавалось заработать на игре какие то деньги. Иногда 100, иногда 500 баксов, но чаще это была мелочь. Один раз мне даже подарили старый компьютер с электронно-лучевым монитором.

    2012 год. Я студент второго или третьего курса.
    Это уже мой второй университет, так как из первого меня отчислили за неуспеваемость.
    Хожу на пары, играю в разные игры. Типичная жизнь студента. В то время я подсел на всем известную игру с аббревиатурой WoT. Состоял в клане, мы высаживались на карте, после боёв завязывались приватные разговоры с соклановцами на разные темы. Я как то сказал что помимо учёбы иногда увлекаюсь программированием. На что мне предложили попробовать написать одну программу.
    Ввиду того что студенты между сессиями особо ничего сложного не делают, у меня было много времени чтобы попытаться сделать некую программу.
    Тогда я вообще ничего не знал про покер. Даже не знал что там нужно собирать какие то комбинации карт. Стал изучать в интернете что это за игра такая. Мои боевые товарищи по клану долго и кропотливо рассказывали что бы они хотели получить в итоге. Хотелок было много. Вопрос состоял в том что я смогу реализовать.
    Начал я с самого лёгкого. Первая моя программа умела выполнять следующие функции:
    -Читать историю рук.
    -Создавать статистику на основании истории рук.
    -Был редактор который позволял создавать свои статы. Он был очень сложным, но зато в нём можно было описать любую игровую ситуацию.
    -Хранить уже посчитанную статистику в файле, чтобы не приходилось при каждом запуске её пересчитывать.
    Думаю многие догадались что это некая пародия на холдем менеджер или покер трекер.
    Но у моей программы было несколько преимуществ.
    Она не имела никаких баз данных по типу postgre sql. Все операции происходили напрямую в памяти не используя жёсткий диск. Мы проводили сравнительные тесты на больших объёмах рук и получалось что моя программа выполняет парсинг истории на порядок быстрее (возможно в 10 раз быстрее, я уже не помню). Это было актуально на 2012 год, сейчас возможно технологии ушли вперёд, да и компьютеры посильнее.
    Второе преимущество моей программы было в том что собранную статистику планировалось не выводить на стол, а строить на её основании некие стратегии игры. Или подсказки к действию. Да это запрещено. Но тогда я вероятно даже не знал об этом (не помню уже). Так как я делал программу не для продажи, а по просьбе пары человек, по сути я ничем не рисковал.

    Так же программа имела калькулятор который мог просчитать вероятность выиграть на основании тех данных что известны (какие карты в руке, карты на столе, сколько людей в игре, позиции игроков, какие карты предположительно имеют оппоненты). Калькулятор работал по принципу бесконечного перебора используя генератор случайных чисел для выброса недостающих карт на стол. Даже за полсекунды работы процессора можно было получить относительно точный результат. Имеется ввиду что за полсекунды можно перебрать миллионы вариантов что даёт маленькую погрешность вычисления.
    Разумеется этот калькулятор не являлся универсальной машиной которая бы позволяла всегда выигрывать. Тогда я не особо понимал что это может дать на практике, просто делал то что был в состоянии реализовать.

    К программе имели доступ 3 человека включая меня. На сколько я помню из нас троих никто так и не сделал статы. Я не понимал какие статы нужны. А остальные не знали как сделать статы. Либо им было лень, уже не помню.
    К тому же программа не умела выводить статы на стол или как то их полезно использовать.
    Фактически всё что описано выше не было никем использовано по следующим причинам:
    Не было доведено до ума ввиду моей не опытности.
    Не было публично опубликовано.
    Были работающие программы PokerTracker и Holdem Manager.

    Далее мне рассказали что есть такая программа которая называется LongHUD. Даже сейчас любой может загуглить её, найти скриншоты и её описание.
    Разработчик этой замечательной программы отказался от её поддержки. Она ещё работала, но доживала свои последние месяцы. Мне предложили сделать аналог этой программы.
    Я рискнул и у меня получилось. О технических сложностях с которыми мне пришлось столкнуться я расскажу позже. Это очень объёмная тема. В общей сложности я потратил около одного года на то чтобы сделать первую публичную версию программы.

    Так это выглядело:

    Она не продавалась. Я просто выложил её на одном покерном форуме.
    Как видите по скриншоту там была всего одна функция: конвертация всех фишек за столом в большие блайнды.
    Получив восторженные отзывы я понял что мне нужно продолжать дальше.
    Теперь вы знаете что StarsHelper изначально был аналогом программы LongHUD и в конечном итоге получил все функции которые были в LongHUD. Часть функций потом запретили старзы, поэтому сейчас вы не найдёте такую функцию как "префлоп агрессия".

    В последующем я начал добавлять ещё много разных функций и некоторые стали думать что StarsHelper это некий аналог программы Table Ninja.
    Хотя программы были абсолютно разные как по набору функций, так и по принципу работы.

    Интересный факт. В StarsHelper прямо в главной вкладке есть функция которая называется "не изменять общий банк".
    Наверняка многие не знают в чём польза этой настройки.
    Это нужно для того чтобы Table Ninja могла работать одновременно со StarsHelper.

    Надеюсь было интересно.
    Ваши лайки мотивируют меня продолжать.

    В следующем выпуске я расскажу о техническом устройстве программы.
    Ответить Цитировать
    99
  • Тема #4. О добавлении новых функций в StarsHelper.


    В поддержку StarsHelper и на форумах часто поступали запросы на добавление новых функций.

    Сегодня я постараюсь рассказать почему некоторые функции добавляются, а некоторые нет. А так же сколько времени это обычно занимает.


    Так как запросы поступают в огромных количествах, все они записываются в отдельные файлы, где группируются по тематике.
    Основная причина почему большинство запросов никогда не удовлетворяются, это их бесконечность.
    Простой пример.
    Поступил запрос на добавление функции X.
    Я реализовал эту функцию и она вышла в релиз.
    В ответ на это поступило ещё 2 предложения, как эту функцию можно улучшить или расширить.
    Я выполнил эти предложения.
    Поступило ещё 4 запроса.
    Реализовать все идеи невозможно, поэтому более 90% предложений не реализуются.

    Тем не менее я всё равно выслушиваю и записываю все предложения. В том числе для подсчёта статистики.

    Те предложения которые звучат чаще - реализуются с большим приоритетом. Но это не всегда ключевой аргумент.


    Ещё одна причина почему некоторые запросы никогда не реализуются, это предложения из разряда сделать так же как в программе X.
    Это связано с тем что выгоднее всего делать функции которые ещё нигде не реализованы.
    Наличие уникальных функций привлекает новых клиентов лучше всего.
    Но бывают исключения. Например если я знаю как сделать функцию лучше/быстрее/качественнее/дешевле. Либо если она крайне востребована. Либо если её легко реализовать.

    Так же я стараюсь не делать функции которые есть в клиенте. Конкуренция с румом не стоит затраченных усилий.


    Разберём на примере сколько времени занимает реализация простой функции.
    Допустим пользователь хочет чтобы в программе была добавлена кнопка которая закрывает клиент.

    Шаг 1.
    Нужно определить место где эта кнопка будет размещена. При необходимости передвинуть другие элементы. Нарисовать элемент.
    В особо сложных случаях привлекается специалист по UI (такое бывает редко). Если нужны иконки или графика так же привлекается отдельный человек.
    Так как наш пример самый простой, отведём под эту задачу 5-10 минут.

    Шаг 2.
    Нужно придумать название этой кнопки. Создать строковые переменные.
    Так же желательно перевести текст на разные языки мира.
    Я как программист переводом почти не занимаюсь и не знаю сколько времени это занимает.
    Без учёта перевода отведём на эту задачу тоже 5-10 минут.

    Шаг 3.
    Пишем основную логику функции.
    Количество времени может быть любым. Час, день, неделя, месяц, год.
    Так как у нас простой пример отводим 5-10 минут.

    Шаг 4.
    Тестирование.
    Тестирование обычно усложняется тем что необходимо играть в покер чтобы проверить новую функцию.
    В особо сложных случаях тестирование необходимо проводить в турнире который проводится несколько раз в сутки и только на реальные деньги.
    В нашем примере отводим 3 минуты.

    Шаг 5.
    Написать внутреннюю документацию.
    Чтобы потом долго не вспоминать как, что и почему.
    Отводим 3 минуты.

    Шаг 6.
    Обновить информацию на сайте.
    Я этим не занимаюсь, так как для этого не требуется программирование.
    Не знаю сколько времени это занимает.
    Возьмём по минимуму 5 минут. Хотя мне кажется что дольше.

    Шаг 7.
    Исправление багов если они будут найдены.
    Самое сложное в любом баге, это не само исправление, а его поиск.
    Разброс по времени такой же как в шаге 3.
    Так как у нас простая функция и сделана сразу без багов, закладываем 0 минут.

    Шаг 8.
    Работа службы поддержки.
    Чаще всего просто спрашивают как включить функцию X. Моя задача ответить в какой вкладке и примерно где находится эта функция.
    Да, я занимаюсь не только программированием, но и поддержкой на русском языке, в том числе на форумах.
    Так же могут спрашивать:
    -почему функция не работает
    -как она работает, мелкие нюансы
    -предложения по улучшению
    Это отнимает много времени.
    Подробнее о работе службы поддержки будет следующая статья.
    Заложим сюда условно 1 час. На самом деле больше, так как одни и те же вопросы могут поступать в течении многих лет.

    Шаг 9.
    При обновлении клиента функция может сломаться.
    Нужно её переделать.
    Если это произошло возвращаемся к шагам 3, 4, 5, 7.
    В среднем каждые полгода ломается по 2-3 функции. Графика aurora сломала сразу половину программы.
    В нашем примере закладываем 0 минут.


    Вроде ничего не забыл.
    Подведём итог.
    На самую простую функцию требуется минимум 26 минут плюс её бесконечная поддержка.
    Самое сложное это программирование и тестирование.
    Самое долгое поддержка.


    Самые сложные функции в StarsHelper:
    -chips to bb
    -расстановка столов
    -HUD (имеется ввиду общая система отрисовки, а не конкретный HUD)
    -HUD BetBox (этот HUD был переделан наверное раза 3 и каждый раз с кучей багов, наверное он до сих пор не идеально работает)
    -хоткеи


    Нет прямой взаимосвязи между количеством функций и количеством продаж.
    Основную прибыль делают несколько ключевых функций.
    Поэтому моим приоритетом всегда было исправление багов уже существующих функций, а не создание новых функций.
    Не считая начального периода, создание новых функций было самой низкоприоритетной задачей.
    Чем больше функций добавлено, тем сложнее становится поддерживать работоспособность программы, а продажи при этом повышаются незначительно.


    Следующая статья о службе поддержке
    Ответить Цитировать
    61
  • Ещё немного историй.
    Очень редко, но были случаи когда поступали запросы о покупке StarsHelper (не покупка лицензии, а целиком бизнес).
    Я никогда не воспринимал эти запросы всерьёз, так как люди пишущие такие запросы сомнительные анонимы без репутации.
    Но интересно в этом другое. Такие покупатели никогда не интересуются технической стороной того как это работает.
    Их интересует только один вопрос: сколько человек уже пользуется программой.
    Можно сделать вывод что подобные проекты пытаются купить не как готовый бизнес, с последующим развитием, а как базу данных клиентов. Возможно с последующим распространением недобросовестных программулек ))
    В прочем это лишь мои предположения.

    За всё время существования StarsHelper, никакие данные клиентов ни разу не подвергались утечке.
    Так же я старался хранить как можно меньше данных и запрашивать только действительно необходимую информацию.
    Программу можно было купить и использовать без регистрации на сайте.
    Сама регистрация на сайте была возможна даже без указания e-mail.
    Все логи хранились на сервере ограниченное время.
    Пароли подвергались хешированию, как это положено по стандарту. То есть даже я никогда не видел пароли пользователей.

    Мне известны случаи когда отдельные сайты с покерным софтом взламывались и под видом их продукции распространяли трояны.
    Конечно это быстро обнаруживалось, но некоторое количество клиентов успевало пострадать.


    Пользователи StarsHelper знают что программа видит все открытые карты. То есть видит карты героя.
    Возникает вопрос: может ли быть такое что StarsHelper (или другая программа) передаёт информацию о картах героя на сервер, с дальнейшим её использованием против игрока.
    Честный ответ: технически такое возможно и при основательном подходе это даже можно замаскировать (например выходить в сеть не от имени StarsHelper.exe).
    Мне поступали предложения о покупке информации карт игроков в режиме реального времени (!!!).
    Невозможно предоставить неопровержимые доказательства что этого не будет сделано (сейчас или в будущем).
    Но есть некоторые признаки, которые дают относительно высокую гарантию того что любая ваша информация будет защищаться:
    1. Наличие многолетней репутации.
    2. Покупка лицензии программы за справедливую цену.
    Но и пользователь тоже должен быть осторожен. Например проверять официальность источника. Скачивать что-либо только с официального сайта. Проверять как давно работает тот или иной бизнес, читать отзывы и так далее.
    Сообщение отредактировал StarsHelper - 23.2.2021, 0:22
    Ответить Цитировать
    19
  • EIvis,
    игроком в покер не являюсь, так как не интересен сам процесс онлайн игры. Если бы предложили поиграть в покер в реале с друзьями, то согласился бы.
    В разработке StarsHelper на протяжении всего периода участвовали профессиональные игроки. Врятли они захотят рассказывать о себе. Те люди которые оказывали консультации в первый год разработки тоже были профессиональными игроками, но вероятно уже давно не играют в покер.

    Сколько продал не скажу. Если суммировать все года, счёт идёт на тысячи.

    В ближайшие полгода мой род деятельности не изменится. Так как программа ещё работает, я всё ещё занимаюсь поддержкой пользователей. Вероятно выпущу обновление для расстановки столов в StarsHelper. Так же мне нужно закончить другой большой проект который я начал 4 года назад после окончания университета.
    Что я буду делать через полгода-год не знаю. С высокой вероятностью буду ещё что то программировать, так как это мой основной навык.
    Ответить Цитировать
    15
  • Бармолей, потому что разработка StarsHelper была прекращена.
    Историю пишу потому что это не сложно и пользуется спросом (судя по лайкам).
    Ответить Цитировать
    14
  • Не совсем понятно, что мешает перейти на модель с годовой подпиской, благо примеров как это делается предостаточно - тот же HoldemManager. Выпускаете условный StarsHelper 2, делаете период льготного (бесплатного) апгрейда для владельцев пожизненной лицензии старого Хелпера, которые купили его в последний год (или два года или иной срок по желанию). Поддерживать софт, купленный за 25$ 7-8 лет назад, регулярно его обновляя, - звучит довольно абсурдно, имхо.

    Но логика остальных аргументов, особенно 3 и 7, понятна.
    Сообщение отредактировал Repairion - 9.11.2020, 7:43
    Ответить Цитировать
    10
  • Купил и забыл конечно хорошо, но я уже склоняюсь к мысли что годовое обслуживание таких прог крайне важно.
    Ответить Цитировать
    8
  • Цитата (StarsHelper @ 5.11.2020)
    Если вы знаете как реализовать алгоритмы StarsHelper проще или лучше, напишите, возможно я чего то не знаю.
    Мне часть вещей удалось автоматизировать, но часть других данных, которые я использую, тоже приходится искать вручную, хотя и реже - обычно достаточно сделать это для первого обновившегося клиента, а у остальных всё аналогично (например PokerStars.uk недавно обновился до 35261 и я сделал его поддержку, надеюсь что и для всех остальных клиентов старзов это обновление будет работать). И часто несколько следующих мелких апдейтов клиентов тоже ничего для меня не меняют.

    Если я верно понимаю - одна из вещей, которые ты ищешь вручную, это адрес функции, которая отрисовывает текст на столе. Я её ищу динамически по сигнатуре (на стороне клиента), она уже несколько лет не меняется во всех типах / билдах клиентов (до этого был другой вариант, а до того ещё какой-то).
    Хотя сейчас посмотрел - я там до сих пор два варианта ищу, и даже не знаю, который из них сейчас реально работает.
    Последняя из добавленных -
    0x57, 0x50, 0x8D, 0x45, 0xF4, 0x64, 0xA3, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xF9, 0x8B, 0x4D, 0x14, 0x8B, 0x5D, 0x08, 0x8B, 0x55, 0x0C, 0x8B, 0x75
    судя по моему комменту, она впервые появилась в PokerStars.ee 22608
    Если это так, то тоже можешь попробовать это автоматизировать (судя по всему ты ту же самую функцию перехватываешь, хотя я и не проверял).

    Но это всё старого движка касается, в Авроре всё совсем по-другому, конечно.
    Ответить Цитировать
    6
  • Yras, можно прислать им свою программу. Описать что она делает. Спросить разрешена ли такая программа.

    Есть специальный файл для разработчиков где на английском подробно описано что можно делать, а что нельзя.
    Этот файл высылают каждому разработчику на электронную почту.

    Специального разрешения залезать в память лично я не получал, так как не спрашивал его.

    Надеюсь я сейчас не выдам никаких секретов. Тем более уже много лет прошло.
    Например для их службы безопасности было странно что StarsHelper читает текст который клиент пишет в файл лога. При этом не открывая этот файл.
    Они уточняли как происходит чтение этого текста. После объяснения никаких запретов не последовало. Думаю они интересовались этим чтобы понять как работают продвинутые боты. Либо они удовлетворяли своё любопытство. Всякое может быть.
    Ответить Цитировать
    4
  • Цитата (ripppa @ 19.11.2020)
    я еще офигел что у старзов 21 клиент 888-) а некоторые из них входят в общий пул или все по резервациям отдельно?
    StarsCaption 22 клиента поддерживает (19 PokerStars и 3 FullTilt)

    15 клиентов (включая три разных клиента FullTilt) играют в общем пуле PokerStars.com.
    3 западно-европейских клиента (es/fr/pt) играют в своём пуле.
    Свои пулы есть у индусов, итальянцев, в штатах Нью-Джерси и Пенсильвании.
    Ответить Цитировать
    4
  • А про Пати ещё удивительнее - partypoker.sochi, поддержку которого я недавно добавил, был 33-м румом, поддерживаемым PartyCaption.
    Куча из того, что там было, давно закрылось, правда - но сейчас в сеть partypoker входят такие румы, как CrystalBet, Coral и Ladbrokes (вряд ли в них можно зарегиться из России, правда).
    Ответить Цитировать
    4
  • Brokkoli, Без winapi такие алгоритмы было бы нельзя реализовать.
    Он используется для чтения/записи в память другого процесса.
    Ответить Цитировать
    2
  • Цитата (LikeAA @ 19.11.2020)
    StarsCaption 22 клиента поддерживает (19 PokerStars и 3 FullTilt)


    Мне известно 20 регионов у PokerStars.
    Перечислю их коды.
    com (основной)
    eu
    es
    fr
    it
    uk
    ee
    be
    bg
    dk
    desh
    nj
    ro
    pt
    cz
    ruso
    in
    se
    asia
    pa

    Так же очень давно был "test" регион. Сейчас его вроде нет.
    Ответить Цитировать
    2
  • наверное Brokkoli имел в виду просто апи. Такого конечно же нет.
    Не хватало облегчать работу всяким ботам итд.

    Интересно как доказывалось старзам, что мы ничего плохого не делаем и как они разрешили лазить им в память и ковырять там всё.
    всякие шутеры-мморпг обычно на такое реагируют банами
    Ответить Цитировать
    1
  • и это печально, что разработка прекращена, почему не сделать ежегодную оплату как в старзкепшине и продолжать поддержку?
    Ответить Цитировать
    1
  • Может звучало, но спрошу: а почему бы не сделать, например, годовую подписку и продолжить работу? Думаю, что нынешние пользователи, у которых всё настроено, купили бы подписку, а не пошли бы покупать новую прогу с годовой подпиской и настраивали бы всё по-новому
    Ответить Цитировать
    1
  • Очень интересно, спасибо, что пишешь.
    А OCR нельзя закешировать?! Интересно, как в caption-е, tabletamer-е и других конкурентах реализовано - онли OCR без чтение памяти и дилер чата?
    Ответить Цитировать
    0
  • Mox, https://forum.gipsyteam.ru/index.php?viewtopic=95824&view=findpost&p=6810770
    Ответить Цитировать
    0
1 2 3
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.s