; AutoHotkey Version: 1.x
; Language: English
; Platform: Win9x/NT
; Author: Greno Zee
;
; Script Function:
; Provides joystick control for MaSzyna train simulator
;
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#Persistent ; Keep this script running until the user explicitly exits it.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
CheckInterval = 10 ; Number of miliseconds between joystick status checks. It's prefered not to change this value
ChecksForShift = 50 ; Number of check the joystick must be in certain position to trigger the SHIFT + Key input.
ShiftCounter := 0
SetTimer, WatchAxis, %CheckInterval%
return
WatchAxis:
GetKeyState, JoyX, JoyX ; Get position of X axis.
GetKeyState, JoyY, JoyY ; Get position of Y axis.
GetKeyState, Joy1, Joy1 ; Get button 1 state.
GetKeyState, Joy2, Joy2 ; Get button 2 state.
KeyToHoldDownPrev = %KeyToHoldDown% ; Prev now holds the key that was down before (if any).
if JoyX > 70
{
if Joy1 = D
KeyToHoldDown = Numpad7
else if Joy2 = D
KeyToHoldDown = NumpadDot
else
KeyToHoldDown = Numpad9
}
else if JoyX < 30
{
if Joy1 = D
KeyToHoldDown = Numpad1
else if Joy2 = D
KeyToHoldDown = Numpad0
else
KeyToHoldDown = Numpad3
}
else if JoyY > 70
{
if Joy1 = D
KeyToHoldDown = NumpadMult
else if Joy2 = D
KeyToHoldDown = r
else
KeyToHoldDown = NumpadSub
}
else if JoyY < 30
{
if Joy1 = D
KeyToHoldDown = NumpadDiv
else if Joy2 = D
KeyToHoldDown = d
else
KeyToHoldDown = NumpadAdd
}
else
KeyToHoldDown =
SetKeyDelay -1 ; Avoid delays between keystrokes.
if KeyToHoldDown ; There is a key to press down.
{
if KeyToHoldDown = %KeyToHoldDownPrev%
{
ShiftCounter += 1
if ShiftCounter = %ChecksForShift%
{
SendInput {Shift Down}
Sleep 70
SendInput {%KeyToHoldDown%}
Sleep 70
SendInput {Shift Up}
}
}
else
SendInput {%KeyToHoldDown%}
}
else
ShiftCounter := 0
return
Przód | ----- | Nastawnik jazdy +1 |
Przód + przycisk 1 | ----- | Dźwignia bocznikowania +1 |
Przód + przycisk 2 | ----- | Nastawnik kierunkowy do przodu (+1) |
Tył | ----- | Nastawnik jazdy -1 |
Tył + przycisk 1 | ----- | Dźwignia bocznikowania -1 |
Tył + przycisk 2 | ----- | Nastawnik kierunkowy do tyłu (-1) |
Lewo | ----- | Kran hamulca zasadniczego w kierunku zwiększenia siły hamowania |
Lewo + przycisk 1 | ----- | Kran hamulca pomocniczego w kierunku zwiększenia siły hamowania |
Lewo + przycisk 2 | ----- | Hamowanie awaryjne |
Prawo | ----- | Kran hamulca zasadniczego w kierunku zmniejszenia siły hamowania |
Prawo + przycisk 1 | ----- | Kran hamulca pomocniczego w kierunku zmniejszenia siły hamowania |
Prawo + przycisk 2 | ----- | Odcięcie kranu hamulca zasadniczego |
Lewo ----- Kran hamulca zasadniczego w kierunku zwiększenia siły hamowaniaA hamowanie nagłe i pozycja odcięcia (Num0 i Num,) funkcjonują. Ogólnie fantastyczna sprawa. Obecnie dżojstik mamy w ET22-2xxx, SM42-12xx, ST45, a niebawem też w E186 oraz w BR285.
Prawo ----- Kran hamulca zasadniczego w kierunku zmniejszenia siły hamowania