1 (изменено: sport-3x-trem, 2017-09-25 00:18:41)

Тема: Дописать макрос с кнопками мыши.

Хочу дописать универсальный макрос для игр, для увеличения рабочих кнопок "под рукой" восновном под шутеры для быстрого выбора оружия. Левый alt как правило у меня присвоен в играх на нож.

ОПИСАНИЕ ФУНКЦИОНАЛА (ниже сами скрипты):
1. При нажатии alt кнопка должна срабатывать один раз ТОЛЬКО ПРИ ОТПУСКАНИИ. НО получается если эту строку отставить нижние сочетания не срабатывают как горячее сочетание.
2. При зажатии alt и левой кнопки мыши происходит эмуляции "0". НО получается, что герой безостановочно машит ножом когда я зажимаю alt  не успев ещё нажать левую кнопку мыши и потом выбирает оружие, присвоенное к клавише "0", да еще и выстрел может произойти.
3. При зажатии alt и правой кнопки мыши происходит эмуляции "=". НО получается что опять пока зажата alt опять машит ножом, а когда нажал и отпустил правую кнопку мыши помимо выбора оружия на букве "=" герой всегда включает прицел.

1. LAlt Up::Send, {LAlt}  ;
2. *!LButton::Send, {scB} ; Лев кнопка - "0"
3. *!RButton::Send, {scD} ; Правая кнопка - "="

Пробовал разные префиксы "*~$", но что-то как то не так.
БУДУ ИСКРЕННЕ РАД ЗА ЛЮБУЮ ПОМОЩЬ!!!

2

Re: Дописать макрос с кнопками мыши.

Если макрос простой, то почему бы самому не написать?

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

3 (изменено: sport-3x-trem, 2017-09-25 00:19:32)

Re: Дописать макрос с кнопками мыши.

belyankin12 пишет:

Если макрос простой, то почему бы самому не написать?

Наверное мое упущение, что я не корректно объяснил ситуацию.

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

LAlt Up::Send, {LAlt} 
*!LButton::Send, {scB} ; Лев кнопка - "0"
*!RButton::Send, {scD} ; Правая кнопка - "="

4

Re: Дописать макрос с кнопками мыши.

sport-3x-trem, приведите заголовок в соответствие Правилам форума. В нём должна отражаться только суть темы.
Предложения должны начинаться заглавной буквой и заканчиваться точкой. Поправьте.

5 (изменено: sabir.yanin2014, 2017-09-24 22:24:44)

Re: Дописать макрос с кнопками мыши.

Игра увидит и немедленно отреагирует если вы нажмете какую ту ЗАДЕЙСТВОВАННУЮ клавишу будь то ЛКМ или ПКМ.  Поэтому нужно перепрограммировать клавиши мыши.


;ЛКМ-должна стать F2,ПКМ-должна стать F3||нужна программируемая мышь
;В самой игре нож назначьте на F1 или другую по аналогии

setkeydelay -1 ; нет пауз между нажатиями
BasicData:=["Alt","F2","F3"]
#Persistent
SetTimer, s1, 5
return

s1:
pAlt:=Alt
Loop % BasicData.MaxIndex() ;просмотр всех элементов массива
{
variable:=BasicData[A_Index]
if variable in Alt,F2,F3
PS:="P" ;определяем физическое состояние
else
PS:="" ;логическое
%variable%:=GetKeyState(BasicData[A_Index],PS)
}

PRESS((Alt and F2 and !F3)?1:0,iscB,"scB") ;0
PRESS((Alt and !F2 and F3)?1:0,iscD,"scD") ;=
if (iscB or iscD)
kAlt:=1

if (pAlt!=Alt and pAlt and !kAlt) ;если за время нажатия Alt не были нажаты ЛКМ или ПКМ
send {F1}

if !Alt
kAlt:=0

;без Alt
PRESS((!Alt and F2)?1:0,iLButton,"LButton") ;ЛКМ
PRESS((!Alt and F3)?1:0,iRButton,"RButton") ;ПКМ

Return 



*Alt::Return
*F2::Return
*F3::Return

;Функции
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;                 "Удержание клавиши"              ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PRESS(V1,ByRef V2,V3)
{
	if (V1 and !V2)
	{
	V2:=1
	send {%V3% Down}
	}

	if (!V1 and V2)
	{
	send {%V3% Up}
	V2:=0
	}
}

6 (изменено: sport-3x-trem, 2017-09-24 23:24:41)

Re: Дописать макрос с кнопками мыши.

