Готовый перевод OpenHoldem Manual / Руководство по OpenHoldem: 4 Creating a Table Map / 4 Создание Table Map

Внимание! Этот перевод, возможно, ещё не готов, так как модераторы установили для него статус «идёт перевод»

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

OpenScrape – программа для создания Table Map’ов. Она предоставляет графический интерфейс для задания ряда параметров, которые сохраняются в удобочитаемых текстовых файлах с расширением .tm. Открыв любой .tm файл Блокнотом, можно совершенно четко увидеть способ, которым построен файл. В каждом .tm файле есть ряд параметров, сгруппированных по типам записи. В следующих разделах обсуждается, для чего используется каждая из этих записей при создании Table Map’ов.

4.1 Первое что нужно сделать: соединиться с окном покер-клиента

Запустите клиент покера и сядьте за стол на деньги. Также можно использовать режим "наблюдателя" если вам он нравится. Как альтернативу можно использовать OHReplay с сохраненными кадрами но только после того как вы научитесь ими пользоваться.

Давайте оставим OHReplay на потом. Когда вы сядете за стол, запустите OpenScrape из папки "c:\mpb" которую вы создали раньше. Расположите окно клиента и окна OpenScrape таким образом, чтобы они не перекрывали друг друга - для правильной работы OpenScrape необходимо, чтобы окно клиента было видно целиком.

Рисунок 4.1-2 Окна OpenScrape

Соедините OpenScrape со столом казино, щелкнув по Круглой зеленой кнопке на панели инструментов OpenScrape. Появится диалоговое окно со списком видимых окон. Выберите то окно, которое соответствует столу покера и нажмите OK. (На этом скриншоте мы соединяемся с окном "ManualMode", позже вы узнаете больше про ManualMode а пока вам надо знать только то что ManualMode это моделируемый, офлайн-покер стол).

Рисунок 4.1-3 Выбор окна покер-клиента

В главном окне OpenScrape будет показано статическое изображение покерного стола. Как только OpenScrape покажет изображение, его можно будет минимизировать, дабы получить больше свободного места для работы. Поскольку стол казино постоянно изменяет свое состояние, то вам надо будет обновлять изображение, которое отображается в главном окне OpenScrape, это можно сделать в любое время, щелкнув по кнопке Refresh (Обновить) на панели инструментов или выбрать View/Refresh (Вид/Обновить) в строке меню. При обновлении, OpenScrape выведет присоединенное окно на передний план, захватит изображение и затем снова поместит его назад. Если вы соединили OpenScrape с окном OHReplay, то OHReplay автоматически покажет следующий сохраненный кадр.

Рисунок 4.1-4 OpenScrape соединен с покерным столом

После того как OpenScrape получит изображение покерного стола, можно приступить к созданию Table Map и обеспечить Движок состояния, параметрами которые он будет использовать чтобы "читать" игровой стол.

4.2 Знакомство с OpenScrape

Когда вы запустите программу OpenScrape, появится два окна. В "Главном" окне есть строка меню, панель инструментов и еще в нем отображается изображение покерного стола. Другое окно это "Редактор TableMap" в нем вы будете делать бо́льшую часть работы в OpenScrape. В "Редакторе TableMap" нет ни строки меню, ни панели инструментов, а в его заголовке написано "TableMap".

Команды меню

Рисунок 4.2-5 OpenScrape меню File (Файл)

Рисунок 4.2-6 OpenScrape меню Edit (Правка)

Рисунок 4.2-7 OpenScrape меню View (Вид)

Меню File (Файл) содержит стандартные команды для Windows такие как открытие и сохранение TM.

Меню Edit (Правка) содержит стандартные команды для Windows плюс две относящиеся к OpenScrape:

- Update Hashes (Обновить хэши): эта опция позволяет пересчитать все хэш-записи в текущем TableMap – полезно например, если вы внесли изменения в основные образы. Подробнее о хэшах позже.

- Duplicate Region (Дублировать регион): эта опция позволит вам легко копировать регионы. Например, когда определено расположение карт для первого игрока, чтобы упростить себе жизнь, вы можете дублировать это расположение в позиции 2-10. Подробнее об регионах позже.

Меню View (Вид) содержит стандартные команды для Windows такие как Toolbar/Status Bar (Панель инструментов/Строка состояния), плюс специальные команды для OpenScrape:

