Что нового

Мышь, клавиатура Бот для игры

Rhjn

Новичок
Сообщения
16
Репутация
0
Помогите написать скрипт . Задача: при запуске бота определенной клавишей запоминался цвет пикселя, при изминении цвета клацалась лкм
 

ra4o

AutoIT Гуру
Сообщения
1,162
Репутация
242
Так ? Подставьте свои координаты, клик будет в текущем положении мыши, после срабатывания запомнит новый цвет пикселя и будет ждать его изменения и так в цикле.
Код:
HotKeySet('{ESC}', '_Exit')
$X=500
$Y=100
$OldColor=PixelGetColor($X,$Y)
While 1
  $NewColor=PixelGetColor($X,$Y)
  If $NewColor<>$OldColor Then
      $NewColor=$OldColor
      MouseClick('left')
  EndIf
  Sleep(100)
WEnd

Func _Exit()
    Exit
EndFunc
 
Автор
R

Rhjn

Новичок
Сообщения
16
Репутация
0
Так ? Подставьте свои координаты, клик будет в текущем положении мыши, после срабатывания запомнит новый цвет пикселя и будет ждать его изменения и так в цикле.
Код:
HotKeySet('{ESC}', '_Exit')
$X=500
$Y=100
$OldColor=PixelGetColor($X,$Y)
While 1
  $NewColor=PixelGetColor($X,$Y)
  If $NewColor<>$OldColor Then
      $NewColor=$OldColor
      MouseClick('left')
  EndIf
  Sleep(100)
WEnd

Func _Exit()
    Exit
EndFunc
Я хотел что бы запоминание цвета было по нажатию клавиатуры ( допустим м английская нажата, скрипт работает отпустил клавишу не работает ). ошибка в первой строке пишет
 

ra4o

AutoIT Гуру
Сообщения
1,162
Репутация
242
Так ?
Код:
#include <Misc.au3>
Local $hDLL = DllOpen("user32.dll")

HotKeySet('{ESC}', '_Exit')
$X = 500
$Y = 100
While 1
    If _IsPressed('4D', $hDLL) Then
        $OldColor = PixelGetColor($X, $Y)

        $NewColor = PixelGetColor($X, $Y)
        If $NewColor <> $OldColor Then
            $NewColor = $OldColor
            MouseClick('left')
            ConsoleWrite($NewColor&@CR)
        EndIf
        Sleep(100)
    EndIf
    Sleep(100)
WEnd

Func _Exit()
    Exit
EndFunc   ;==>_Exit

ошибка в первой строке пишет
Какая ошибка ?
 
Автор
R

Rhjn

Новичок
Сообщения
16
Репутация
0
Ошибка. И не пойму на какую кнопку активировать?
Сообщение автоматически объединено:

Так ?
Код:
#include <Misc.au3>
Local $hDLL = DllOpen("user32.dll")

HotKeySet('{ESC}', '_Exit')
$X = 500
$Y = 100
While 1
    If _IsPressed('4D', $hDLL) Then
        $OldColor = PixelGetColor($X, $Y)

        $NewColor = PixelGetColor($X, $Y)
        If $NewColor <> $OldColor Then
            $NewColor = $OldColor
            MouseClick('left')
            ConsoleWrite($NewColor&@CR)
        EndIf
        Sleep(100)
    EndIf
    Sleep(100)
WEnd

Func _Exit()
    Exit
EndFunc   ;==>_Exit


Какая ошибка ?
Threshold = 20
;https://www.youtube.com/channel/UCsqedDo2CxV9NuTyYIsmk1w?view_as=subscriber
*~$t::
MouseGetPos, MouseX, MouseY
PixelGetColor, Color1, (MouseX+2), (MouseY+2)
StringSplit, Colorz, Color1
Color1B = 0x%Colorz3%%Colorz4%
Color1G = 0x%Colorz5%%Colorz6%
Color1R = 0x%Colorz7%%Colorz8%
Color1B += 0
Color1G += 0
Color1R += 0

while (GetKeyState("T", "P"))
{
BlockInput, MouseMove
sleep 1
MouseGetPos, MouseX, MouseY
PixelGetColor, Color2, (MouseX+2), (MouseY+2)
StringSplit, Colorz, Color2
Color2B = 0x%Colorz3%%Colorz4%
Color2G = 0x%Colorz5%%Colorz6%
Color2R = 0x%Colorz7%%Colorz8%
Color2B += 0
Color2G += 0
Color2R += 0
if (Color1R > (Color2R + Threshold)) or (Color1R < (Color2R - Threshold)) or (Color1G > (Color2G + Threshold)) or (Color1G < (Color2G - Threshold)) or (Color1B > (Color2B + Threshold)) or (Color1B < (Color2B - Threshold))
{
send {LButton}
}
}
BlockInput, MouseMoveOff
Return

End::
exitapp
return



у вашего ошибку выдает скрин ниже
это пример моего скрипта который не работает почему то сейчас. это типа автовыстрел . ошибку не выдает но и работать не хочет
 

