Что нового

[Мышь, клавиатура] Нажатие клавиш при наличии/отсутствия пикселя

Vasylii007

Новичок
Сообщения
25
Репутация
0
Версия AutoIt: 3.3.12

Описание:
Нужно 2 скрипта для игры!
1. Сделать так, что бы при появлении пикселя по координате прожималась любая кнопка на клаве(какую захочу). При этом выставить интервал спама кнопки, что бы не лагало.
2. Надо залочить клавишу(например E), и дать возможность ей нажиматься только при условии появления пикселя по определённой координате. Т.е. , что бы при зажимании этой клавиши, начиналась постоянная проверка пикселя и срабатывание при наличии пикселя.
3. При наведении центра экрана(прицела) на объект, запоминание пикселя и привязка к нему центра экрана(или координаты)(этакий аимбот)
Спасибо!
 
Автор
V

Vasylii007

Новичок
Сообщения
25
Репутация
0
[Мышь, клавиатура] Возможность нажать кнопку при наличии пикселя

Версия AutoIt: 3.3.12

Описание: Помогите нубу!)
Надо залочить клавишу, и дать возможность ей нажиматься только при условии появления пикселя по определённой координате.
Т.е. , что бы при зажимании этой клавиши(например E), начиналась постоянная проверка пикселя и срабатывание при наличии этого пикселя.

Спасибо!
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Re: [Мышь, клавиатура] Возможность нажать кнопку при наличии пикселя

Копайте в ЭТОМ направлении.
 
Автор
V

Vasylii007

Новичок
Сообщения
25
Репутация
0
Re: [Мышь, клавиатура] Помогите написать три скрипта!

ни че не понимаю..( с одним скриптом разобрался, который просто проверяет пиксель и спамит, с таким никак не найду...
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Re: [Мышь, клавиатура] Помогите написать три скрипта!

Vasylii007 [?]
1. Сделать так, что бы при появлении пикселя по координате прожималась любая кнопка на клаве(какую захочу). При этом выставить интервал спама кнопки, что бы не лагало.
Код:
While Sleep(10)
  If PixelGetColor(150, 250) = 0xFFFFFF Then ; пиксель по координате
    Send("w") ; кнопка
    Sleep(100) ; интервал
  EndIf
WEnd

2. Надо залочить клавишу(например E), и дать возможность ей нажиматься только при условии появления пикселя по определённой координате. Т.е. , что бы при зажимании этой клавиши, начиналась постоянная проверка пикселя и срабатывание при наличии пикселя.
Код:
HotKeySet("e", "DoIt") ; залочить

While Sleep(1000)
WEnd

Func DoIt()
  If PixelGetColor(100, 300) = 0xFFFFFF Then ; пиксель по координате
    HotKeySet("e") ; разлочить
    Send("e") ; отправить
    HotKeySet("e", "DoIt") ; залочить
  EndIf
EndFunc

Можно объединить в один
Код:
HotKeySet("e", "DoIt")

While Sleep(10)
  If PixelGetColor(150, 250) = 0xFFFFFF Then
    Send("w")
    Sleep(100)
  EndIf
WEnd

Func DoIt()
  If PixelGetColor(100, 300) = 0xFFFFFF Then
    HotKeySet("e")
    Send("e")
    HotKeySet("e", "DoIt")
  EndIf
EndFunc
 
Автор
V

Vasylii007

Новичок
Сообщения
25
Репутация
0
Re: [Мышь, клавиатура] Помогите написать три скрипта!

InnI сказал(а):
Vasylii007 [?]
1. Сделать так, что бы при появлении пикселя по координате прожималась любая кнопка на клаве(какую захочу). При этом выставить интервал спама кнопки, что бы не лагало.
Код:
While Sleep(10)
  If PixelGetColor(150, 250) = 0xFFFFFF Then ; пиксель по координате
    Send("w") ; кнопка
    Sleep(100) ; интервал
  EndIf
WEnd


2. Надо залочить клавишу(например E), и дать возможность ей нажиматься только при условии появления пикселя по определённой координате. Т.е. , что бы при зажимании этой клавиши, начиналась постоянная проверка пикселя и срабатывание при наличии пикселя.
Код:
HotKeySet("e", "DoIt") ; залочить

While Sleep(1000)
WEnd

Func DoIt()
  If PixelGetColor(100, 300) = 0xFFFFFF Then ; пиксель по координате
    HotKeySet("e") ; разлочить
    Send("e") ; отправить
    HotKeySet("e", "DoIt") ; залочить
  EndIf
EndFunc

Можно объединить в один
Код:
HotKeySet("e", "DoIt")

While Sleep(10)
  If PixelGetColor(150, 250) = 0xFFFFFF Then
    Send("w")
    Sleep(100)
  EndIf
WEnd

Func DoIt()
  If PixelGetColor(100, 300) = 0xFFFFFF Then
    HotKeySet("e")
    Send("e")
    HotKeySet("e", "DoIt")
  EndIf
EndFunc

спасибо большое!
только вот проблема, залипают клавишы на клаве почему-то... шивт альт контр, и обычные буквы... это можно как-то вылечить?
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Re: [Мышь, клавиатура] Помогите написать три скрипта!

Vasylii007 [?]
проблема, залипают клавишы
На форуме, наверно, каждая десятая тема связана с этой проблемой. Используйте поиск.
Устранить залипание клавиш при использование ControlSend
Залипание CTRL при вызове BlockInput()
Как "отжать" все нажатые клавиши
Send с залипаниями
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Мышь, клавиатура] Помогите написать три скрипта!