- Connect To Window (Подсоединиться к окну): Эта команда выполняет тоже что и "Круглая зеленая кнопка" находящаяся на панели инструментов - выводит диалог со списком видимых окон для выбора того окна с которого OpenScrape должен сделать скриншот.

- Show Region Boxes (Показать группу регионов): позволяет включать либо выключать отображение группы регионов TableMap’а, которая отображается поверх изображения покерного стола в главном окне.

Refresh (Обновить): Эта команда выполняет тоже что и кнопка Refresh (Обновить) находящаяся на панели инструментов - захватывает изображение присоединенного окна и показывает его в OpenScrape.

- Group Regions/Ungroup Regions (Объеденить/Разъединить регионы): Эта команда предназначена для настройки отображения записей регионов в окне редактора TableMap’ов.

- Current size: (Текущий размер:) Показывает размер клиентской области окна, к которому в настоящий момент присоединен OpenScrape. Это очень полезно при создании некоторых Записей.

Панель инструментов

Рисунок 4.2-8 OpenScrape Панель инструментов в главном окне

Кнопки на панели инструментов в главном окне OpenScrape выполняют следующие действия, слева направо:

- New Table Map (Создать ТМ)
- Open Table Map (Открыть ТМ)
- Save Table Map (Сохранить ТМ)
- Connect to window (Подсоединиться к окну)
- Toggle Region box display on or off (Показать группу регионов)
- Refresh the poker table image (Обновить изображение стола)
- Display Help/About (Справка/О программе)

Примечание: Сочетания клавиш имеются для большинства пунктов меню и кнопок на панели инструментов, в дополнение к стандартным сочетаниям Windows:

F1 – Help/About (Справка/О программе)
F3 – Connect to window (Подсоединиться к окну)
F4 – Toggle Region box display on or off (Показать группу регионов)
F5 – Refresh the poker table image (Обновить изображение стола)
Control + U – Update Hashes (Обновить хеш)

TableMap: Кнопки/Поля

Окно редактора TableMap’а содержит множество информации о нем, а также различные поля и элементы управления, активирующиеся в зависимости от типа выбранной записи.

Рисунок 4.2-9 OpenScrape Окно редактора TM

В верхней левой части окна расположены три кнопки, New/Delete/Edit (Создать/Удалить/Редактировать), которые позволяют добавлять новые записи в TM, удалять записи из TM или редактировать записи. Кнопка "New" (Создать) позволяет добавить запись того типа, который выбран в древе типов под кнопками. Например, если выбран тип записи «Region», нажав кнопку Создать вы добавите новую запись области в TM. Кнопки "Delete" (Удалить) и "Edit" (Редактировать) предназначены для работы с выбранной записью.

Непосредственно под кнопками расположено дерево записей. В этом окне отображаются все записи, которые в настоящий момент присутствуют в TM, сгруппированные по типам. Записи типа Region в этом дереве дополнительно могут разделяться на подгруппы, путем использования опции меню View (Вид) главного окна. Существуют несколько вариантов разделения записей типа Region на подгруппы, предназначенные для повышения продуктивности создания TableMap’ов. Необходимо эксперементировать с этими подгруппами, чтобы понять, могут ли они удовлетворить ваши персональные потребности.

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

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

В правой верхней части окна расположена большая группа элементов управления: группы «Rectangle» (Прямоугольник) и «Nudge» (Сдвиг), поля «Transform» (Преобразование), «Radius» (Радиус), «Color» (Цвет), «Avg Color» (Средний цвет) и «Result» (Результат). Эти элементы используются в основном для настройки параметров записей типа Region и активны только при выбранной записи типа Region в дереве записей в левой части окна. Смысл этих полей будет описан в разделе «Записи региона» позже. Некоторые из этих полей могут отображать другую соответствующую информацию в зависимости от выбранного типа записи в дереве записей.

Под этой большой группой элементов управления расположены кнопки для создания хэш-записей, записей шрифтов и изображений. Данные кнопки становятся активными в зависимости от типа записи, выбранного в дереве записей. Например, создание записи изображения имеет смысл только тогда, когда в дереве записей выбрана запись региона. Создание записи шрифта имеет смысл только при выбранной записи региона с преобразованием текста.