Вложения

  • 20210122_095337.jpg
    20210122_095337.jpg
    3.3 МБ · Просмотры: 10

ra4o

AutoIT Гуру
Сообщения
1,162
Репутация
242
У Вас UDF "Misc.au3" не находит, прикрепил, на всякий случай. Какая версия AutoIt у Вас ?
Сообщение автоматически объединено:

это пример моего скрипта который не работает
это не на AutoIt
 

Вложения

  • Misc.au3
    31.2 КБ · Просмотры: 2
Автор
R

Rhjn

Новичок
Сообщения
16
Репутация
0
Пардон, попробую скачать с вашего сайта тогда по
Сообщение автоматически объединено:

Так ?
Код:
#include <Misc.au3>
Local $hDLL = DllOpen("user32.dll")

HotKeySet('{ESC}', '_Exit')
$X = 500
$Y = 100
While 1
    If _IsPressed('4D', $hDLL) Then
        $OldColor = PixelGetColor($X, $Y)

        $NewColor = PixelGetColor($X, $Y)
        If $NewColor <> $OldColor Then
            $NewColor = $OldColor
            MouseClick('left')
            ConsoleWrite($NewColor&@CR)
        EndIf
        Sleep(100)
    EndIf
    Sleep(100)
WEnd

Func _Exit()
    Exit
EndFunc   ;==>_Exit


Какая ошибка ?
все работает но без остановки (изминил горячие клавиши не помогло). мне хотелось бы что бы работать начинало по нажатии клавиши caps lock , огонек капс лок горит скрипт работает . не горит скрипт не работает. и выполнение надо 1 раз ( 1 клик ) лкм надо
 
Последнее редактирование:

Khaibit

Знающий
Сообщения
83
Репутация
18
допустим м английская нажата, скрипт работает отпустил клавишу не работает
мне хотелось бы что бы работать начинало по нажатии клавиши caps lock , огонек капс лок горит скрипт работает . не горит скрипт не работает
Так вы сначала определитесь что надо, а потом уже пишите.
Вы вообще похоже попутали AutoHotkey и AutoIT
 
Автор
R

Rhjn

Новичок
Сообщения
16
Репутация
0
Так вы сначала определитесь что надо, а потом уже пишите.
Вы вообще похоже попутали AutoHotkey и AutoIT
Да, реально попутал ( сам уже понял ) , а разве на autoit нельзя что бы скрипт начинал работать при зажатой кнопке? А определиться то я определился, как только теперь объяснить что хочу :blush:
 

mr.Gbabak

Осваивающий
Сообщения
252
Репутация
23
Модераторы, уберите тему в стол заказов.
Автор темы в autoit не зуб ногой.
 
Автор
R

Rhjn

Новичок
Сообщения
16
Репутация
0
Так ? Подставьте свои координаты, клик будет в текущем положении мыши, после срабатывания запомнит новый цвет пикселя и будет ждать его изменения и так в цикле.
Код:
HotKeySet('{ESC}', '_Exit')
$X=500
$Y=100
$OldColor=PixelGetColor($X,$Y)
While 1
  $NewColor=PixelGetColor($X,$Y)
  If $NewColor<>$OldColor Then
      $NewColor=$OldColor
      MouseClick('left')
  EndIf
  Sleep(100)
WEnd

Func _Exit()
    Exit
EndFunc
работает без остановки (в цикле не надо ), как сделать что бы был 1 клик и на паузу становился пока опять не нажму горячую клавишу ( сделал f9 ) ?
 

ra4o

AutoIT Гуру
Сообщения
1,162
Репутация
242
Это может продолжаться бесконечно.Вы можете конкретизировать все действия ? Клик в каких координатах ? Цвет запоминается при запуске и фиксируется именно его изменение на протяжении всей работы скрипта ? Как поступать, если цвет остался изменённым и снова нажали горячую клавишу ? Никто, кроме Вас не знает , Вы-же даёте информацию по частям.
 
Автор
R

Rhjn

Новичок
Сообщения
16
Репутация
0
Это может продолжаться бесконечно.Вы можете конкретизировать все действия ? Клик в каких координатах ? Цвет запоминается при запуске и фиксируется именно его изменение на протяжении всей работы скрипта ? Как поступать, если цвет остался изменённым и снова нажали горячую клавишу ? Никто, кроме Вас не знает , Вы-же даёте информацию по частям.
ни чего на ум не приходит как сравнить с автокликером, видим определенный пиксель ( координаты пикселя всегда разные ) наводим на него мышьку, запускаем скрипт ( цвет пикселя запомнился ) скрипт ждет изминение цвета пикселя , цвет пикселя сменился происходит однократное нажатие лкм, все конец скрипта или пауза ( лутше пауза а не выход из скрипта ) скрипта пока не появится нужный мне пиксель что бы я опять нажал горячую клавишу для запоминания цвета. как мог объяснил, цвет пикселя всегда разный ( какой запоминаем )
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,600
Репутация
940
Тема уезжает в стол заказов
 
Верх