Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: Нужно, чтобы введенный текст записался в переменную
Kostick
Отправлено: 18 Января, 2022 - 16:21:54
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 184
Дата рег-ции: Авг. 2020  
Репутация: 1




Допустим есть диалоговое окно, где предлагают ввести в поле число, после соответственно начать запуск. Нужно, чтобы это чисто записалось в переменную.
Например, я хочу ввести чисто 70, и нужно, чтобы стало по смыслу как int x=70;
Я хочу это сделать, чтобы менять область поиска изображения не останавливая бота, т.е. чтобы я вводил x и y, и область поиска менялась. Для удобства я хотел просто вывести значения переменных на экран через TextOut. Но и без него я пробовал, та же ошибка.

Я попытался это сделать, но выдает ошибку:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Алгоритм в визуальном редакторе:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Сам код:
CODE:
int X_nach; // Начальные координаты области по X
int Y_nach; // Начальные координаты области по Y
int X_ogr; // Конечные координаты области по X
int Y_ogr; // Конечные координаты области по X


int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];

pos_size_button0[0][0]=121; pos_size_button0[0][1]=136; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="Запуск бота";

//////////

int pos_size_edit0[4][4];
string text_edit0[4];

pos_size_edit0[0][0]=57; pos_size_edit0[0][1]=25; pos_size_edit0[0][2]=83; pos_size_edit0[0][3]=20;
pos_size_edit0[1][0]=57; pos_size_edit0[1][1]=51; pos_size_edit0[1][2]=82; pos_size_edit0[1][3]=20;
pos_size_edit0[2][0]=243; pos_size_edit0[2][1]=23; pos_size_edit0[2][2]=100; pos_size_edit0[2][3]=19;
pos_size_edit0[3][0]=244; pos_size_edit0[3][1]=49; pos_size_edit0[3][2]=100; pos_size_edit0[3][3]=20;
text_edit0[0]="470"; text_edit0[1]="70"; text_edit0[2]="1555"; text_edit0[3]="917";

//////////

int pos_size_static0[6][4];
string text_static0[6];

pos_size_static0[0][0]=8; pos_size_static0[0][1]=3; pos_size_static0[0][2]=168; pos_size_static0[0][3]=17;
pos_size_static0[1][0]=17; pos_size_static0[1][1]=27; pos_size_static0[1][2]=36; pos_size_static0[1][3]=19;
pos_size_static0[2][0]=16; pos_size_static0[2][1]=52; pos_size_static0[2][2]=37; pos_size_static0[2][3]=22;
pos_size_static0[3][0]=190; pos_size_static0[3][1]=4; pos_size_static0[3][2]=176; pos_size_static0[3][3]=17;
pos_size_static0[4][0]=193; pos_size_static0[4][1]=25; pos_size_static0[4][2]=46; pos_size_static0[4][3]=20;
pos_size_static0[5][0]=193; pos_size_static0[5][1]=51; pos_size_static0[5][2]=44; pos_size_static0[5][3]=20;
text_static0[0]="Введите Начальные координаты"; text_static0[1]="X_нач"; text_static0[2]="Y_нач"; text_static0[3]="Введите Конечные координаты"; text_static0[4]="X_конеч"; text_static0[5]="Y_конеч";

//////////

createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0] |
STATIC, #pos_size_static0[0][0], #text_static0[0]);
//////////