Область под кнопками создания хэш-записей, записей шрифтов и изображений используется для отображения «пиксельного разделения». Кнопки «+» и «-» справа от этой области служат для управления размером шрифта, использующегося в данной области. Пиксельное разделение используется для регионов с преобразованием шрифта. Хорошее разделение между цветами переднего плана и заднего плана необходимо для хорошего распознания шрифта, и данная область позволяет просматривать это разделение.

4.3 Записи размера

Описание

Записи Размера используются только с одной целью, чтобы при нажатии "Круглой зеленой кнопки" OpenHoldem смог найти окна нужного размера. Более подробно - они обеспечивают возможность определить установленные размеры для стола казино, которые распознает Движок состояния. При нажатии на "Круглую зеленую кнопку" OpenHoldem в первую очередь попытается найти окно, размер которого соответствует записи clientsize и если таких окон не окажется, то он будет искать окна, размер которых находится между размерами записей clientsizemin и clientsizemax. В большинстве Table Map'ов единственной записью Размера, которая действительно необходима, является clientsize. Использование записей clientsizemin и clientsizemax применимо в исключительных и редких случаях.

Управление записями размера в OpenScrape

Чтобы создать новую запись размера, в редакторе TM в дереве записей выберите категорию "Sizes" (Размеры) и нажмите кнопку "New" (Создать). На экран выведется окно, которое позволит ввести значение ширины и высоты для новой записи.

Чтобы отредактировать существующую запись размера, в редакторе TM в дереве записей выберите запись и нажмите кнопку “Edit” (Редактировать). На экран выведется окно, которое позволит вам изменить параметры ширины и высоты, или изменить имя записи.

Чтобы удалить существующую запись размера, в редакторе TM в дереве записей выберите запись и нажмите кнопку "Delete" (Удалить). На экран выведется окно, для подтверждения данного действия.

Заметка о размерах окон: Microsoft Windows предоставляет два разных размера окна, полное окно - рабочая область плюс рамка и заголовок, вторая это так называемая "клиентская область" - рабочая область без учета заголовка и рамки окна. Для Записей "Size" (Размер) OpenHoldem использует "клиентскую область". В главном окне OpenScrape в самом конце списка в меню "View (Вид)" напротив пункта "Current Size: (Текущий размер:)" отображается размер присоединенного (с помощью "Круглой зеленой кнопки") к OpenScrape окна. Ширину и высоту, показанную в этой строке можно записать в запись clientsize.

Технический справочник

В Table Map (.tm файле), этим записям будут предшествовать символы "z$". Записи размера имеют следующий формат:

z$<имя> <ширина> <высота>

<имя> является именем записи (см. таблицу ниже)
<ширина> и <высота> являются целочисленными значениями.

Допустимые Записи размера и их описание:

clientsize

Определяет точный размер клиентской области окна покер-клиента.

clientsizemin

Определяет минимально допустимый размер клиентской области окна покер-клиента.

clientsizemax

Определяет максимально допустимый размер клиентской области окна покер-клиента.

4.4 Записи символов

Описание

Записи символов – общий тип записей, предназначенный для достижения множества различных целей в OpenHoldem и OpenScrape. Общей характеристикой этих записей является то, что все они содержат имя и текстовое поле в свободной форме. Интерпретация этого текстового поля отличается, в зависимости от имени записи символов. Таблица в разделе технический справочник описывает, как текст в свободной форме интерпретируется для каждого типа записи символов.

Управление записями символов в OpenScrape

Чтобы создать новую запись символа, в редакторе TM в дереве записей выберите категорию "Symbols" (Символы) и нажмите кнопку “New” (Создать). На экран выведется окно, которое позволит ввести текст в свободной форме для новой записи.

Чтобы отредактировать существующую запись символа, в редакторе TM в дереве записей выберите запись и нажмите кнопку “Edit” (Редактировать). На экран выведется окно, которое позволит вам изменить текст в свободной форме, или изменить имя записи.

Чтобы удалить существующую запись символа, в редакторе TM в дереве записей выберите запись и нажмите кнопку “Delete” (Удалить). На экран выведется окно, для подтверждения данного действия.

Примечание: Для добавления или удаленя записей символов можно использовать клавиши Insert и Delete.

