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

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

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

> Описание: Создание интерфейса, взаимодействие с кодом
bj0rn.bj0rnson
Отправлено: 22 Мая, 2024 - 17:11:17
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2024  
Репутация: 0




Здравствуйте!
Можете ли Вы подсказать мне как реализовать окно ввода текста/числа для дальнейшего применения его в коде?

перед стартом скрипта я бы хотел иметь возможность набрать текст в поле для ввода (EDIT_1), а после использовать это например в блоке KEY вместо заранее введённого текста.
Я так подозреваю нужно обьявить какие-то переменные.. умничать не буду, прошу помощи.


в этом примере скрипт делает клик в нужном поле (активирует его, в игре)
а после вводит текст в это окно

вот на всякий случай ссылка на этот образец в визуальном редакторе, если удобно:(для просмотра ссылки Вам необходимо авторизоваться) Ниже код. Спасибо за уделённое время!


win W_Kib;
int Size_Key_Char_Kib = -1;

INITDIALOG

{

sendcontrol(EDIT_0, individualcode());

}







CREATE_INTERFACE

{

DIALOG "ROBO-BJORN" 237 180

BUTTONSCRIPT "Запустить" 125 121 100 25

STATIC_0 "Ключ" 10 10 90 18

STATIC_1 "Остановить: CTRL+SHIFT+Z" 124 84 100 30
STATIC_2 "сюда ввести" 10 60 90 18

EDIT_0 "" 105 8 120 18
EDIT_1 "" 90 60 50 20

}

Mouse(0, #W_Kib, W_Kib.leftclient, W_Kib.topclient, 1000, 900, 100, "Левую клик", 1000);
Key(0, W_Kib, 0, 0, "здесь получить", "Ввод текста", 0);

function Key(int ew, win w, int p1, int c, string text, string k, int p2)
{
pause(p1);
if (ew==0)
{
if (k=="Клик"){key(c); goto hy;}
if (k=="Нажать"){keydown(c); goto hy;}
if (k=="Отпустить"){keyup(c); goto hy;}
if (k=="Ввод текста"){key(text, 0, 1, getwindow()); goto hy;}
}
if (ew==1)
{
if (k=="Клик"){if ((c>191 && c<256) || c==168 || c==184) sendlanguage("00000419", formatiw(gethwnd())); sendmessage(WM_CHAR, c, 1, w); goto hy;}
if (k=="Нажать"){sendkeydown(c, w); goto hy;}
if (k=="Отпустить"){sendkeyup(c, w); goto hy;}
if (k=="Ввод текста")
{
if (Size_Key_Char_Kib==-1)
{
Size_Key_Char_Kib=100;
new char Key_CHAR[Size_Key_Char_Kib+1];
}
int size_key=size(text);
if (Size_Key_Char_Kib<size_key)
{
delete Key_CHAR;
Size_Key_Char_Kib=size_key;
new char Key_CHAR[Size_Key_Char_Kib+1];
}
strcpy(#Key_CHAR[0], text);
for (int n=0; n<size_key; n++)
{
if ((Key_CHAR[n]>191 && Key_CHAR[n]<256) || Key_CHAR[n]==168 || Key_CHAR[n]==184) sendlanguage("00000419", formatiw(gethwnd()));
sendmessage(WM_CHAR, Key_CHAR[n], 1, w);
sleep(20);
}
}
}
hy: pause (p2);
}

function Mouse(int ew, win #w, int v_x, int v_y, int p1, int x, int y, string m, int p2)
{
pause(p1);
if (ew==0 || ew==1)
{
if (ew==1){x=v_x+x; y=v_y+y;}
if (m=="Левую клик"){mouse(LEFT, x, y); goto hy;}
if (m=="Среднюю клик"){mouse(MIDDLE, x, y); goto hy;}
if (m=="Правую клик"){mouse(RIGHT, x, y); goto hy;}
if (m=="Левую нажать"){mousedown(LEFT, x, y); goto hy;}
if (m=="Среднюю нажать"){mousedown(MIDDLE, x, y); goto hy;}
if (m=="Правую нажать"){mousedown(RIGHT, x, y); goto hy;}
if (m=="Левую отпустить"){mouseup(LEFT, x, y); goto hy;}
if (m=="Среднюю отпустить"){mouseup(MIDDLE, x, y); goto hy;}
if (m=="Правую отпустить"){mouseup(RIGHT, x, y); goto hy;}
if (m=="Левая двойной клик"){mousedbl(LEFT, x, y); goto hy;}
if (m=="Средняя двойной клик"){mousedbl(MIDDLE, x, y); goto hy;}
if (m=="Правая двойной клик"){mousedbl(RIGHT, x, y); goto hy;}
if (m=="Переместить"){mousemove(x, y); goto hy;}
}
if (ew==2)
{
if (m=="Левую клик"){sendmouse(LEFT, x, y, w); goto hy;}
if (m=="Среднюю клик"){sendmouse(MIDDLE, x, y, w); goto hy;}
if (m=="Правую клик"){sendmouse(RIGHT, x, y, w); goto hy;}
if (m=="Левую нажать"){sendmousedown(LEFT, x, y, w); goto hy;}
if (m=="Среднюю нажать"){sendmousedown(MIDDLE, x, y, w); goto hy;}
if (m=="Правую нажать"){sendmousedown(RIGHT, x, y, w); goto hy;}
if (m=="Левую отпустить"){sendmouseup(LEFT, x, y, w); goto hy;}
if (m=="Среднюю отпустить"){sendmouseup(MIDDLE, x, y, w); goto hy;}
if (m=="Правую отпустить"){sendmouseup(RIGHT, x, y, w); goto hy;}
if (m=="Левая двойной клик"){sendmousedbl(LEFT, x, y, w); goto hy;}
if (m=="Средняя двойной клик"){sendmousedbl(MIDDLE, x, y, w); goto hy;}
if (m=="Правая двойной клик"){sendmousedbl(RIGHT, x, y, w); goto hy;}
if (m=="Переместить")sendmousemove(x, y, w);
}
hy: if (m!="Бездействие")pause (p2);
}

(Отредактировано автором: 22 Мая, 2024 - 17:12:16)

 
 Top
bj0rn.bj0rnson
Отправлено: 23 Мая, 2024 - 05:21:45
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2024  
Репутация: 0




Разобрался сам (спасибо бессоннице и, видимо, везению)

дописал в блоке старт всего одну строку:

string textin=getcontrol(EDIT_1);

я так понимаю этой строкой я объявил переменную textin и приравнял ее к данным из поля EDIT_1

а в блоке KEY визуального редактора вместо текста в кавычках указал имя той самой переменной (textin) и ВУАЛЯ! ОНО ЖИВОЕ! я в шоках. всем спасибо за внимание Улыбка

PS до этого я пытался в наглую в блоке KEY писать EDIT_1. Ничего не работало. а EDIT этот получается может быть и int, и string, и чем-то еще
 
 Top
Zireael
Отправлено: 23 Мая, 2024 - 10:58:35
Post Id



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


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




В блоке KEY можно написать getcontrol(EDIT_1).
 
 Top
bj0rn.bj0rnson
Отправлено: 23 Мая, 2024 - 12:57:12
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2024  
Репутация: 0




 Zireael пишет:
В блоке KEY можно написать getcontrol(EDIT_1).


добавлю в свой блокнотик. спасибо)))

