Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[Pedido] Script para desactivar alt+enter

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [Pedido] Script para desactivar alt+enter

Mensaje por HatsuHurimi el 2018-10-17, 21:30

Hola, quisiera saber si existe un script para lo que menciono en el título, y asignarle la función de pantalla completa a otra tecla (por ej: F4, como en algunos juegos). Gracias de antemano.

PD: ¿Es normal que me dé error al presionar F12?
avatar
HatsuHurimi
Novato
Novato

0/3

Créditos 93

Gracias : 5

Volver arriba Ir abajo

RPG Maker XP Re: [Pedido] Script para desactivar alt+enter

Mensaje por Ledai el 2018-10-18, 10:48

sí, es normal que al presionar f12 te dé error es por culpa del fixt de Font (debe ser el ultimo de la lista de script por defecto)
si no me equivoco, debes añadirle un comando en la segunda línea de este:
sustituye la segunda línea para que quede así:
[line]alias font_fix_initialize initialize unless $@[/line] 
y creo que debería solucionar le craseo al reiniciar con f12

Sobre lo de la pantalla completa; no estoy del todo segura pero creo que, es más una función de Windows que del maker; por lo que cambiar las teclas no sé si se podrá a través de script o necesitarías el Reshaker, eso mejor que te lo comente algún profesional, tengo entendido que sí puedes cambiar las teclas, pero no recuerdo el método concreto.
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 5217

Gracias : 217

Volver arriba Ir abajo

RPG Maker XP Re: [Pedido] Script para desactivar alt+enter

Mensaje por Wecoc el 2018-10-20, 21:26

Lo de F12 es un bug, tal como dice Ledai en los alias al final de la línea tienes que añadir [line]unless $@[/line] para que no ocurra.

Lo otro, si quieres desactivar Alt+Enter y en vez de eso hacer que la opción pantalla completa esté en otra tecla necesitarás un programa llamado Resource Hacker para modificar la DLL del juego. Es más fácil de lo que suena, son solo 5 pasos.

Nota:
Si no quieres desactivar Alt+Enter pero además quieres que se pueda activar/desactivar pantalla completa con F4 es aún mucho más fácil, se puede hacer con un pequeño script.

Te explicaré como hacerlo con Resource Hacker.

1) Descarga Resource Hacker. Es gratis.

2) En la carpeta de tu proyecto hay una librería llamada RGSS102J.dll o algo parecido. Tienes que abrirla con el Resource Hacker.

3) En las carpetas a mano izquierda tienes que ir a Accelerators >> 102 >> 1041

Verás que hay una línea así
[line]VK_RETURN, 40002, NOINVERT, ALT, VIRTKEY[/line]

Tienes que cambiarla por esto
[line]VK_F4, 40002, NOINVERT, VIRTKEY[/line]

Nota:
Nótese que ahí el VK_F4 sería la nueva tecla. Si se quisiera quitar totalmente de modo que ninguna tecla responda a pantalla completa, lo que se suele hacer es cambiarlo a VK_F13.
Ese pequeño truco hace que no se pueda acceder de ningún modo con teclado puesto que no hay tecla F13, pero desde script sí está definida así que desde ahí aún se puede activar/desactivar (por lo que luego puedes forzar el juego a estar siempre en pantalla completa, o cambiarlo desde un menú Opciones, etc)

4) Dale al botón "Compile Script" o a Archivo -> Compilar dependiendo de la versión.
Luego a Archivo -> Guardar

Se creará una copia de la DLL original en la misma carpeta por si acaso.

5) Cierra Resource Hacker y prueba el juego a ver si ahora lo de la tecla F4 va como esperabas.
Una vez todo funciona bien puedes borrar la DLL original.


Última edición por Wecoc el 2018-10-21, 22:49, editado 1 vez
avatar
Wecoc
Administrador
Administrador



Créditos 12310

Gracias : 654

Volver arriba Ir abajo

RPG Maker XP Re: [Pedido] Script para desactivar alt+enter

Mensaje por Ledai el 2018-10-21, 11:59

Punto:
0) Hazlo en una copia de seguridad del proyecto... ya sabes, no debería de pasar nada pero por si acaso... ...

Yo también me apunto el tutorial!!

+1
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 5217

Gracias : 217

Volver arriba Ir abajo

RPG Maker XP Re: [Pedido] Script para desactivar alt+enter

Mensaje por HatsuHurimi el 2018-10-21, 20:56

@Wecoc escribió:
3) En las carpetas a mano izquierda tienes que ir a Accelerators >> 102 >> 1024