В случае нажатия “New” (Создать) или “Edit” (Редактировать), всплывающее окно содержит также поле “Titlebar text” (Текст заголовка), кнопку для разбора текста заголовка и поля для отображения результатов этого разбора. Использование трех этих элементов управления уместно только если имя записи является одним из ttlimits типов. Если выбран тип записи ttlimits, эти элементы будут активными, в противном случае их использование будет недоступно.

Рисунок 4.4-10 OpenScrape Окно Создания/Редактирования записи символа

Эти три поля позволяют протестировать парсинг текста-заголовка окна и строки парсера, которая определяется в поле "String" (Строка), и просмотреть результат этого анализа в поле результатов которое находится в низу окна. Поле "Titlebar text" (Текст заголовка) изначально заполняется текстом из заголовка окна, к которому присоединен OpenScrape (с помощью "Круглой зеленой кнопки") но он может быть изменен на любой текст, который вы хотите протестировать.

Технический справочник

В Table Map (.tm файле), этим записям будут предшествовать символы "s$". Записи символов имеют следующий формат:

s$<имя> <текст>

<имя> является именем записи (см. таблицу ниже)
<текст> является содержимым записи

Допустимые Записи символов и их описание:

titletext, titletext0 - titletext9

При нажатии "Круглой зеленой кнопки" OpenHoldem проверит все данные записи и окна на частичное совпадение текстов этих записей с текстами заголовков окон. Если часть текста заголовка окна совпадает с любой из этих записей, то такое окно считается соответствующим этому TM.

!titletext,
!titletext0 -!titletext9

При нажатии "Круглой зеленой кнопки" OpenHoldem проверит все данные записи и окна на частичное совпадение текстов записей с текстами заголовков окон. Если все подстроки, записанные во всех этих записях, не совпадают с текстом заголовка какого-либо окна, то такое окно считается соответствующим этому TM.

ttlimits, ttlimits0 - ttlimits9

Эти символы предоставляют строку форматирования, используемую для передачи заголовка окна, извлечения значений малого блайнда, большого блайнда, наибольшей ставки, анте и информации о типе игры. Синтакс этой строки такой же, как и у строки форматирования в функциях scanf и printf в C-подобных языках программирования. Placeholder'ы начинаются с символа вставки (^) и имеют следующике значения:

^h номер раздачи
^d dummy integer (read chars 0-9 only)
^f dummy float (read chars 0-9 including decimal '.')
^s малый блайнд
^b большой блайнд
^B наибольшая ставка
^a анте
^v малый или большой блайнд в зависимости от типа лимитов
^V большой блайнд или большая ставка (Big Bet)
^* пропустить весь текст до буквенного символа, следующего после знака *
^R римский числа как в "Уровень VIII", которые обычно используются в SNG-турнирах
^L индикатор лимитов

У целочисленных значений и значений с плавающей запятой программа автоматически фильтрует символ $ в начале и символ ¢ (ascii 162 hex a2) в начале или конце. Если используется символ ¢, то итоговое число будет разделено на 100. Также автоматический распознаются стандартные метрические множители k и m (1000 и 1000000 соответственно).

Для индикатора лимитов ^L используются следующие (не чувствительные к регистру) строки:
no limit, no-limit, nolimit, nl
pot limit, pot-limit, potlimit, pl
fixed limit, fixed-limit, fixedlimit, fl, limit

Пример: для отображения в заголовке онка текста "NL SNG Level VI 25/50 (2)" можно использовать такую строку форматирования "^L SNG Level ^R ^s/^b (^a)", которая выводит иформацию о блайндах и типе игры.

Если вы используете несклько символов ttlimits, то программа просканирует каждый из них по порядку и извлечет информацию только из первого нахождения. То есть, если вы используете placeholder ^s в обоих tlimits и tlimits3, то значение будет извлечено только из tlimits, а в tlimits3 проигнорировано.
Вы можете использовать до 11 символов tlimits на каждый файл Table Map. Использование нескольких tlimits может быть необходимо когда один файл Table Map используется для описания нескольких игр. Однако, лучше использовать свой Table Map для каждой отдельной игры. Таким образом в каждом файле Table Map будет содержаться только один символ ttlimits.

c0limits, c0limits0-c0limits9

