Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Восстановление хп

Страниц (1): [1]
 

1. Budni - 16 Января, 2019 - 13:25:28 - перейти к сообщению
Как сделать логику в скрипте?
У меня есть кол-во хп - через распознование текства я определяю его количество. К примера ХП 1000, как только ХП станет < 900 то нажать Enter.
Как записать это в виде кода?
2. Kibor - 16 Января, 2019 - 13:26:56 - перейти к сообщению
3. Zireael - 16 Января, 2019 - 13:43:35 - перейти к сообщению
CODE:
string Text="890"; // распознанное хп

if(formatsn(Text)<900) // если меньше 900
{
messagebox("ХП меньше 900");
}
4. Budni - 19 Января, 2019 - 09:02:22 - перейти к сообщению
Ещё вопрос по логике, почему не работает?
CODE:
string text_KIB;
loadsymbolbase("C:\Users\budni\Desktop\Bot`s\kibor_set\basetext.sib");

readtext(RU | EN, #text_KIB, 8, 1, -1, -1, -1, -1, -1, 0, -1, 19, 29, 149, 41, -1);

if (text_KIB==top){messagebox(1);}
if (text_KIB==bot){messagebox(2);}
if (text_KIB==lot){messagebox(3);}
if (text_KIB==hop){messagebox(4);}
if (text_KIB==loof){messagebox(5);}

смысл в том что редтекст распознает слова, в зависимости от слова должен показать сообщение
(Добавление)
И ещё можно ли как то визуально посмотреть зону сканирования текста? Чтобы проверить правильно ли указал область?
5. Zireael - 19 Января, 2019 - 09:16:12 - перейти к сообщению
 Цитата:
if (text_KIB==top){messagebox(1);}

Текст указывается в кавычках.
 Цитата:
if (text_KIB=="top"){messagebox(1);}

(Добавление)
 Цитата:
можно ли как то визуально посмотреть зону сканирования текста?

CODE:
int sx=19, sy=29, fx=149, fy=41; // координаты readtext

new int xx[fx-sx+1][1]; // массив для горизонтальной линии в 1 пиксель
new int yy[1][fy-sy+1]; // массив для вертикальной линии в 1 пиксель
int i;
for(i=0; i<fx-sx; i++)xx[i][0]=255; // заполнить массив
for(i=0; i<fy-sy; i++)yy[0][i]=255; // заполнить массив


visual(); // вывести 4 линии

loop()
{
// скрипт
sleep(100);
}


function visual()
{
visualwindow(0, 0, 0, sizearray(xx), 1, sx, sy , 100, #xx[0][0]);
visualwindow(1, 0, 0, sizearray(xx), 1, sx, fy , 100, #xx[0][0]);
visualwindow(2, 0, 0, 1, sizearray(yy[]), sx, sy, 100, #yy[0][0]);
visualwindow(3, 0, 0, 1, sizearray(yy[]), fx, sy, 100, #yy[0][0]);
}
6. Budni - 19 Января, 2019 - 10:18:20 - перейти к сообщению
Zireael , Шикарно, спасибо!!! Прям всё как надо теперь работает. И ещё можно визуально линии начертить в контроле и окне?
7. Zireael - 19 Января, 2019 - 11:48:07 - перейти к сообщению
 Цитата:
И ещё можно визуально линии начертить в контроле и окне?

Прибавить к координатам вывода изображения координаты окна или контрола.
 Цитата:
visualwindow(0, 0, 0, sizearray(xx), 1, sx+w.left, sy+w.top, 100, #xx[0][0]); // + позиция окна

 Цитата:
visualwindow(0, 0, 0, sizearray(xx), 1, sx+w.leftclient, sy+w.topclient, 100, #xx[0][0]); // + позиция клиента

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

Powered by ExBB FM 1.0 Final