showdialog(0, "




Диалог", 291, 347, 376, 210, 1, 1);
//////////

Запуск бота();
text_edit0[0]=X_nach;
text_edit0[1]=Y_nach;
text_edit0[2]=X_ogr;
text_edit0[3]=Y_ogr;
TextOut(0, X_nach, 0, 1500, 100, 0, 16777215);
TextOut(0, Y_nach, 0, 1500, 120, 0, 16777215);
TextOut(0, X_ogr, 0, 0, 0, 0, 16777215);
TextOut(0, Y_ogr, 0, 0, 0, 0, 16777215);
goto KIB_Exit;
KIB_Exit:;

function Запуск бота()
{
loop()
{
goto KIB_4;
KIB_7:;
return;
goto KIB_Exit;
KIB_5:;
sleep(10);
goto KIB_C3;
KIB_4: if(flag_button0[0]==1) goto KIB_7;
goto KIB_5;
KIB_C3:
}
goto KIB_Exit;
KIB_Exit:;
}

function TextOut(int n, string text, int o, int x, int y, int colt, int colf)
{
textbkcolor (colt,colf);
textout(n, x, y, text, o);
}



(Отредактировано автором: 18 Января, 2022 - 16:29:48)

 
 Top
neba2101
Отправлено: 18 Января, 2022 - 20:15:04
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 154
Дата рег-ции: Февр. 2017  
Репутация: 4




Не шарю в блоках, но вот этот код явно неверный:
CODE:
text_edit0[0]=X_nach;
text_edit0[1]=Y_nach;
text_edit0[2]=X_ogr;
text_edit0[3]=Y_ogr;


text_edit0[0] - СТРОКА, в которой храниться текст после надписи X_нач в меню.
X_nach - int

CODE:

X_nach=formatsn(text_edit0[0]);
 
 Top
ivantu
Отправлено: 18 Января, 2022 - 20:41:28
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




CODE:

Запуск бота();
X_nach=formatsn(text_edit0[0]);
Y_nach=formatsn(text_edit0[1]);
X_ogr=formatsn(text_edit0[2]);
Y_ogr=formatsn(text_edit0[3]);

//Выводим в сообщении полученные данные, можно удалить
messagebox("X_nach="+format(X_nach)+" Y_nach="+format(Y_nach)+" X_ogr="+format(X_ogr)+" Y_ogr="+format(Y_ogr));
 
 Top
Zireael
Отправлено: 19 Января, 2022 - 01:34:25
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
TextOut(0, X_nach, 0, 1500, 100, 0, 16777215);

Чтобы вывести переменную int в textout:
 Цитата:
TextOut(0, format(X_nach), 0, 1500, 100, 0, 16777215);
 
 Top
Kostick
Отправлено: 19 Января, 2022 - 08:23:34
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 184
Дата рег-ции: Авг. 2020  
Репутация: 1




Да, это помогло. Просто я пробовал formatsn и format по отдельности, а оказывается надо было вместе. Спасибо.
Но тут возник новый момент, не понятный для меня. Когда я запускаю код, появляется диалоговое окно. Когда я меняю значения и нажимаю "Запуск бота", то числа возвращаются к начальным в полях ввода. Что надо добавить, чтобы числа в поле ввода в диалоговом окне обновлялись соответственно тем значениям, что я ввел?
Просто после всех преобразований значений я не знаю, как преобразовать "X_nach" снова в string.
Я так понимаю, это надо делать, через sendcontrol, но все еще путаюсь с форматами.

(Отредактировано автором: 19 Января, 2022 - 08:31:48)

 
 Top
Kibor
Отправлено: 19 Января, 2022 - 08:40:28
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Ввести в X_nach 1000 в диалоговом окне
Скрипт имеет основной цикл работы, который не останавливается.

CODE:
int X_nach; // Начальные координаты области по X
int Y_nach; // Начальные координаты области по Y
int X_ogr; // Конечные координаты области по X
int Y_ogr; // Конечные координаты области по X


int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];

pos_size_button0[0][0]=121; pos_size_button0[0][1]=136; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="Запуск бота";

//////////

int pos_size_edit0[4][4];
string text_edit0[4];

pos_size_edit0[0][0]=57; pos_size_edit0[0][1]=25; pos_size_edit0[0][2]=83; pos_size_edit0[0][3]=20;
pos_size_edit0[1][0]=57; pos_size_edit0[1][1]=51; pos_size_edit0[1][2]=82; pos_size_edit0[1][3]=20;
pos_size_edit0[2][0]=243; pos_size_edit0[2][1]=23; pos_size_edit0[2][2]=100; pos_size_edit0[2][3]=19;
pos_size_edit0[3][0]=244; pos_size_edit0[3][1]=49; pos_size_edit0[3][2]=100; pos_size_edit0[3][3]=20;
text_edit0[0]="470"; text_edit0[1]="70"; text_edit0[2]="1555"; text_edit0[3]="917";

//////////

int pos_size_static0[6][4];
string text_static0[6];

