Что нового

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

linx113

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

Описание: Цель - создать симулятоный контроллер для одной хорошей игры.

Требуется:

1. При одновременном нажатии и удержании кнопок"," и "." (в русской раскладке Б и Ю) однократно выполнялось нажатие клавиши "r", при отпускании все кнопки отпускались и однократно нажималась клавиша "s".
2. При одновременном нажатии и удержании кнопок"k" и "L" однократно выполнялась серия нажатий клавиш "r","r","f", задержка между нажатиями 100мс, при отпускании все кнопки отпускались и однократно нажималась клавиша "s".
3. При одновременном нажатии и удержании кнопок"i" и "o" однократно выполнялась серия нажатий клавиш "r","r", задержка между нажатиями 100мс, при отпускании все кнопки отпускались и однократно нажималась клавиша "s".

4. При одновременном нажатии и удержании кнопок"k" и "o" выполнялось удержание клавиш "w","d"; при отпускании все кнопки отпускались и однократно нажималась клавиша "s".
5. При одновременном нажатии и удержании кнопок"i" и "L" выполнялось удержание клавиш "w","a"; при отпускании все кнопки отпускались и однократно нажималась клавиша "s".

6. При нажатии и удержании клавиши "[" (русская х) выполнялось удержание клавиш "s","d" при отпускании все кнопки отпускались и однократно нажималась клавиша "s".
7. При нажатии и удержании клавиши "p" (русская з) выполнялось удержание клавиш "s","a" при отпускании все кнопки отпускались и однократно нажималась клавиша "s".
8. При нажатии и удержании клавиш "p" и "[" (русская х) выполнялось удержание клавиши "s".

9. При нажатии и удержании клавиши "o" выполнялось удержание клавиши "d", при отпускании кнопки отпускались.
10. При нажатии и удержании клавиши "i" выполнялось удержание клавиши "a", при отпускании кнопки отпускались.


11. При нажатии и удержании клавиш "o" и "," (русская б) однократно выполнялась серия нажатий клавиш "r","r","f", задержка между нажатиями 100мс, выполнялось удержание клавиши "d", при отпускании все кнопки отпускались и однократно нажималась клавиша "s".
12. При нажатии и удержании клавиш "i" и "." (русская ю) однократно выполнялась серия нажатий клавиш "r","r","f", задержка между нажатиями 100мс, выполнялось удержание клавиши "a", при отпускании все кнопки отпускались и однократно нажималась клавиша "s".

Примечания:
Ну вот, загрузил по полной программе :smile:
Конструкция контроллера уже продумана с учётом движка игры, HID уже собирается, пилится, клеится и паяется, и это только 1 блок управления из 3.
Заранее спасибо всем откликнувшимся.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
linx113,
Из Правил стола заказов.
* Просьбы о созданий ботов не приветствуются, для этого есть раздел Боты для игр. Подобные темы будут переносится именно в этот раздел.
Тему переношу.
 
Автор
L

linx113

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

running-frag

why me?
Сообщения
441
Репутация
60
Код:
HotKeySet ("{pause}", 	"_script_togglePause")
HotKeySet ("^{pause}", 	"_script_exit")
HotKeySet ("^{F12}", 	"_script_test")

Global $stSettings[1] = [False]

Func _script_togglePause ()
	$stSettings[0] = Not ($stSettings[0])
	If $stSettings[0] Then ToolTip (". . . pause . . .", @DesktopWidth/2, 100)
	While $stSettings[0]
		Sleep (100)
	WEnd
	ToolTip ("")
EndFunc

Func _script_exit ()
	Exit
EndFunc

Func _script_test ()
	ConsoleWrite ("This is call to test function."&@CR)
EndFunc

While True
	
WEnd


Кнопка пауза - вешает скрипт на паузу.
Кнопка CTRL + пауза - закрывает программу.
Кнопка CTRL + F12 - пишет в консоль буквы.

Важным моментом является цикл While. Без него скрипт ничего не будет выполнять а просто "прочитает данный код и закроется".


Добавлено:
Сообщение автоматически объединено:

Если не ясно как писать "комбинации" клавиш, ещё раз перечитай описание функции...
Код:
Send ()
 
Автор
L

linx113

Новичок
Сообщения
3
Репутация
0
Как в операторе Send сочетания написать я понял. Мне нужно выставить сочетания клавиш в качестве горячей кнопки именно в операторе hotkeyset, притом не контролы, шифты, альты и F1-F12, а именно буквенные, как написано в данном пункте
1. При одновременном нажатии и удержании кнопок"," и "." (в русской раскладке Б и Ю) однократно выполнялось нажатие клавиши "r", при отпускании все кнопки отпускались и однократно нажималась клавиша "s".

Мне именно такой скрипт нужен, если не сложно. А вот функция паузы скрипта - оч хорошая идея, пригодится.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Как в операторе Send сочетания написать я понял. Мне нужно выставить сочетания клавиш в качестве горячей кнопки именно в операторе hotkeyset,

Читаем внимательно!
http://autoit-script.ru/autoit3_docs/functions/HotKeySet.htm
[box title=Параметры]
key - Комбинация клавиш для использования в качестве горячей клавиши. Формат такой же как и у Send().[/box]

Поэтому frag и дал тебе подсказку на
Код:
Send()
 

running-frag

why me?
Сообщения
441
Репутация
60
Код:
Global $_timeOut = 10 	; кол. секунд "удерживать комбинацию"

Func _script_keyDelay ($_key)
	Send ("{"& $_key &" DOWN}")
	Sleep ($_timeOut *1000)
	Send ("{"& $_key &" UP}")
EndFunc

_script_keyDelay ("a")

While True
	
WEnd
 
Верх