Vasylii007


Предупреждение За нарушение общих правил (пункт В.2):
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Модератор.
 
Автор
V

Vasylii007

Новичок
Сообщения
25
Репутация
0
Re: [Мышь, клавиатура] Помогите написать три скрипта!

что-то не выходит. залипает и всё :(
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Re: [Мышь, клавиатура] Помогите написать три скрипта!

Vasylii007 [?]
Попробуйте следующие варианты:
1. Увеличить задержку для Send()
Код:
Opt("SendKeyDownDelay", 30)
Opt("SendKeyDelay", 30)
2. Отключить проверку CapsLock
Код:
Opt("SendCapslockMode", 0)
3. Заменить Send()
Код:
#include <WinAPISys.au3>
; Замена Send("w")
_WinAPI_Keybd_Event(0x57, 0)    ; нажать w
Sleep(10)                       ; пауза
_WinAPI_Keybd_Event(0x57, 0x02) ; отпустить w
; Замена Send("e")
_WinAPI_Keybd_Event(0x45, 0)    ; нажать e
Sleep(10)                       ; пауза
_WinAPI_Keybd_Event(0x45, 0x02) ; отпустить e
 
Автор
V

Vasylii007

Новичок
Сообщения
25
Репутация
0
Re: [Мышь, клавиатура] Помогите написать три скрипта!

Залипание вроде исправилось 3 вариантом! Спасибо большое!
Хотел спросить еще как можно сделать, что бы допустим вместе с одной кнопкой(например "A"), нажималась кнопка "B"(как бэ 2 в 1), при этом "B" прожималась при условии отсутствия пикселя, а "A", свободно. То есть когда я жму "A" > идёт проверка пикселя и если пикселя нету, нажимается "B"!
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Re: [Мышь, клавиатура] Помогите написать три скрипта!

Vasylii007 [?]
если пикселя нету, нажимается "B"
Код:
Func DoIt()
  If PixelGetColor(100, 300) = 0xFFFFFF Then
    HotKeySet("e")
    Send("e")
    HotKeySet("e", "DoIt")
  Else
    Send("b")
  EndIf
EndFunc
 
Автор
V

Vasylii007

Новичок
Сообщения
25
Репутация
0
Re: [Мышь, клавиатура] Помогите написать три скрипта!

что-то он не запускается даже
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Re: [Мышь, клавиатура] Помогите написать три скрипта!

Vasylii007 [?]
Это не полноценный скрипт. Это изменённая функция из ответа #5. Замените её в том скрипте.
 
Автор
V

Vasylii007

Новичок
Сообщения
25
Репутация
0
Re: [Мышь, клавиатура] Помогите написать три скрипта!

Inni, как можно сделать, такой же скрипт, но что бы нажималось не 1+1, а 1+(1,2,3 и т.д.) с отсутствием пикселя.
То есть я нажимаю 1 кнопку(например 5), и с этой кнопкой нажимается еще 4 кнопки и каждая прожимается только с условием отсутствия пикселя для каждой кнопки. Если при нажатии "5" , из остальных 4 клавиш удовлетворят условию только "1", то нажимается только "1", если удовлетворяет условию только "2", то нажимается только она, а если удовлетворяют все 4 по отсутствию пикселя для каждой из них, то нажимаются все сразу когда я нажимаю "5".
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Re: [Мышь, клавиатура] Помогите написать три скрипта!

Vasylii007 [?]
с отсутствием пикселя
То при наличии, то при отсутствии, то одну клавишу, то пять :stars:
Код:
#include <WinAPISys.au3>
#include <WinAPIvkeysConstants.au3>

HotKeySet("5", "DoIt")

While Sleep(1000)
WEnd

Func DoIt()
  HotKeySet("5")
  If PixelGetColor(10, 20) <> 0xFF0000 Then _Send("2")
  If PixelGetColor(20, 30) <> 0x00FF00 Then _Send("3")
  If PixelGetColor(30, 40) <> 0x0000FF Then _Send("q")
  If PixelGetColor(40, 50) <> 0xFFFF00 Then _Send("w")
  If PixelGetColor(50, 60) <> 0xFF00FF Then _Send("e")
  HotKeySet("5", "DoIt")
EndFunc

Func _Send($char)
  _WinAPI_Keybd_Event(Eval("vk_" & $char), 0)
  Sleep(10)
  _WinAPI_Keybd_Event(Eval("vk_" & $char), 0x02)
EndFunc
 
Автор
V

Vasylii007

Новичок
Сообщения
25
Репутация
0
Re: [Мышь, клавиатура] Помогите написать три скрипта!

поток идей не даёт покоя))) спасибо больше, вроде работает...)
А последняя функция что делает? Func _Send($char)

получиться прикрутить вот это, что бы не залипало? или она уже подразумевает эту команду?
Код:
_WinAPI_Keybd_Event(0x34, 0)
	 Sleep(0)
	_WinAPI_Keybd_Event(0x34, 0x02)
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Re: [Мышь, клавиатура] Помогите написать три скрипта!

Vasylii007 [?]
прикрутить вот это
Это оно и есть. В функции DoIt() просто поменяйте мои клавиши на свои и измените координаты и цвета. Можете ещё условий добавить.
 
Автор
V

Vasylii007

Новичок
Сообщения
25
Репутация
0
Re: [Мышь, клавиатура] Помогите написать три скрипта!

залипает всё что можно... просто анрил какой-то)
 
Верх