pos_size_static0[0][0]=8; pos_size_static0[0][1]=3; pos_size_static0[0][2]=168; pos_size_static0[0][3]=17;
pos_size_static0[1][0]=17; pos_size_static0[1][1]=27; pos_size_static0[1][2]=36; pos_size_static0[1][3]=19;
pos_size_static0[2][0]=16; pos_size_static0[2][1]=52; pos_size_static0[2][2]=37; pos_size_static0[2][3]=22;
pos_size_static0[3][0]=190; pos_size_static0[3][1]=4; pos_size_static0[3][2]=176; pos_size_static0[3][3]=17;
pos_size_static0[4][0]=193; pos_size_static0[4][1]=25; pos_size_static0[4][2]=46; pos_size_static0[4][3]=20;
pos_size_static0[5][0]=193; pos_size_static0[5][1]=51; pos_size_static0[5][2]=44; pos_size_static0[5][3]=20;
text_static0[0]="Введите Начальные координаты"; text_static0[1]="X_нач"; text_static0[2]="Y_нач"; text_static0[3]="Введите Конечные координаты"; text_static0[4]="X_конеч"; text_static0[5]="Y_конеч";

//////////

createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0] |
STATIC, #pos_size_static0[0][0], #text_static0[0]);
//////////

showdialog(0, "Диалог", 291, 347, 376, 210, 1, 1);

enabletimer(0);
//////////
Read_Par();
//Основной цикл бота
loop()
{
if (X_nach==1000) messagebox ("X_nach = 1000");
beep(1000, 55);
sleep(100);
}

function TextOut(int n, string text, int o, int x, int y, int colt, int colf)
{
textbkcolor (colt,colf);
textout(n, x, y, text, o);
}

function Read_Par()
{
X_nach=formatsn(text_edit0[0]);
Y_nach=formatsn(text_edit0[1]);
X_ogr=formatsn(text_edit0[2]);
Y_ogr=formatsn(text_edit0[3]);
resettextout(1);
TextOut(0, format(X_nach), 0, 10, 10, 0, 16777215);
TextOut(1, format(Y_nach), 0, 10, 30, 0, 16777215);
TextOut(2, format(X_ogr), 0, 10, 50, 0, 16777215);
TextOut(3, format(Y_ogr), 0, 10, 70, 0, 16777215);
}


CREATE_TIMER(0, 100)//Номер таймера, выполнение таймера через мсек.
{
if(flag_button0[0]==1)
{
flag_button0[0]=0;
Read_Par();
}
}
 
 Top
Kostick
Отправлено: 19 Января, 2022 - 12:24:15
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 184
Дата рег-ции: Авг. 2020  
Репутация: 1




Спасибо, это помогло.
А как можно реализовать паузу?
Допустим, есть код, который выполняет движения мышки, поэтому использовать диалоговое окно во время работы возможности нет, и нужно поставить код на паузу, например, при нажатии клавиши q.
Я попытался реализовать эту функцию. Добавил переменную "int n_pause=0;" и проверку, если int n_pause=0; делай код дальше, иначе спи 100 мс. Добавил таймер если наживается кнопка q, то меняй int n_pause=1; иначе ничего не делай. И добавил кнопку "Продолжить в диалоговом окне".
Но когда запускаю этот код, выдает ошибку:(для просмотра ссылки Вам необходимо авторизоваться) Сам алгоритм в визуальном редакторе:(для просмотра ссылки Вам необходимо авторизоваться) Может есть другой способ реализовать паузу?

(Отредактировано автором: 19 Января, 2022 - 12:44:14)

 
 Top
Kibor
Отправлено: 19 Января, 2022 - 12:40:59
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Kostick пишет:
А еще не подскажете, как обычно реализовывается функция паузы в диалоговом окне?


CODE:
int X_nach; // Начальные координаты области по X
int Y_nach; // Начальные координаты области по Y
int X_ogr; // Конечные координаты области по X
int Y_ogr; // Конечные координаты области по X


int pos_size_button0[2][4];
string text_button0[2];
int flag_button0[2];

pos_size_button0[0][0]=121; pos_size_button0[0][1]=136; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="Запуск бота";
pos_size_button0[1][0]=10; pos_size_button0[1][1]=136; pos_size_button0[1][2]=100; pos_size_button0[1][3]=20;
text_button0[1]="Пауза";

//////////

int pos_size_edit0[4][4];
string text_edit0[4];

