III. Скриптовый язык Lua и его использование в программе
Для задания расчетных значений используется скриптовый язык Lua. Общий принцип работы такой: из программы в скрипт передаётся несколько необходимых значений, с помощью скрипта программа делает необходимые вычисления и возвращает результат, который в дальнейшем отображается в интерфейсе.
Что же такое Lua? Lua — язык программирования, предназначенный для встраивания в другие приложения, чтобы дать их пользователям возможность писать конфигурационные скрипты и высокоуровневые сценарии. Lua поддерживает процедурный, объектный и функциональный стили программирования, но является в то же время простым языком.
В интернете достаточно много ресурсов с описанием синтаксиса Lua, поэтому в данном документе он не будет описываться, а посмотреть его можно, например, на этом сайте или здесь.
Файл со скриптом называется script.lua и находится в той же папке, где и файл MiniLuaFormulaTimer.exe. Программа из скрипта вызывает функцию myFunc(dSB,dBB,dMoney,nHands,nCur,nSec). Название функции и параметры менять нельзя, иначе программа работать не будет! Всё остальное менять можно.
В скобках указаны параметры, которые можно использовать в своих расчетах:
- dSB – размер малого блайнда (в центах);
- dBB – размер большого блайнда (в центах);
- dMoney – сколько денег Вы выиграли/проиграли за nHands (в долларах )
- nHands – количество рук используемых в подсчёте dMoney (как правило nHands = 1 раздача)
- nCur – валюта (целое число для обозначения валюты), в которой была данная раздача (0 – USD, 1 – EUR, 2 - GBP);
- nSec – общее игровое время за сессию в секундах (оно же выводится в верхней строке окна программы).
Примеры рабочих скриптов, которые можно использовать в нашей программе. Во всех скриптах используются следующие функции: playmusicfile – проигрывает звуковой файл, roundh – округляет число до сотых.
Пример 1. Ведёт подсчёт денег за текущую сессию и выдает звуковой сигнал, когда выходим за рамки заданных значений (Рис. 6Б).
function playmusicfile(filename) |
Пример 2. Ведём подсчёт винрейта (количество ББ на 100 рук) за текущую сессию и выдаем звуковой сигнал, когда выходим за рамки заданных значений
function playmusicfile(filename) -- create an audio device using default parameters and exit in case of errors |
Результаты видны на следующем рисунке
Рис.7 Винрейт и количество денег, посчитанное по одновременно запущенной программе MiniMoneyTimer
Пример 3. Ведём подсчёт денег и винрейта одновременно за текущую сессию (Рис. 6Б).
function playmusicfile(filename) |
Результаты (для играемого лимита NL10) видны на следующем рисунке
Рис.8 Винрейт и количество денег
Здесь также видим, что для вывода результатов отведено две строки. Именно этот скрипт будет у Вас в скачанном архиве вместе с файлом программы и библиотеками. Хотелось бы отметить, что без установки дополнительных библиотек, через Lua проигрываются только файлы *.ogg. Для конвертации звуковых файлов в этот формат можно воспользоваться каким-нибудь конвертером звуковых файлов, например этим.