Link do Vídeo: https://youtu.be/XHRxAhbvfjQ
Está em fase de desenvolvimento e testes.
Provavelmente já existem plugins para está finalidade sem os problemas que estão apresentados logo abaixo.
Meu primeiro Plugin se basea completamente no uso de Javascript para navegadores, por isso existe alguma limitações devido ao sistema/core do Rpg Maker já existente, eu criei apenas como um atributo de Javascript diretamente no HTML do jogo:
<script type="text/javascript" src="KeysModule.js"></script>
Mas para poder adaptar ao uso direto do Rpg Maker comecei a passar para um arquivo de plugin e escrever as instruções, à principio estão em inglês.
Sobre o sistema:Ele tem 3 métodos de teclas adicionais:
keyDown: Para quando apertar uma tecla
keyUp: Para quando soltar o keyDown após 1 segundo
keyPress: Para manter a tecla segurada, não funciona com keyUp
Por exemplo, se você quiser criar um SpinAttack igual no Zelda, que o jogador tem que segurar a tecla de ataque para carregar e somente quando soltar ele usará a habilidade, você pode fazer de 2 maneiras.
Com keyDown e keyUP:
<>Comment: Spinattack - Loadding
<>If: Script: js_keyDown == "KeyJ"
<>Variable: [SpinAttack] += 1
:End
<>If: Script: js_keyUp == "KeyJ"
<>If: Variable[SpinAttack] => 500
<>Animation: ABS_SpinAttack
<>
:Else
<>Variable[SpinAttack] == 0
<>
:End
<>
:End
<>
Com keyPress:
<>If: Script: js_keyPress == "KeyJ"
<>Variable[SpinAttack] += 1
<>
:Else
<>If: Variable[SpinAttack] >= 500
<>Animation: ABS_SpinAttack
<>
:Else
<>Variable[SpinAttack] == 0
<>
:End
<>
:End
<>
As teclas de letras, números e do teclado numérico (Calculadora) funcionam com keyPress, porém teclas de função (F1,F2,F3...F12) e de combinação (Ctrl, Shift, etc) para não conflitarem com o sistema padrão do RpgMaker só podem ser usadas para keyDown.
Outro problema que provavelmente ocorrerá é no uso de caractéres especiais, como [Ç], [Ñ], [ß], [バ], etc, isso por que cada país tem seu próprio
layout de teclado padrão, ou seja, se algum jogador brasileiro ou português quiser jogador um jogo alemão que tenha usado a tecla [ß] ele não poderá, ou terá que ativar o suporte para este no painel de controle do Windows.
Eu usei o método "code" do evento de Javacript, pois era a maneira mais rápida e fácil de desenvolver o Plugin, porém nele segue somente o padrão norte-americano, por exemplo, [Ç] se torna [;] (ponto e virgula) e [;] se torna [/] (barra invertida pra direita).
Ainda preciso testar sistemas de ABS que usem combinações de teclas, como segurar uma tecla e apertar outra, o que é algo pouco usado, mas provavelmente alguém vai tentar ou precisar.
A idéia é está:
<>If: Script : js_keyPress == "KeyH"
<>If: Script : js_keyPress == "KeyJ"
<>Comment: Event Attack - Segurar [H] e apertar [J] para lançar magia da espada
<>
:End
<>
:End
<>
Após alguns testes consegui isolar todas as teclas possíveis neste sistema se usado num jogo de Rpg Maker MV:
Teclas Script Pressed | Funções Script Pressed
[Up] ArrowUp | [F1] F1
[Down] ArrowDown | [F2]------ Mostrar FPS ---------
[Left] ArrowLeft | [F3]-- Res: Responsivo/Normal --
[Right] ArrowRight | [F4]------- Tela Cheia ---------
[Insert] Insert | [F5]---- Volta para Título -----
[Home] Home | [F6] F6
[End] End | [F7] F7
[Delete] Delete | [F8] F8
[Ctrl] CtrlLeft | [F9] F9
[Ctrl] CtrlRight | [F10] F10
[Shift] ShiftLeft | [F11] F11
[Shift] ShiftRight | [F12]--- Console (Debug Mode)---
[Alt] AltLeft |
[Alt] AltRight |
[Esc] Escape (Sim) | Números Script Pressed
[Space] Space | [1] Digit1 (Sim)
[Caps] CapsLock | [2] Digit2 (Sim)
[PageUp] PageUp | [3] Digit3 (Sim)
[PageDown] PageDown | [4] Digit4 (Sim)
[Enter] Enter (Sim) | [5] Digit5 (Sim)
| [6] Digit6 (Sim)
| [7] Digit7 (Sim)
Letras Script Pressed | [8] Digit8 (Sim)
[A] KeyA (Sim) | [9] Digit9 (Sim)
[B] KeyB (Sim) | [0] Digit0 (Sim)
[C] KeyC (Sim) | [-] Minus (Sim)
[D] KeyD (Sim) | [=] Equal (Sim)
[E] KeyE (Sim) |
[F] KeyF (Sim) |
[G] KeyG (Sim) | Teclado Calc Script Pressed
[H] KeyH (Sim) | [Num Lock] NumLock (Sim)
[I] KeyI (Sim) | [1] Numpad1 (Sim)
[J] KeyJ (Sim) | [2] Numpad2 (Sim)
[K] KeyK (Sim) | [3] Numpad3 (Sim)
[L] KeyL (Sim) | [4] Numpad4 (Sim)
[M] KeyM (Sim) | [5] Numpad5 (Sim)
[N] KeyN (Sim) | [6] Numpad6 (Sim)
[O] KeyO (Sim) | [7] Numpad7 (Sim)
[P] KeyP (Sim) | [8] Numpad8 (Sim)
[Q] KeyQ (Sim) | [9] Numpad9 (Sim)
[R] KeyR (Sim) | [0] Numpad0 (Sim)
[S] KeyS (Sim) | [-] Subtract (Sim)
[T] KeyT (Sim) | [+] Add (Sim)
[U] KeyU (Sim) | [*] Multiply (Sim)
[V] KeyV (Sim) | [/] Divide (Sim)
[W] KeyW (Sim) | [.] Comma (Sim)
[X] KeyX (Sim) | [,] Decimal (Sim)
[Y] KeyY (Sim) |
[Z] KeyZ (Sim) |
|
|
Outras |
[P.Screen] PrintScreen (Só keyUp) |
[S.Lock] ScrollLock |
[Pause] Pause |