А как насчет графического определения бафов , по уникальным пикселям ?
Я такое делал для поиска по инвентарю определенных предметов, по двум или трем пикселям, с занесением их в массив. Думаю и для линейки подобное может сработать. Просто поочередно проверяешь слоты бафов, по 2 или 3 пикселя в каждом слоте,а потом все это заносишь в двумерный массив и сравниваешь с заранее сохраненным.
скрипт
set #ryX 789 //начальная Х
set #ryY 127 //начальная Y
set #ryS 12 //(количество провер. слотов в линии)
set #ryXE #ryX + 51 * #ryS //конечная X
for #ry #ryX #ryXE 52 //перебераем слоты
set #p #p + 1 //Отсчитываем номер проверки
for #t 1 2 //Перебераем точки в слоте
set #x1 #ry + 17 * #t
set #y1 #ryY + 25
//move #x1, #y1
get color #c #x1, #y1
set %inv [#p #t] #c
end_for
end_for
save_array %inv C:\_Bot1.2\id.txt
end_script
Вот часть кода моего скрипта, если изменить циферки на правильные для линейки, то думаю можно определять бафы, по их картинкам. Главное изменить точный размер картинки бафа и растояние между картинками в пикселях. Это будет работать только если картинки бафов и растояние между ними одинаковые, что чаще всего и бывает, и вродебы для линейки оно тоже подходит.
Скрипт будет выдавать чтото типа этого.
результат
2565944 2167
1644931 2764454
1394425 67403
4800322 138934
2309778 1984948
403188 68192
962904 75795
8353636 15156609
3616826 5399489
3827177 545266
это коды цветов точек, в каждом квадрате, и даже если одна совпадет, то две врятли, а если 2 мло то можешь сделать сравнение по трем, три уж точно не совпадет. И в итоге получим уникальный идентификатор для каждого бафа. А потом только сравнивай с такимиже. Чтобы проверить работу просто наложи бафы в другом порядке, позиции должны поменяться но коды цвета остаться теми же.