а как реализовать такое:
-вместо вручную введённых данных мне нужен выбор из нескольких предложенных вариантов (выбираю COMBO вместо EDIT) и часть интерфейса готова (код ниже)
Но как правильней сделать блоксхему? что применять?
Задача бота отправлять отряды собирать ресурсы. различия и COMBO логически меняет только два блока (первый это нахождение кнопки ресурса, второй указание на найденную на карте плитку этого же ресурса.
подразумеваю четыре отдельных цикла под каждый тип ресурса, для удобства заключу каждый в свою функцию, но что дальше? что есть такое в визуальном редакторе для выполнения нужной функции в зависимости от 4 вариантов в поле COMBO
и правильно ли я понял что у комбо будет 4 состояния (0, 1, 2, 3)

INITDIALOG
{
sendcontrol(EDIT_0, individualcode());
}

CREATE_INTERFACE
{
DIALOG "BJORN-APP" 237 180
BUTTONSCRIPT "Запустить" 125 121 100 25
STATIC_0 "Ключ" 12 10 90 18
STATIC_1 "Остановить: CTRL+SHIFT+Z" 15 119 100 30
STATIC_2 "__DLS FARMER PRO BOT__" 46 92 150 18
STATIC_3 "telegram: @bjorn_automation" 12 30 160 18
STATIC_4 "выберите ресурс" 12 64 120 18
EDIT_0 "" 105 8 120 18
COMBO_0 0 "еда" | "дерево" | "сталь" | "нефть" 105 60 120 100
}
 
 Top
Zireael
Отправлено: 23 Мая, 2024 - 13:17:22
Post Id



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


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




 Цитата:
что есть такое в визуальном редакторе для выполнения нужной функции в зависимости от 4 вариантов в поле COMBO

Блок if.
 Цитата:
и правильно ли я понял что у комбо будет 4 состояния (0, 1, 2, 3)

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


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




Powered by