Event OnKeyDown(int KeyCode) ; メニューモードでは何もしない if Utility.IsInMenuMode() return endif ; ロックオンキーを押したとき if KeyCode == keyLockon _bPressLockonKey = true _bChangeTarget = false _bStartViaModEvent = false return endif ; ロックオンキーを押している最中に他のキーを押したとき if _bPressLockonKey if KeyCode == keyDown ; ロックオン対象の切り替え OnKey_Down(0, false) elseif KeyCode == keyLeft ; ロックオン対象の切り替え OnKey_Left(0, false) elseif KeyCode == keyRight ; ロックオン対象の切り替え OnKey_Right(0, false) elseif KeyCode == keyUp ; ロックオン対象の切り替え OnKey_Up(0, false) else ; その他のキーが押されたらロックオンキーの単押しではないということ _bPressLockonKey = false endif endif EndEvent Event OnKeyUp(int KeyCode, float HoldTime) Debug.TraceUser("HimikaLockOn", "[] OnKeyUp") ; ロックオンキーを離したとき if KeyCode == keyLockon ; ロックオンキーを押して離したとき(ロックオンキーの単押し) if _bPressLockonKey _bPressLockonKey = false if Utility.IsInMenuMode() return endif ; ロックオンがまだならロックオンを開始する if !_bChangeTarget OnKey_Lockon(false) endif endif endif EndEvent Function SetLockOnKey(string Option = "") ; (中略) RegisterForKey(0x10A) ; 266 DPAD_UP RegisterForKey(0x10B) ; 267 DPAD_DOWN RegisterForKey(0x10C) ; 268 DPAD_LEFT RegisterForKey(0x10D) ; 269 DPAD_RIGHT RegisterForKey(0x10E) ; 270 START RegisterForKey(0x10F) ; 271 BACK RegisterForKey(0x110) ; 272 LEFT_THUMB RegisterForKey(0x111) ; 273 RIGHT_THUMB RegisterForKey(0x112) ; 274 LEFT_SHOULDER RegisterForKey(0x113) ; 275 RIGHT_SHOULDER RegisterForKey(0x114) ; 276 A RegisterForKey(0x115) ; 277 B RegisterForKey(0x116) ; 278 X RegisterForKey(0x117) ; 279 Y EndFunction