Obserwując duże zainteresowanie własnymi pulpitami do MaSzyny oraz głosy braku sił/czasu/chęci do ich stworzenia, pozwalam sobie przetłumaczyć instrukcję poprawnego podłączenia jednego z urządzeń wejścia (joystick) w taki sposób, aby jego działanie przełożyć na symulator. Nie biorę odpowiedzialności za jakiekolwiek błędy i ich następstwa spowodowane podczas zabawy.
Na wstępie należy zainstalować program AutoHotkey:
http://ahkscript.org/download/Po zainstalowaniu w folderze
Moje Dokumenty lub
Dokumenty utworzy się plik AutoHotkey.ahk. Otwieramy go za pomocą edytora tekstu (Notatnik, Notepad++) i zmieniamy zawartość na:
; 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
Podłączamy joystick.
Funkcje:
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 |
Przytrzymanie dźwigni (przykładowo) w pozycji
PRZÓD sprawi, że przeskoczy on
jedną pozycję do przodu. Z kolei po pół sekundy ciągłego przytrzymania nastawnik jazdy "przeskoczy do końca". Tak jakby po pół sekundy trzymania joysticka w jednej pozycji dołączył się do niego klawisz SHIFT.
Sam tego dotychczas nie sprawdzałem, joysticka będę mógł użyć dopiero jutro.