Это текстовый формат строки с той же структурой, как и ttlimits записи, описанные выше. Они предназначены для извлечения слепой/путевой информации от c0limits регионов с помощью текстовых преобразований. Как покерный сайт, безусловно, может краской различных слепой/лимит информацию в разных местах в окно, весьма вероятно, что несколько c0limits записи необходимы, если таковые будут необходимы.
translate.yandex.ru — Автоматический перевод текста

network

Имя покерной сети соответствующей этому Table Map'у. Оно используется для определения сети для запроса данных Poker Tracker'ом тогда когда сайт, записанный в s$sitename не поддерживается Poker Tracker'ом. OpenHoldem сначала проверяет s$sitename и если записанный там сайт не поддерживается, то он проверяет запись s$network.

Записи s$sitename и s$network должны быть записаны в нижнем регистре и могут быть следующими: stars, party, ultimate, absolute, microgaming, ongame, cryptologic, pacific, fulltilt, b2b, tribeca, worldpex, ipoker, tain, bodog, everest, boss и betfair.

nchairs

Это количество мест за столом которое поддерживает данная Table Map. Значение этой записи тоже что возвращается в переменной "nchairs" в OpenHoldem.

t0type - t3type

Этот символ контролирует какой OCR алгоритм будет использован для определенного Text0-Text3 преобразования текста. Для примера если символ t3type определен как fuzzy (нечеткий, размытый) тогда все области с трансформацией текста Text3 будут использовать fuzzy алгоритм. По умолчанию значение "plain" (простой) если не создано символов этой группы.

Возможные значения для этих символов это "fuzzy", "plain" или специальное значение толерантности. По умолчанию fuzzy значение толерантности текста 25%, но можно переопределить это значение в этом символе, например на "0.355", что будет означать движок скрапера будет использовать fuzzy алгоритм со значением 35.5% толерантности. Значение ноль это тоже самое что и "plain".

swagselectionmethod

* Новый символ в версии 2.0, ранее это были глобальные настройки в интерфейсе OpenHoldem.

Этот символ инструктирует Автоплеер как делать первое действие в SWAG последовательности.
SWAG последовательность состоит из:
1. выделить текст в SWAG области
2. удалить текст в SWAG области
3. ввести текст в SWAG области
4. подтвердить ставку введенную в SWAG область.

Возможные значения для этого символа:
"Sgl Click" - Одиночный левый клик на SWAG области для выделения имеющегося текста.
"Dbl Click" - Двойной левый клик на SWAG области для выделения имеющегося текста.
"Click Drag" - Левый клик на самом левом пикселе SWAG области, перетягивание к самому правому пикселю SWAG области, и потом реализуется левый клик мышки для выделения получившегося текста.
"Nothing" - Пропустить шаг выделение текста в SWAG последовательности

swagdeletionmethod

* Новый символ в версии 2.0, ранее это были глобальные настройки в интерфейсе OpenHoldem.

Этот символ инструктирует Автоплеер как делать второе действие в SWAG последовательности.
SWAG последовательность состоит из:
1. выделить текст в SWAG области
2. удалить текст в SWAG области
3. ввести текст в SWAG области
4. подтвердить ставку введенную в SWAG область.

Возможные значения для этого символа:
"Delete" - Нажатие клавиши "Delete" на клавиатуре чтобы удалить выделенный текст в SWAG области.
"Backspace" - Нажатие клавиши "Backspace" на клавиатуре чтобы удалить выделенный текст в SWAG области.
"Nothing" - Пропустить шаг удаления текста в SWAG последовательности

swagconfirmationmethod

* Новый символ в версии 2.0, ранее это были глобальные настройки в интерфейсе OpenHoldem.

Этот символ инструктирует Автоплеер как делать четвертое действие в SWAG последовательности.
SWAG последовательность состоит из:
1. выделить текст в SWAG области
2. удалить текст в SWAG области
3. ввести текст в SWAG области
4. подтвердить ставку введенную в SWAG область.

Возможные значения для этого символа:
"Enter" - Нажатие клавиши "Enter" на клавиатуре для подтверждения введенной ставки.
"Click Bet" - Нажатие кнопки "Bet" для подтверждения введенной ставки
"Nothing" - Пропустить подтверждения ставки в SWAG последовательности

4.5 Записи региона (Region Records)

Описание

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