Verás que hay una línea así
[line]VK_RETURN, 40002, NOINVERT, ALT, VIRTKEY[/line]

Tienes que cambiarla por esto
[line]VK_F4, 40002, NOINVERT, VIRTKEY[/line]


Gracias por responder. Por cierto, es raro, pero en el DLL el accelerators contiene los números 102 >> 1041, y no está el "VK" sino lo siguiente:


[line]102 ACCELERATORS
LANGUAGE LANG_JAPANESE, 0x1
{
43698, 6553, SHIFT, ASCII
2868, 49889, CONTROL, SHIFT, VIRTKEY
49746, 31246, NOINVERT, ALT, CONTROL, ASCII
}[/line]

Debo decir que tuve que descargarlo pues el proyecto no lo traía.
Actualización: logré hacerlo siguiendo todos los pasos, pero al correr el juego aparece esto:
avatar
HatsuHurimi
Novato
Novato

0/3

Créditos 93

Gracias : 5

Volver arriba Ir abajo

RPG Maker XP Re: [Pedido] Script para desactivar alt+enter

Mensaje por Wecoc el 2018-10-21, 22:49

Sí, el número lo puse mal, es 1041, ahora lo cambio. Igualmente solo hay uno así que no hay pérdida.

Según veo tienes una versión algo distinta de la DLL y seguramente también del maker en general, de ahí esas diferencias.

Donde encontrar la DLL de tu versión:
Si tienes una versión oficial del maker, no necesitas bajarte la DLL de internet, aunque en la carpeta del proyecto no esté. Solo tienes que sacarla de los archivos del programa y la copias a la carpeta de tu juego. Suele estar en C:/Achivos de Programa/Enterbrain/RPGXP

Lo que dije sirve con la versión 1.02a [Release 3], dependiendo de la versión del maker que tengas puede cambiar un poco.

De todos modos imagino que serviría igual cambiando esto

[line]49746, 31246, NOINVERT, ALT, CONTROL, ASCII[/line]

por esto:

[line]49746, 31246, NOINVERT, VK_F4, ASCII[/line]

Si no te sirve de ninguna manera habrá que pasar al plan B y hacer un script emulador de Alt+Enter en F4, pero en ese caso Alt+Enter seguirá sirviendo para pantalla completa también.
avatar
Wecoc
Administrador
Administrador



Créditos 12310

Gracias : 654

Volver arriba Ir abajo

RPG Maker XP Re: [Pedido] Script para desactivar alt+enter

Mensaje por HatsuHurimi el 2018-10-23, 19:46

Eh...


Creo que no va a funcionar Sweat igual gracias por sus esfuerzo chicos. A veces me suceden esas cosas cuando intento seguir los pasos de un tutorial de programación, scripts y esas cosas... ahora toca buscar un emulador.
avatar
HatsuHurimi
Novato
Novato

0/3

Créditos 93

Gracias : 5

Volver arriba Ir abajo

RPG Maker XP Re: [Pedido] Script para desactivar alt+enter

Mensaje por orochii el 2018-10-23, 22:36

No sé qué hiciste o has intentado hasta el momento pero es bastante sencillo. Pero sí es fácil de estropear xd.

Esto es lo que tienes de entrada, sin haber modificado nada.
Código:
102 ACCELERATORS
LANGUAGE LANG_JAPANESE, 0x1
{
 VK_F1, 40003, NOINVERT, VIRTKEY
 VK_F2, 40004, NOINVERT, VIRTKEY
 VK_RETURN, 40002, NOINVERT, ALT, VIRTKEY
}

Básicamente, lo que quieres cambiar es el Alt-Enter. Si te fijas viene uno que es F1 (es el menú de opciones default), otro que es F2 (es mostrar FPS), y otro que dice RETURN (es el nombre alternativo para Enter, ese es el que buscamos).

Nos concentramos entonces en esa linea:
[line]VK_RETURN, 40002, NOINVERT, ALT, VIRTKEY[/line]

[line]VK_RETURN[/line] es un código identificador para Enter. ¿Porqué sólo Enter y no Alt? Porque la tecla que ejecuta la acción es el Enter, mientras esté presionado ALT. [line]ALT[/line] se le denomina un "modificador", y por eso aparece poco después en la linea, es como "esto sucede mientras que Alt esté presionado". Por si acaso, Windows sólo acepta algunos valores como modificadores (ALT, SHIFT, CONTROL...), no puedes poner que lea la combinación de teclas F-G xD. Son cosas del sistema operativo. Otra cosa es que si no me equivoco no hay diferencia entre Alt izquierdo y Alt derecho por ejemplo.

