В игре crossout управление машиной производится 6 кнопками: awsdqe (q и e- стрейф влево/вправо), машина может двигаться всенаправленно.
Я пытаюсь написать скрипт который позволит управлять машиной по диагонали (то бишь повернуто на 45°).
Что я хочу получить при нажатии: w::w,e ; q::q,w ; e::s,e ; s::s,q
Во что я уперся:
Code: Select all
#If
*w up::Send {Blind}{w up}{e up}
*w::Send {Blind}{e down}{w down}
#If
*q up::Send {Blind}{q up}{w up}
*q::Send {Blind}{q down}{w down}
#If
*e up::Send {Blind}{e up}{s up}
*e::Send {Blind}{s down}{e down}
#If
*s up::Send {Blind}{s up}{q up}
*s::Send {Blind}{s down}{q down}
return
При нажатии клавиши подменяются нужными комбинациями, но при одновременном нажатии на другую комбинацию в которой уже есть одна из клавиш предыдущей комбинации, команда send {x up} отпускает эту клавишу, вследствие чего на другой комбинации эта клавиша не срабатывает. Я пытался заменить команду send {x up} другой, к примеру сделать через GetKeyState, чтобы скрипт мог определять отпускать ли эту клавишу или нет если она используется в другой прожатой комбинации, но поскольку в кодинге я абсолютный 0, ничего не получается. Пока что я "научился "только совмещать чужие скрипты и создавать простейшие на их основе
помогите пожалуйста