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

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

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

> Без описания
germanshnayder
Отправлено: 20 Сентября, 2020 - 19:30:15
Post Id



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


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




Всем привет. Захотел недавно самостоятельно написать код для дублирования действий клавомыши во все окна майнсрафт шутера (stalcraft), где столкнулся с несколькими проблемами. Первой была привязка, т к включить в код 7 окон игры с одинаковым названием было не так уж и просто. Благо, порылся на форуме по поводу этого вопроса, и позаимствовал привязку от Dantes3000 (спасибо ему за это):
CODE:
win w1, w2, w3, w4;
int x, y;

textout( 0, 10, 10, "нажми ё над первым окном", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(600, 300);
getmouse(x, y);
w1=getwindow(1, x, y);

textout( 0, 10, 10, "нажми ё над вторым окном", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(500, 300);
getmouse(x, y);
w2=getwindow(1, x, y);

textout( 0, 10, 10, "нажми ё над третьим окном", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(400, 300);
getmouse(x, y);
w3=getwindow(1, x, y);

textout( 0, 10, 10, "нажми ё над четвертым окном", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(300, 300);
getmouse(x, y);
w4=getwindow(1, x, y);
textout( 0, -190, -110, "нажми ё над четвертым окном", 1);

Далее была задача адаптировать все дублирование под шутеры (где движение мышью от 1 лица играет огромное значение), поэтому заменил вторую часть варспировского кода Дантеса на код от Кибора отсюда -(для просмотра ссылки Вам необходимо авторизоваться) вот это:
CODE:
loop()
{
if (getkeystate(1)==1)
{
K=1;
while(getkeystate(1)==1)sleep(1);
K=2;
while(K==2)sleep(1);
}
sleep(1);
}


CREATE_TIMER(0, 5)
{
getmouse(X, Y);
X=X-w1.leftclient;
Y=Y-w1.topclient;
if (K==0)sendmousemove(X, Y, w2);
if (K==1)sendmousedown(LEFT, X, Y, w2);
if (K==2){sendmouseup(LEFT, X, Y, w2); K=0;}
}

В итоге, с учетом моих скудных знаний, постарался соединить все это и своял такое поделие:
CODE:
win w1, w2, w3, w4;
int K=0, x, y;

textout( 0, 10, 10, "íàæìè ¸ íàä ïåðâûì îêíîì", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(600, 300);
getmouse(x, y);
w1=getwindow(1, x, y);

textout( 0, 10, 10, "íàæìè ¸ íàä âòîðûì îêíîì", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(500, 300);
getmouse(x, y);
w2=getwindow(1, x, y);

textout( 0, 10, 10, "íàæìè ¸ íàä òðåòüèì îêíîì", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(400, 300);
getmouse(x, y);
w3=getwindow(1, x, y);

textout( 0, 10, 10, "íàæìè ¸ íàä ÷åòâåðòûì îêíîì", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(300, 300);
getmouse(x, y);
w4=getwindow(1, x, y);
textout( 0, -190, -110, "íàæìè ¸ íàä ÷åòâåðòûì îêíîì", 1);

loop()
{
if (getkeystate(1)==1)
{
K=1;
while(getkeystate(1)==1)sleep(1);
K=2;
while(K==2)sleep(1);
}
sleep(1);
}


CREATE_TIMER(0, 5)
{
getmouse(x, y);
x=x-w1.leftclient;
y=y-w1.topclient;
if (K==0)sendmousemove(x, y, w2);
if (K==0)sendmousemove(x, y, w3);
if (K==0)sendmousemove(x, y, w4);
if (K==1)sendmousedown(LEFT, x, y, w2);
if (K==1)sendmousedown(LEFT, x, y, w3);
if (K==1)sendmousedown(LEFT, x, y, w4);
if (K==2){sendmouseup(LEFT, x, y, w2); K=0;}
if (K==2){sendmouseup(LEFT, x, y, w3); K=0;}
if (K==2){sendmouseup(LEFT, x, y, w4); K=0;}
}

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


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




Powered by