El valor este [line]40002[/line] es el código de lo que ejecuta, ni idea más que eso xD.

[line]NOINVERT[/line] es una propiedad más que nos pide, igual [line]VIRTKEY[/line]. Esas las dejamos igual.

Rascándose un poco la cabeza podemos probar con esto, similar a las otras dos líneas
[line]VK_F4, 40002, NOINVERT, VIRTKEY[/line]
Como ves, cambiamos [line]VK_RETURN[/line] por [line]VK_F4[/line], y quitamos la propiedad ALT (junto a una de las comillas porque sino sobran jaja.

El código debería quedar así.

Código:
102 ACCELERATORS
LANGUAGE LANG_JAPANESE, 0x1
{
   VK_F1, 40003, NOINVERT, VIRTKEY
   VK_F2, 40004, NOINVERT, VIRTKEY
   VK_F4, 40002, NOINVERT, VIRTKEY
}

Y con eso ya, cambiaste de Alt-Enter a sólo F4.

Otra información que puede ser confusa y por eso ni me preocupo por el formato xD:
Aún se pueden hacer más cosas. Por ejemplo, aunque no hay ningún teclado con F25, puedes poner perfectamente ahí [line]VK_F25[/line] xD. Windows tiene referencias para un montón de teclas raras, algunas son únicas de ciertos teclados (tecla KANJI, KANA, HANJA y otras que son para teclados con modos de entrada especiales por ejemplo). ¿Qué tiene de bueno esto? Que si pones F25, no hay teclado en el mundo que pueda poner pantalla completa xD, así lo desactivas del todo. ¿Qué mas tiene de bueno esto? Que por script, puedes decirle a Windows que simule que se ha presionado el F25 x'D!. ¿¿Y QUÉ TIENE DE BUENO ESTO?? Que puedes añadir una opción para poner en pantalla completa en un menú de opciones (si sabes scriptear), guarde la configuración en algún lugar, e inicie en pantalla completa si estaba configurado así luego.

Salut!
avatar
orochii
Reportero

0/3

Créditos 7810

Gracias : 470

Volver arriba Ir abajo

RPG Maker XP Re: [Pedido] Script para desactivar alt+enter

Mensaje por HatsuHurimi el 2018-10-24, 00:09

@orochii Gracias por la ayuda.

El siguiente error en aparecer es que no se pone "en verde" la opción de guardar el archivo, o sea, simplemente no me permite hacerlo ni con Ctrl+S.

(Ignorar que el recuadro es de color verde, lo puse así, no es la raíz del problema).
avatar
HatsuHurimi
Novato
Novato

0/3

Créditos 93

Gracias : 5

Volver arriba Ir abajo

RPG Maker XP Re: [Pedido] Script para desactivar alt+enter

Mensaje por Wecoc el 2018-10-24, 14:27

Por algún motivo con tu DLL no funciona así que habrá que pasar al plan B y usar un script. Eso significa que Alt+Enter seguirá funcionando, solo que además podrás usar F4 para cambiar a pantalla completa.

Ponlo encima de main.

Código:
module Input
  #--------------------------------------------------------------------------
  @GetKeyState = Win32API.new("user32", "GetAsyncKeyState", "i", "i")
  @KeydbEvent = Win32API.new("user32", "keybd_event", "llll", "")
  #--------------------------------------------------------------------------
  FULLSCREEN_KEY = 0x73  # F4
  #--------------------------------------------------------------------------
  class << self
    alias fullscreen_upd update unless $@
    def update(*args)
      fullscreen_upd(*args)
      if (@GetKeyState.call(FULLSCREEN_KEY) & 0x8000) > 0
        @key_counter += 1
      else
        @key_counter = 0
      end
      if @key_counter == 1
        @KeydbEvent.call(18,0,0,0)
        @KeydbEvent.call(13,0,0,0)
        @KeydbEvent.call(13,0,2,0)
        @KeydbEvent.call(18,0,2,0)
      end
    end
  end
end
avatar
Wecoc
Administrador
Administrador



Créditos 12310

Gracias : 654

Volver arriba Ir abajo

RPG Maker XP Re: [Pedido] Script para desactivar alt+enter

Mensaje por HatsuHurimi el 2018-10-25, 17:20

Gracias @Wecoc, ¡esto sí me funciona!
avatar
HatsuHurimi
Novato
Novato

0/3

Créditos 93

Gracias : 5

Volver arriba Ir abajo

RPG Maker XP Re: [Pedido] Script para desactivar alt+enter

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.