Большое спасибо! Но только не удалось решить как привязать F2 и F3 на кнопки мыши.
Мышка многокнопочная, но в самой ней не было функции замены именно этих 2х кнопок.
В системной можно поменять, но только на такие вариации как на скриншоте. Не подскажите как "добить" сей нужный скрипт?

Post's attachments

klava.jpg 601.76 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

7

Re: Дописать макрос с кнопками мыши.

sport-3x-trem, соблюдайте Правила форума, не игнорируйте замечания модератора. Требования по заглавным буквам, точкам и заголовку темы не были выполнены.

8 (изменено: sport-3x-trem, 2017-09-24 23:38:07)

Re: Дописать макрос с кнопками мыши.

ypppu
Простите, если что-то не так.
Понял, прочитал. Поменял.

9

Re: Дописать макрос с кнопками мыши.

Здесь точка в конце.

Пробовал разные префиксы "*~$", но что то как то не так


Здесь большая буква в начале и точка в конце.

наверное мое упущение, что я не корректно обяьснил ситуацию

10

Re: Дописать макрос с кнопками мыши.

Сейчас нашел все таки способ эмулировать через XMouseButtonControl.
Если скрипт Ваш просто запустить, без подмены в программе, то работают клавиши вместо мыши (F2 и F3) как задумывалось. А если присвоить на правую клавишу F3 через XMouseButtonContro, то не идёт почему то. Такое чувство что сама себя перекрывает она.

Post's attachments

klava2.png 277.05 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

11

Re: Дописать макрос с кнопками мыши.

sport-3x-trem пишет:

ypppu
Простите, если что-то не так.
Понял, прочитал. Поменял.

P.S. Это правильно, что меня поправляют, нужно везде стараться писать грамотно.

12 (изменено: sabir.yanin2014, 2017-09-25 13:43:00)

Re: Дописать макрос с кнопками мыши.

sport-3x-trem, ничего у вас не выходит потому что физически F2,F3 не нажимаются, а эмулируются. Попробуйте определять логическое состояние клавиши, а не физическое.


;ЛКМ-должна стать F2,ПКМ-должна стать F3||нужна программируемая мышь
;В самой игре нож назначьте на F1 или другую по аналогии

setkeydelay -1 ; нет пауз между нажатиями
BasicData:=["Alt","F2","F3"]
#Persistent
SetTimer, s1, 5
return

s1:
pAlt:=Alt
Loop % BasicData.MaxIndex() ;просмотр всех элементов массива
{
variable:=BasicData[A_Index]
if variable in Alt  ;здесь убраны F2 и F3
PS:="P" ;определяем физическое состояние
else
PS:="" ;логическое
%variable%:=GetKeyState(BasicData[A_Index],PS)
}

PRESS((Alt and F2 and !F3)?1:0,iscB,"scB") ;0
PRESS((Alt and !F2 and F3)?1:0,iscD,"scD") ;=
if (iscB or iscD)
kAlt:=1

if (pAlt!=Alt and pAlt and !kAlt) ;если за время нажатия Alt не были нажаты ЛКМ или ПКМ
send {F1}

if !Alt
kAlt:=0

;без Alt
PRESS((!Alt and F2)?1:0,iLButton,"LButton") ;ЛКМ
PRESS((!Alt and F3)?1:0,iRButton,"RButton") ;ПКМ



*Alt::Return


;Функции
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;                 "Удержание клавиши"              ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PRESS(V1,ByRef V2,V3)
{
	if (V1 and !V2)
	{
	V2:=1
	send {%V3% Down}
	}

	if (!V1 and V2)
	{
	send {%V3% Up}
	V2:=0
	}
}


13 (изменено: ypppu, 2017-09-25 21:10:34)

Re: Дописать макрос с кнопками мыши.

К сожалению, не получается тоже. Клавиатура подхватывает в игре (нажатие физически Alt+F3). А вот Alt+кнопки мыши не идет.

Попробовал в блокноте Вашу схему, срабатывает в каких то случаях когда безостановочно нажимаеться при зажатой Alt  правая кнопка. Видимо в таймах проблема. Но если поменять в XMouseButtonControl эмуляцию с "при нажатии кнопки мыши" на "действовать пока нажата кнопка мыши", то в блокноте все работае, а в игре один раз из 10.
Проверил на обоих Ваших скриптах все варианты эмуляции как на скриншоте - в игре не срабатывают, кроме крайне нестабильного варианта в предложении выше.