Пример должен разъяснить это более четко. Каждый игрок за столом имеет по две карты перед собой, мы хотим, чтобы скрепер сообщил движку состояния, что это за карты. Если покер-клиент отображает группу пикселей нашей первой карманной карты которая человеку видится как червовый туз, нам так или иначе надо объяснить скреперу что каждый раз когда такая группа пикселей замечена в одном из расположении карт то необходимо "возвратить" движку состояния "Ah" (Туз черви). Для этого мы подготавливаем изображение червонного туза и устанавливаем запись региона возвращающую "Ah" при обнаружении червонного туза во время реальной игры.

Управление записями региона в OpenScrape

Рисунок 4.5 11 OpenScrape Группа элементов Rectangle (Прямоугольник)

Рисунок 4.5 14 OpenScrape Параметры записи региона

Рисунок 4.5 15 OpenScrape Просмотр результата преобразования

Технический справочник

В Table Map файле (.tm), эти записи начинаются с символов "r$". Записи регионов имеют следующий формат:

r$<name> <left> <top> <right> <bottom> <color> <radius> <transform>

<name> это название региона (смотри таблицу ниже)
left> <top> <right> и <bottom> это целые значение на столе казино, где верхний левый угол клиентской области окна имеет значение 0,0
<color> это от 1 до 8 символов числа в шестнадцатеричном(запись как текст) формате вида AABBGGRR (формат Microsoft Window's COLORREF)
<radius> это цветовая RGB дистанция
<transform> описывает алгоритм движка который будет использован для преобразования пикселей данного региона.

Возможные варианты <transform>:

N

None (отсутствует) - Этот вариант используется для регионов которым не нужно преобразование, описывается прямоугольник для движка скрапера (scraper engine). Для примера это расположение кнопок (i0button - i9button) которые сообщают движку Автоплеера (Autoplayer engine) в какой прямоугольник кликать мышкой.

C

Color (Цвет) - Это результат вычисления среднего RGB цвета для выбранного региона. Используется в связке с radius (радиусом), движок определяет соответствует ли содержимое региона видимое во время игры, color/radius (цвету/радиусу) описанному в Table Map (Карте Стола). Значение цвета в записи региона определяет центр куба, а радиус определяет размер куба. Этот куб располагается в пространстве цветов RGB, и если средний цвет региона попадает в этот куб, сообщается о соответствие. Можно определить отрицательный радиус, в этом случае если средний цвет региона попадает за пределы этого куба, сообщается о соответствие.

I

Image (картинка) - Это преобразование делает две вещи. Первая это поиск записи картинка в Table Map (Карта Стола) для по пиксельного сравнения, если совпадение найдено то возвращается значение этой записи картинки. Если по пикслельное сравнение не дало результата, преобразователь последний раз ищет совпадение, основанное на алгоритме восприятия различий: http://pdiff.sourceforge.net/ Это жестко зашитый алгоритм, на поиск соответствия региона, если 65% или более имеющихся пикселей не совпадают. Если и тут совпадение не найдено, тогда результат анализа может выдать различного рода мусор.
Pdiff алгоритм работает автоматически, и не требует дополнительной работы от создателя Table Map кроме как выбрать преобразование I и сохранить картинку. Это мощное преобразование, но будьте уверены в мощной стоимости необходимых циклов процессора.

T

Text (Текст) - Это алгоритм OCR (http://en.wikipedia.org/wiki/Optical_character_recognition) для преобразование пикселей на экране в ASCII текст. Спецификация цветового куба (такая же как и в C преобразовании) используется для выделения пикселей переднего фона от пикселей заднего фона. Используется просмотр записей шрифтов (Font records) в Table Map символ за символом для получения результирующей текстовой строки.

Допустимые Записи региона и их описание:

i0button - i9button

Определяют прямоугольную область куда может кликать мышкой Автоплеер для каждой кнопки 0-9.

i3edit

Определяет прямоугольную область SWAG в которой можно ввести ставку.

4.6 Записи шрифта (Font Records)

Описание

Управление записями шрифта в OpenScrape

Технический справочник

Описание

Технический справочник

Технический справочник

Описание

Технический справочник

Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод

Переведено на Нотабеноиде
http://notabenoid.org/book/28890/99052

Переводчики: myCrack, tranee, mitya_k, prefer211

sammasati, Panteley22

Настройки

Готово:

40.80% КП = 1.0

Непереведённые фрагменты будут пропущены.