nyaka_wai |
Отправлено: 30 Августа, 2020 - 18:23:59
|
Прохожий
Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2020
Репутация: 0
|
Здравствуйте, буквально второй день разбираюсь с кибором, в целом очень доволен, решил для пробы запилить простенький аимбот, все сделал, все работает, но есть проблема. Проблема в плавности движения мыши, она слишком искусственно выглядит. Очеловечивание движения мыши выглядит вообще просто ужасно.
Единственные средства перемещения мыши, которые я вижу это mousemove и mousetransfer, которые с какой-то заданной скоростью перемещают мышь из одной точки в другую.
До этого несколько лет пользовался Clickermann, там есть средства мгновенного перемещения мыши (или клика) по любой точке с координатами (x,y), здесь я подобного не обнаружил.
В целом, мне не сложно задать последовательность из 10,100,1000 дополнительных точек путем задания искусственной фукнции движения между несколькими исходными точками, но я немогу этого сделать в киборе, потому что нет мгновенного перемещения мыши и не могу придумать ничего другого.
Памагити) |
|
|
Kibor |
Отправлено: 30 Августа, 2020 - 18:37:15
|
Эксперт
Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
nyaka_wai пишет: там есть средства мгновенного перемещения мыши (или клика) по любой точке с координатами (x,y), здесь я подобного не обнаружил.
Очень странно.
Куда уж мгновеннее...
CODE:mouse(LEFT, 100, 200);
mouse(LEFT, 200, 100);
mouse(LEFT, 500, 200);
nyaka_wai пишет: Очеловечивание движения мыши выглядит вообще просто ужасно
enablerealmouse? А как оно должно выглядеть? Укажите нужные параметры. Или свой алгоритм напишите.
А вообще не понятно. Вам надо мгновенно? Или не спеша? |
|
|
nyaka_wai |
Отправлено: 30 Августа, 2020 - 19:15:53
|
Прохожий
Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2020
Репутация: 0
|
Kibor пишет: nyaka_wai пишет: там есть средства мгновенного перемещения мыши (или клика) по любой точке с координатами (x,y), здесь я подобного не обнаружил.
Очень странно.
Куда уж мгновеннее...
CODE:mouse(LEFT, 100, 200);
mouse(LEFT, 200, 100);
mouse(LEFT, 500, 200);
nyaka_wai пишет: Очеловечивание движения мыши выглядит вообще просто ужасно
enablerealmouse? А как оно должно выглядеть? Укажите нужные параметры. Или свой алгоритм напишите.
А вообще не понятно. Вам надо мгновенно? Или не спеша?
Мне надо плавно, насколько это возможно.
Вот такой паттерн выходит (справа в увеличении) при движении между десятью динамичными точками.
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
код примерно такой:
CODE:int xAK47[10] = {-1, -1, 1, -1, -1, 9, 4, 9, -11, -28};
int yAK47[10] = {-1, 7, 10, 17, 21, 17, 15, 14, 6, 3};
for(i=0;i<shoots;i++)
{
getmouse(_x,_y);
mousemove(_x+xAK47[i],_y+yAK47[i]);
pause(70);
}
(Отредактировано автором: 30 Августа, 2020 - 19:17:57) |
|
|
nyaka_wai |
Отправлено: 30 Августа, 2020 - 22:32:26
|
Прохожий
Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2020
Репутация: 0
|
Kibor пишет: nyaka_wai пишет: Вот такой паттерн выходит (справа в увеличении) при движении между десятью динамичными точками.
Это плавнее этого?
Нажмите для увеличения
Вот пример работы очеловечивания при значениях, указанных на картинке:
(для просмотра ссылки Вам необходимо авторизоваться)
Здесь видно, что траектория становится еще более дерганной и искусственной.
Ваш метод хорош на длинных стрейфах курсора, но в данном случае сдвиг осуществляется всего на пару десятков пикселей, так что и метод непременим.2(Отредактировано автором: 30 Августа, 2020 - 22:33:52) |
|
|
Dantes3000 |
Отправлено: 30 Августа, 2020 - 23:29:23
|
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
|
Вырезал из старого бота функцию записи движения. Записывает движения мыши с зажатой левой кнопкой. Чтобы завершить надо нажать Ё.
На скрине вверху то, что я нарисовал, а внизу то, что повторил кибор.
Нажмите для увеличения
Спойлер (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define WS_VSCROLL 2097152
#define WS_SIZEBOX 262144
#define WS_SYSMENU 524288
#define WS_MINIMIZEBOX 131072
#define WS_MAXIMIZEBOX 65536
#define LBS_EXTENDEDSEL 2048
#define LB_ADDSTRING 384
#define LB_GETCOUNT 395
#define LB_SETTOPINDEX 407
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
external(INT, "SendMessage", "SendMessageA", "User32.dll" );
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
external(INT, "wsprintf", "wsprintfA", "User32.dll" );
external(INT, "MessageBox", "MessageBoxA", "user32.dll");
string path=pathfolder();
/////////////////////////
int pos_size_button0[2][4];
string text_button0[2];
int flag_button0[2];
pos_size_button0[1][0]=20+200; pos_size_button0[1][1]=61; pos_size_button0[1][2]=170; pos_size_button0[1][3]=20;
text_button0[1]="Запись движения мыши";
//////////
int pos_size_edit0[2][4];
string text_edit0[2];
//////////
int pos_size_check0[5][4];
string text_check0[5];
int flag_check0[5];
//////////
int pos_size_static0[7][4];
string text_static0[7];
int plx=200;
pos_size_static0[0][0]=150+200; pos_size_static0[0][1]=35-7; pos_size_static0[0][2]=30; pos_size_static0[0][3]=20;
pos_size_static0[1][0]=210+200; pos_size_static0[1][1]=35-7; pos_size_static0[1][2]=15; pos_size_static0[1][3]=20;
pos_size_static0[2][0]=0; pos_size_static0[2][1]=89; pos_size_static0[2][2]=275+200; pos_size_static0[2][3]=15;
pos_size_static0[3][0]=207+200; pos_size_static0[3][1]=15-7; pos_size_static0[3][2]=275+200; pos_size_static0[3][3]=18;
pos_size_static0[4][0]=5; pos_size_static0[4][1]=447; pos_size_static0[4][2]=400; pos_size_static0[4][3]=20;
//pos_size_static0[5][0]=5; pos_size_static0[5][1]=447; pos_size_static0[5][2]=400; pos_size_static0[5][3]=20;
text_static0[2]=
"-------------------------------------------------------LOG------------------------------------------------------------";
//pos_size_static0[3][0]=10; pos_size_static0[3][1]=100; pos_size_static0[3][2]=275; pos_size_static0[3][3]=700;
//text_static0[3]="";
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0] |
CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0] |
STATIC, #pos_size_static0[0][0], #text_static0[0]);
//////////
showdialog(0, "True GG Bot", 440, 10, 470, 495, 1, 1);
//////////
//////////
//////////
//////////
int demo=-1;
while(window ("True GG Bot")==0)sleep(10);
win w1=window ("True GG Bot");
int h_font = CreateFont(-13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "Segoe UI");
int list=CreateWindow(0, "LISTBOX", "", 1+2048+8388608+2097152+1342177280+32768, 5, 103, 255+200, 357, formatwi(w1), 0, 0, 0);
SendMessage(list, WM_SETFONT, h_font, 1);
win w_KIB;
win w;
int moves[100][999][999], moves_points_count[100];;
string dirr[50]; //read_scroll_dirrections
int dirr_col=0; //read_scroll_dirrections
int move_flag=0; //какой по счету движение сейчас
int loop_no=1;
loop()
{
if(flag_button0[1]>0) {flag_button0[1]=0; create_path();}
sleep(100);
}
function create_path()
{
string wrt;
int m=0, x, y, i=0;
if(fopen(path+"search dirrection.txt", "w")>0) fclose();
log("Нажмите Ё чтобы завершить");
loop()
{
text_button0[1]="Шаг №"+format(m);
log("Записан шаг №"+format(m));
loop()
{
if(getkeystate(1)==1) break;
if(getkeystate(192)==1)
{
text_button0[1]="Зона поиска шахт"; log("Готово!");
get_scroll_dirrections();
if(MessageBox(0, "Воспроизвести записанный путь?", "Вопрос", 4)==6) //yes 6 no 7
{
loop(m) next_move();
log("Конец");
}
return;
}
sleep(20);
}
loop()
{
getmouse(x, y);
i++;
wrt=format(x)+":"+format(y)+" ";
if(fopen(path+"search dirrection.txt", "a")>0)
{
fwrite(wrt); fclose();
}
sleep(50);
if(getkeystate(1)==0) break;
}
if(fopen(path+"search dirrection.txt", "a")>0)
{
fwrite(ENDL); fclose();
}
m++;
}
}
function get_scroll_dirrections()
{
int h=0;
string arr[100];
string mov[2000];
string s[2];
if(fopen(path+"search dirrection.txt", "r")<1) {messagebox("Ошибка открытия search dirrection.txt"); return;}
loop()
{
if (freadline(arr[dirr_col])!=0)
{
dirr_col++;
} else break;
}
fclose();
for(int f=0; f<dirr_col; f++)
{
int kol=regexsearch(999, #mov[0], arr[f], "\d+");
moves_points_count[f]=kol;
for(int k=0; k<kol; k=k+1)
{
moves[f][k+1][0]=formatsn(mov[k]);
moves[f][0][k+1]=formatsn(mov[k+1]);
}
}
}
function next_move()
{
pause(100);
move_screen(move_flag);
move_flag++;
}
function move_screen(int e)
{
mousedown(LEFT, moves[e][1][0], moves[e][0][1]);
for(int g=0; g<moves_points_count[e]; g=g+2)
{
mousemove(moves[e][g+1][0], moves[e][0][g+1]); sleep(30);
}
pause(rand(300,500)); mouseup(LEFT);
}
function log(string str)
{
new char c[size(str)+1];
strcpy(#c[0], str);
sendmessage(LB_ADDSTRING, 0, address(#c[0]), formatiw(list)); // добавить строку в список
sendmessage(LB_SETTOPINDEX, sendmessage(LB_GETCOUNT, 0, 0, formatiw(list))-1, 0, formatiw(list)); // скролл
delete c;
}
|
|
|
nyaka_wai |
Отправлено: 30 Августа, 2020 - 23:57:41
|
Прохожий
Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2020
Репутация: 0
|
Kibor пишет: А сейчас?
Программу надо перезапустить.
К примеру так:
CODE:enablerealmouse(5, 5, 1, 1);
mousedown (LEFT, 150, 150);
mouseup (LEFT, 200, 220);
Ну, выходит что-то вроде этого:
(для просмотра ссылки Вам необходимо авторизоваться)
P.S. Кстати, можно как-то настроить хоткей запуска скрипта (для остановки нашел, а для запуска нет). |
|
|
|