Мне кажется мы близки, но какой-то "костыль" мешает.

Извините, что я неграмотный в написании таких хороших скриптов как у Вас и не могу поддержать разговор!

P.S. Если бы Playstaton или X-Box сделали по такому принципу штатную эмуляцию, мне кажется многие бы больше получали удовольствие от четкости и быстроты выбора допустим того же самого оружия.

Post's attachments

klava 3 .png 569.9 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

14 (изменено: sabir.yanin2014, 2017-09-25 16:05:37)

Re: Дописать макрос с кнопками мыши.

sport-3x-trem, может мышку все-таки поменять? Или попробуйте назначить в игре на выстрел и прицеливание другие клавиши, тем самым освободив ЛКМ и ПКМ. Тогда в первом варианте кода вместо F2,F3 поставите LButton, RButton.
И не ставьте *LButton::return, тогда мышь перестанет кликаться и вы не сможете приложения запускать.

15 (изменено: sport-3x-trem, 2017-09-25 16:00:12)

Re: Дописать макрос с кнопками мыши.

sabir.yanin2014 пишет:

sport-3x-trem, может мышку все-таки поменять?

Исправил сообщение выше.  У меня игровая mad catz r.a.t.m.

Если вариантов больше нет, то я понимаю и извиняюсь за свою назойливость. Может ещё кто-то прочитает этот форум и подскажет какой "костыль" дописать.

16

Re: Дописать макрос с кнопками мыши.

sport-3x-trem, убрал полное цитирование предыдущего сообщения.

Важнейшие правила пишет:

Избегайте избыточного цитирования! Не цитируйте пост, на который отвечаете, целиком. Используйте цитирование только в том случае, если иначе не будет понятно, на что Вы отвечаете, и старайтесь выбирать только ключевые фразы.

17

Re: Дописать макрос с кнопками мыши.

sabir.yanin2014 пишет:

sport-3x-trem Или попробуйте назначить в игре на выстрел и прицеливание другие клавиши, тем самым освободив ЛКМ и ПКМ. Тогда в первом варианте кода вместо F2,F3 поставите LButton, RButton.

Поменял только вначале кода, где
"setkeydelay -1 ; нет пауз между нажатиями
BasicData:=["Alt","F2","F3"]"
на
"setkeydelay -1 ; нет пауз между нажатиями
BasicData:=["Alt","LButton","RButton"]"
- не получилось.

Поменял везде в коде где есть эти символы - тоже не получилось.

Если несложно, подредактируйте первый Ваш код. Я понял смысл редактирования, но не понял где именно менять.

Уже немного начинает голова кругом ходить от проверок вариантов. Видимо в Windows по особому кодируються/распознаються LButton, RButton.

Часть проблемы конечно решена еще с первого Вашего ответа, теперь Alt в играх нажимается как нужно.

18 (изменено: sport-3x-trem, 2017-10-09 13:08:45)

Re: Дописать макрос с кнопками мыши.

Разобрался. Сообщение удалил.

19 (изменено: sport-3x-trem, 2017-10-09 13:08:05)

Re: Дописать макрос с кнопками мыши.

Пост выше. Разобрался. заработало.

Помогите пожалуйста добавить правильно в Ваш первый вариант кода ещё сочетания клавиш. Примерно понял, но что то ошибки появляются. Хотя бы на одном примере. А так вот какие хочу добавать на свою программируемую многокнопочную мышку (т.е. второй слой кнопок):

*!MButton::sc9 ; Средняя кнопка - "8
*!WheelUp::sc7 ; Поворот колеса вверх  "6"
*!WheelDown::sc8 ; Поворот колеса вниз - "7"
*!sc16::scC ; Верхняя средняя кнопка "U" - "-"
*!sc25::scA ; Левая крыльчатка "K" - "9"
*!sc18::sc1A ; Сбоку впереди "0" - "["
*!sc19::sc1B ; Сбоку сзади "P" - "]"
*!sc17::sc27 ; Верх джойстик "I" - ";"
*!sc13::sc28 ; Центр джойстик "R" - "'"
*!sc24::sc33 ; Влево джойстик "J" - ","
*!sc32::sc34 ; Вниз джойстик "M" - "."
*!sc26::sc35 ; Право джойстик "L" - "/"

P.S. проверил на нескольких играх Ваш первый вариант кода, он работает как надо, лишнего срабатывания ALT нету. Вот и хочу его добавить на свои кнопки пускай и без ЛКМ и ПКМ.