pos_size_edit0[0][0]=57; pos_size_edit0[0][1]=25; pos_size_edit0[0][2]=83; pos_size_edit0[0][3]=20;
pos_size_edit0[1][0]=57; pos_size_edit0[1][1]=51; pos_size_edit0[1][2]=82; pos_size_edit0[1][3]=20;
pos_size_edit0[2][0]=243; pos_size_edit0[2][1]=23; pos_size_edit0[2][2]=100; pos_size_edit0[2][3]=19;
pos_size_edit0[3][0]=244; pos_size_edit0[3][1]=49; pos_size_edit0[3][2]=100; pos_size_edit0[3][3]=20;
text_edit0[0]="470"; text_edit0[1]="70"; text_edit0[2]="1555"; text_edit0[3]="917";

//////////

int pos_size_static0[6][4];
string text_static0[6];

pos_size_static0[0][0]=8; pos_size_static0[0][1]=3; pos_size_static0[0][2]=168; pos_size_static0[0][3]=17;
pos_size_static0[1][0]=17; pos_size_static0[1][1]=27; pos_size_static0[1][2]=36; pos_size_static0[1][3]=19;
pos_size_static0[2][0]=16; pos_size_static0[2][1]=52; pos_size_static0[2][2]=37; pos_size_static0[2][3]=22;
pos_size_static0[3][0]=190; pos_size_static0[3][1]=4; pos_size_static0[3][2]=176; pos_size_static0[3][3]=17;
pos_size_static0[4][0]=193; pos_size_static0[4][1]=25; pos_size_static0[4][2]=46; pos_size_static0[4][3]=20;
pos_size_static0[5][0]=193; pos_size_static0[5][1]=51; pos_size_static0[5][2]=44; pos_size_static0[5][3]=20;
text_static0[0]="Введите Начальные координаты"; text_static0[1]="X_нач"; text_static0[2]="Y_нач"; text_static0[3]="Введите Конечные координаты"; text_static0[4]="X_конеч"; text_static0[5]="Y_конеч";

//////////

createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0] |
STATIC, #pos_size_static0[0][0], #text_static0[0]);
//////////

showdialog(0, "Диалог", 291, 347, 376, 210, 1, 1);


enabletimer(0);
//////////
Read_Par();
//Основной цикл бота
loop()
{
if (X_nach==1000) messagebox ("X_nach = 1000");
beep(1000, 55);
sleep(100);
}

function TextOut(int n, string text, int o, int x, int y, int colt, int colf)
{
textbkcolor (colt,colf);
textout(n, x, y, text, o);
}

function Read_Par()
{
X_nach=formatsn(text_edit0[0]);
Y_nach=formatsn(text_edit0[1]);
X_ogr=formatsn(text_edit0[2]);
Y_ogr=formatsn(text_edit0[3]);
resettextout(1);
TextOut(0, format(X_nach), 0, 10, 10, 0, 16777215);
TextOut(1, format(Y_nach), 0, 10, 30, 0, 16777215);
TextOut(2, format(X_ogr), 0, 10, 50, 0, 16777215);
TextOut(3, format(Y_ogr), 0, 10, 70, 0, 16777215);
}


CREATE_TIMER(0, 100)//Номер таймера, выполнение таймера через мсек.
{
if(flag_button0[0]==1)
{
flag_button0[0]=0;
Read_Par();
}

//////////////
if(flag_button0[1]==1)
{
flag_button0[1]=0;
text_button0[1]="Продолжить";
while(flag_button0[1]==0)sleep(10);//Цико паузы пока опять не нажмем кнопку
flag_button0[1]=0;
text_button0[1]="Пауза";
}
/////////////
if (getkeystate(65))//Пауза с помощью нажатия кнопки A на клавиатуре
{
while(getkeystate(65))sleep(10);
text_button0[1]="Продолжить";
while(getkeystate(65)==0)sleep(10);
while(getkeystate(65))sleep(10);
text_button0[1]="Пауза";
}

}
 
 Top
Kostick
Отправлено: 19 Января, 2022 - 12:47:08
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 184
Дата рег-ции: Авг. 2020  
Репутация: 1




Случайно отредактировал сообщение выше, оставив только вопрос о паузе. Пока писал заново, вы уже ответили. Сейчас попробую
(Добавление)
А, это если мышкой можно управлять. Тогда немного не то. Прошу прощения, можете показать, как реализовать паузу по нажатию клавиши?
 
 Top
Kibor
Отправлено: 19 Января, 2022 - 12:53:58
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Kostick пишет:
Прошу прощения, можете показать, как реализовать паузу по нажатию клавиши?

Отредактировал предыдущий скрипт.
Паузу можно ставить или нажав мышью на паузу кнопку или нажав A на клавиатуре.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by