1 (изменено: Sgy-x2, 2015-04-29 17:11:18)

Тема: Разные действия на две кнопки

Имеется джостик с двумя курками, один под другим. Можно отдельно первым стрелять, можно одтельно вторым, и обоими вместе. По умолчанию зажал первый курок стреляет первая группа, тоже со вторым, вместе зажал стреляют обе группы.
Смысл скрипта.
1. При нажатии Joy1 имитировалась зажатие ЛКМ, при отпускании Joy1 отпускалась ЛКМ.
2. При нажатии Joy2 имитировалась зажатие ПКМ, при отпускании Joy2 отпускалась ПКМ.
3. При зажатии Joy1 и Joy2 ЛКМ отпускалось, а ПКМ оставалось зажатым.
4. Если зажат Joy1 Joy2 и отпустить Joy2, то происходит отпускание ПКМ, и зажимается ЛКМ.
5. Переключение капслоком в обычный режим и обратно.

Вот что получилось у меня. В принципе работает, происходит затык в пункте 4, после отжатия Joy2 зажатие ПКМ он уже не производит, пока не отпустишь Joy1

SetMouseDelay, 40
Joy1::
Fire:
    MouseClick, left,,, 1, 0, D
GetKeyState, state1, CapsLock, U 
IF state1 := GetKeyState("Capslock", "T")
Loop
{
    GetKeyState, state1, Joy1, P
    if state1 = U
        break
}
Loop
{
    GetKeyState, state, Joy1, P
    if state = U
        break
else
    GetKeyState, state, Joy2, P
    if state = D
        break
}
    MouseClick, left,,, 1, 0, U
Return

Joy2::
    MouseClick, Right,,, 1, 0, D
        ;Send, {vkBE}
Loop
{
    GetKeyState, state, Joy2, P
    if state = U
        break
}
    MouseClick, Right,,, 1, 0, U
        ;Send, {vkBC}
    GetKeyState, state, Joy1, P
    if state = D
        Gosub, Fire
Return