TrequiellJue Mar 21, 2013 7:47 pm
Usuario Nv7
Hola a todos:
No se a vosotros, pero yo prefiero que cuando se pulse la tecla "M" aparezca un mapa o cuando se pulse a "L" se encienda la linterna, por ejemplo.
Teniendo en cuenta que además uso un sistema de batalla ABS, que puede requerir de 3 teclas mínimo, las opciones que ofrece el rpg maker se quedan cortas.
He encontrado la solución a ésto mediante un script sencillito de usar.
Éstas se pueden designar mediante "condiciones y efectos", solo que en lugar de marcar la opción "botón", utilizaremos justo la que hay debajo "script" (4ªpestaña abajo del todo), y ahí harémos la llamada correspondiente.
A modo de ejemplo:
Input.trigger?(Key::F) que indica que fue presionada la tecla F
En el script dice que es compatilble con VX, VXACE y XP. Yo estoy usando VXACe y funciona perfecto. Ahora mi mapa sale cuando pulso la maldita tecla "M" XD
Los Créditos son para: Raizen
No se a vosotros, pero yo prefiero que cuando se pulse la tecla "M" aparezca un mapa o cuando se pulse a "L" se encienda la linterna, por ejemplo.
Teniendo en cuenta que además uso un sistema de batalla ABS, que puede requerir de 3 teclas mínimo, las opciones que ofrece el rpg maker se quedan cortas.
He encontrado la solución a ésto mediante un script sencillito de usar.
Éstas se pueden designar mediante "condiciones y efectos", solo que en lugar de marcar la opción "botón", utilizaremos justo la que hay debajo "script" (4ªpestaña abajo del todo), y ahí harémos la llamada correspondiente.
A modo de ejemplo:
Input.trigger?(Key::F) que indica que fue presionada la tecla F
En el script dice que es compatilble con VX, VXACE y XP. Yo estoy usando VXACe y funciona perfecto. Ahora mi mapa sale cuando pulso la maldita tecla "M" XD
Los Créditos son para: Raizen
- Código:
#==================================================================
# Full Keyboard Module
# Autor: Raizen
# Compatibilidad: RMVX, RMVXA, RMXP
#==================================================================
# Instrucciones:
# Para insertar una tecla basta mirar la tabla de abajo
# y utilizar el comando de tecla por script respectivo, que son:
# Este comando es como un gatillo, al apretar indica que fue apretado una vez
# y solo vuelve a retornar a verdadero en caso de que se soltó la tecla y presiona nuevamente.
# Input.trigger?(tecla)
# Este es idéntico al de los eventos, indica si la tecla esta presionada.
# Input.press?(tecla)
# Este es utilizado en las tiendas y menús, indica que esta activado en el momento que
# se presiona, y indica que esta desactivado hasta un cierto tiempo, despues vuelve a indicar
# que esta activado.
# Input.repeat?(tecla)
# Es sencillo de utilizar, basta mirar la tabla de abajo y colocar
# un Key:: donde se indica "tecla", por ejemplo
# Input.trigger?(Key::F) => indica que fue presionada la tecla F
# Input.press?(Key::Ctrl) => indica que Ctrl está presionado
# Input.repeat?(Key::K6) => indica que el numerador 6 fue presionada
# y hará la verificación de cuanto tiempo esta presionado.
# Coloque ese código en las Condiciones y efectos, en la cuarta pestaña, donde dice script:
# Input.trigger?(Key::valor de la tecla abajo) o
# Input.press?(Key::valor de la tecla abajo) o
# Input.repeat?(Key::valor de la tecla abajo)
#==================================================================
module Key
K0 = 0x30 #Tecla 0
K1 = 0x31 #Tecla 1
K2 = 0x32 #Tecla 2
K3 = 0x33 #Tecla 3
K4 = 0x34 #Tecla 4
K5 = 0x35 #Tecla 5
K6 = 0x36 #Tecla 6
K7 = 0x37 #Tecla 7
K8 = 0x38 #Tecla 8
K9 = 0x39 #Tecla 9
Ced = 0xBA # Tecla Ç
A = 0x41 #Tecla A
B = 0x42 #Tecla B
C = 0x43 #Tecla C
D = 0x44 #Tecla D
E = 0x45 #Tecla E
F = 0x46 #Tecla F
G = 0x47 #Tecla G
H = 0x48 #Tecla H
I = 0x49 #Tecla I
J = 0x4A #Tecla J
K = 0x4B #Tecla K
L = 0x4C #Tecla L
M = 0x4D #Tecla M
N = 0x4E #Tecla N
O = 0x4F #Tecla O
P = 0x50 #Tecla P
Q = 0x51 #Tecla Q
R = 0x52 #Tecla R
S = 0x53 #Teclar S
T = 0x54 #Tecla T
U = 0x55 #Tecla U
V = 0x56 #Tecla V
W = 0x57 #Tecla W
X = 0x58 #Tecla X
Y = 0x59 #Tecla Y
Z = 0x5A #Tecla Z
Mouse1 = 0x01 #Boton izquierdo del mouse
Mouse2 = 0x02 #Boton derecho del mouse
Cancel = 0x03 #Cancelar/interrumpir proceso
Mousewheel = 0x04 #Boton de en medio del mouse
Mouse3 = 0x05 #Windows 2000/XP: Boton X1 del mouse
Mouse4 = 0x06 #Windows 2000/XP: Boton X2 del mouse
Back = 0x08 #Tecla BACKSPACE
Tab = 0x09 #Tecla TAB
Clear = 0x0C #Tecla CLEAR
Enter = 0x0D #Tecla ENTER
Shift = 0x10 #Tecla SHIFT
Ctrl = 0x11 #Tecla CTRL
Alt = 0x12 #Tecla ALT
Pause = 0x13 #Tecla PAUSE
Caps = 0x14 #Tecla CAPS LOCK
Esc = 0x1B #Tecla ESC
Space = 0x20 #Tecla SPACEBAR (Espacio)
Pageup = 0x21 #Tecla PAGE UP
Pagedown = 0x22 #Tecla PAGE DOWN
End = 0x23 #Tecla END
Home = 0x24 #Tecla HOME
Left = 0x25 #Tecla LEFT ARROW
Up = 0x26 #Tecla UP ARROW
Right = 0x27 #Tecla RIGHT ARROW
Down = 0x28 #Tecla DOWN ARROW
Select = 0x29 #Tecla SELECT
Print = 0x2A #Tecla PRINT
Execute = 0x2B #Tecla EXECUTE
Print = 0x2C #Tecla PRINT SCREEN
Ins = 0x2D #Tecla INS
Del = 0x2E #Tecla DEL
Help = 0x2F #Tecla HELP
Lw = 0x5B #Tecla Windows de lado izquierdo
Lr = 0x5C #Tecla Windows de lado derecho
Apps = 0x5D #Menu de contexto
Sleep = 0x5F #Tecla Sleep
Num0 = 0x60 #Tecla 0 (T. numérico)
Num1 = 0x61 #Tecla 1 (T. numérico)
Num2 = 0x62 #Tecla 2 (T. numérico)
Num3 = 0x63 #Tecla 3 (T. numérico)
Num4 = 0x64 #Tecla 4 (T. numérico)
Num5 = 0x65 #Tecla 5 (T. numérico)
Num6 = 0x66 #Tecla 6 (T. numérico)
Num7 = 0x67 #Tecla 7 (T. numérico)
Num8 = 0x68 #Tecla 8 (T. numérico)
Num9 = 0x69 #Tecla 9 (T. numérico)
NumX = 0x6A #Tecla Multiplicar
NumA = 0x6B #Tecla Adicionar
NumS = 0x6C #Tecla Separador
NumM = 0x6D #Tecla Sustraer
Dec = 0x6E #Tecla Decimal
Div = 0x6F #Tecla Dividir
F1 = 0x70 #Tecla F1
F2 = 0x71 #Tecla F2
F3 = 0x72 #Tecla F3
F4 = 0x73 #Tecla F4
F5 = 0x74 #Tecla F5
F6 = 0x75 #Tecla F6
F7 = 0x76 #Tecla F7
F8 = 0x77 #Tecla F8
F9 = 0x78 #Tecla F9
F10 = 0x79 #Tecla F10
F11 = 0x7A #Tecla F11
F12 = 0x7B #Tecla F12
NUMLOCK = 0x90 #Tecla NUM LOCK
SCROLL = 0x91 #Tecla SCROLL LOCK
end
module Input
@trigger_keys = []
@index = []
GetKeyState = Win32API.new("user32","GetAsyncKeyState",'i','i')
module_function
def press(key)
GetKeyState.call(key) != 0
end
def trigger(key)
unless GetKeyState.call(key) == 0
@trigger_keys.include?(key) ? (return false) : @trigger_keys.push(key)
return true
else
@trigger_keys.delete(key) if @trigger_keys.include?(key)
return false
end
end
def repeat(key)
unless GetKeyState.call(key) == 0
@trigger_keys.push(key) unless @trigger_keys.include?(key)
index = @trigger_keys.index(key)
@index[index] = 0 unless @index[index]
@index[index] += 1
return true if @index[index] == 1
@index[index] >= 30 && @index[index] % 4 == 1 ? (return true) : (return false)
else
index = @trigger_keys.index(key) if @trigger_keys.include?(key)
@index[index] = nil if index
end
end
end
class << Input
alias raizen_trigger? trigger?
alias raizen_repeat? repeat?
alias raizen_press? press?
def trigger?(key)
key.is_a?(Integer) ? trigger(key) : raizen_trigger?(key)
end
def repeat?(key)
key.is_a?(Integer) ? repeat(key) : raizen_repeat?(key)
end
def press?(key)
key.is_a?(Integer) ? press(key) : raizen_press?(key)
end
end