Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[XP] Script para usar F12 como Pausa.

Ver el tema anterior Ver el tema siguiente Ir abajo

[XP] Script para usar F12 como Pausa.

Mensaje por Dievafe_Ark4 el 2018-06-21, 10:20

Hola! con esta script puedes cambiar el reseteo que ocurre en el XP al pulsar F12 por una pausa.
Puedes colocar una imagen, solo tienes que poner una imagen en Pictures y llamarla pause
Yo estoy pensando en ponerle un icono de pausa, pulsar F12 o algo parecido.
Código:
#==============================================================================
# ** Pausing with F12
#------------------------------------------------------------------------------
# Zeriab
# Version 1.1
# 2009-05-25 (Year-Month-Day)
#------------------------------------------------------------------------------
# * Version History :
#
#   Version 1.0 -------------------------------------------------- (2009-05-22)
#   - First release
#
#   Version 1.1 -------------------------------------------------- (2009-05-25)
#   - The pause image now appears immediately when F12 is pressed.
#   - Transitions are cut short rather than restarted when F12 is pressed.
#------------------------------------------------------------------------------
# * Description :
#
#   This script changes the functionality of pressing F12 during the game
#   from resetting the game to (un)pausing the game. A picture is displayed
#   while the game is paused. (Having a picture is optional)
#------------------------------------------------------------------------------
# * License :
#
#   Copyright (C) 2009  Zeriab
#
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU Lesser Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU Lesser Public License for more details.
#
#   For the full license see <http://www.gnu.org/licenses/>
#   The GNU General Public License: http://www.gnu.org/licenses/gpl.txt
#   The GNU Lesser General Public License: http://www.gnu.org/licenses/lgpl.txt
#------------------------------------------------------------------------------
# * Compatibility :
#
#   Is most likely not compatible with other F12 prevention scripts.
#------------------------------------------------------------------------------
# * Instructions :
#
#   Place this script anywhere above main.
#   The image file 'pause' present in Graphics/Pictures is used.
#   Note: No picture is shown if there is no 'pause' in Graphics/Pictures.
#==============================================================================

#=============================================================================
# ** Reset class (because it won't be defined until F12 is pressed otherwise)
#=============================================================================
class Reset < Exception
  
end
#=============================================================================
# ** Module Graphics
#=============================================================================
module Graphics
  class << self
    #-------------------------------------------------------------------------
    # * Aliases Graphics.update and Graphics.transition
    #-------------------------------------------------------------------------
    unless self.method_defined?(:zeriab_f12_pause_update)
      alias_method(:zeriab_f12_pause_update, :update)
      alias_method(:zeriab_f12_pause_transition, :transition)
    end
    #-------------------------------------------------------------------------
    # Change the update method so F12 toggles pause
    #-------------------------------------------------------------------------
    def update(*args)
      # Try to update normally
      begin
        zeriab_f12_pause_update(*args)
        return
      rescue Reset
        # Do nothing
      end
      # F12 has been pressed
      done = false
      # Store frame count
      frame_count = Graphics.frame_count
      # Show pause image
      @sprite = Sprite.new
      @sprite.z = 9999
      begin
        @sprite.bitmap = RPG::Cache.picture('pause')
      rescue
        @sprite.bitmap = Bitmap.new(32,32)
      end
      # Keep trying to do the update
      while !done
        begin
          zeriab_f12_pause_update(*args)
          done = true
        rescue Reset
          # Do Nothing
        end
      end
      # F12 has been released, update until it is pressed again
      while done
        begin
          zeriab_f12_pause_update(*args)
        rescue Reset
          done = false
        end
      end
      # F12 has been pressed, keep trying to update
      while !done
        begin
          zeriab_f12_pause_update(*args)
          done = true
        rescue Reset
          # Do nothing
        end
      end
      # F12 has been released, dispose pause image
      @sprite.dispose
      # Set proper frame count
      Graphics.frame_count = frame_count
    end
    #-------------------------------------------------------------------------
    # Changes the transition so it is cut short if F12 is pressed
    #-------------------------------------------------------------------------
    def transition(*args)
      done = false
      # Keep trying to do the transition
      while !done
        begin
          zeriab_f12_pause_transition(*args)
          done = true
        rescue Reset
          # Set transition length to 0 frames.
          args[0] = 0
        end
      end
    end
  end
end

El scripter que la hizo se llama Zeriab.

También tengo las scripts para que el juego comience a pantalla completa y se quede así, estando desactivada la opción de Alt+ enter.
Lo que hay que hacer es primero colocar la script de Full screen, que va en main, arriba
Código:
if not $full
    $showm = Win32API.new 'user32', 'keybd_event', %w(l l l l), ''
    $showm.call(18,0,0,0)
    $showm.call(13,0,0,0)
    $showm.call(13,0,2,0)
    $showm.call(18,0,2,0)
    $full = 1
  end

Y luego la de desactivar Alt + enter, en mi caso funcionó
Código:
# Disable ALT+Enter
  reghotkey = Win32API.new('user32', 'RegisterHotKey', 'LIII', 'I')
  reghotkey.call(0, 1, 1, 0x0D)

Y con estas scripts, es posible con algún cambio poder desactivar el boton F1 y el comando Alt+F4?
Lo realmente avanzado sería poder configurar el juego primero con las opciones de F1 y luego añadir la script para
que no volviera a aparecer, creo que quedaría mejor.


Última edición por Dievafe_Ark4 el 2018-06-28, 00:34, editado 1 vez
avatar
Dievafe_Ark4
Iniciado
Iniciado

0/3

Créditos 17

Gracias : 2

Volver arriba Ir abajo

Re: [XP] Script para usar F12 como Pausa.

Mensaje por Dievafe_Ark4 el 2018-06-26, 17:02

Alguien sabe como desactivar el botón F1? que código tiene? Podría ser útil, no queda tan bien terminado si puede aparecer lo de Propiedades : Game...
avatar
Dievafe_Ark4
Iniciado
Iniciado

0/3

Créditos 17

Gracias : 2

Volver arriba Ir abajo

Re: [XP] Script para usar F12 como Pausa.

Mensaje por Wecoc el 2018-06-26, 19:17

En RPG maker XP no puedes desactivar directamente una tecla así via script, al menos sin DLL personalizada. RegisterHotKey solo sirve para combinaciones de teclas con Alt, Shift o similares. Además por lo que he visto tampoco parece que haya ningún script disponible para eso con DLL.

Lo que sí puedes hacer es quitar la línea que llama la ventana F1 en el propio RGSS102J.dll de tu proyecto usando Resource Hacker. Según la versión del maker que tengas en vez de '102J' tendrá otro nombre parecido, pero es básicamente lo mismo.

Aquí hay un tutorial de eso: Las imágenes estan caídas pero se puede seguir sin ellas:
How to disable Fullscreen Alt+Enter function

El tutorial es para desactivar Alt+Enter (última línea) pero para desactivar F1 y F2 sirve igual, las tres líneas estan juntas como puedes ver aquí.



Si quieres cargarte la tecla F1 simplemente borras esa linea VK_F1 y guardas los cambios. El de la tecla F2 no hace falta porque igualmente solo funciona en modo Debug, no en la versión definitiva del proyecto... y para testear viene bien tenerla.

Es un modo similar que el que se usa para editar el icono del juego, y no va contra el EULA.


Última edición por Wecoc el 2018-06-26, 23:49, editado 1 vez
avatar
Wecoc
Administrador
Administrador



Créditos 12297

Gracias : 648

Volver arriba Ir abajo

Re: [XP] Script para usar F12 como Pausa.

Mensaje por Dievafe_Ark4 el 2018-06-26, 22:01

Gracias master! El problema es que en el programa "resource hacker" me aparece que el archivo no tiene una carpeta de recursos estándar..,posiblemente porque haya sido comprimido con un "compresor exe", tengo que averiguar cómo solventar eso
avatar
Dievafe_Ark4
Iniciado
Iniciado

0/3

Créditos 17

Gracias : 2

Volver arriba Ir abajo

Re: [XP] Script para usar F12 como Pausa.

Mensaje por newold el 2018-06-27, 07:56

busca el programa que se llama Heaventools Resource Tuner (yo tengo la versión v2.01) es como el resource hacker, bueno algo mejor y si te abre bien los archivos dll del maker. Puedes incluso editar los formularios que muestra el editor para hacerlos más grandes por ejemplo (Ejemplo hacer más grande la ventana que aparece con el comando llamar script de los eventos, pero eso ya es otro tema :D)
avatar
newold
Principiante
Principiante

0/3

Créditos 1267

Gracias : 133

Volver arriba Ir abajo

Re: [XP] Script para usar F12 como Pausa.

Mensaje por Dievafe_Ark4 el 2018-06-27, 15:39

bueno pues lo he intentado con los dos programas, me bajé el Rgss102J para intentarlo con ese, que yo estoy en la 100J y no funciona...aunque le borre esas líneas sigues pudiendo pulsar F1,F2 y funcionan...
Voy a ver si actualizo el maker a la 1.02 o otra y pruebo con esa versión.
avatar
Dievafe_Ark4
Iniciado
Iniciado

0/3

Créditos 17

Gracias : 2

Volver arriba Ir abajo

Re: [XP] Script para usar F12 como Pausa.

Mensaje por Wecoc el 2018-06-27, 16:06

aunque le borre esas líneas sigues pudiendo pulsar F1,F2 y funcionan...

Eso es que no se actualizó. Mira mi screen, una vez hecho el cambio antes de guardar dale al botón "Compile Script", luego guarda. Por cierto se debería crear en la misma carpeta una dll con nombre RGSS102J_original.dll o algo así (puedes borrarla). Una vez hecho eso F1 dejará de funcionar.
avatar
Wecoc
Administrador
Administrador



Créditos 12297

Gracias : 648

Volver arriba Ir abajo

Re: [XP] Script para usar F12 como Pausa.

Mensaje por Dievafe_Ark4 el 2018-06-30, 18:41

Bueno lo conseguí, está funcionando 100% sin el comando F1! Al final usé el programa Resource tuner 2 y la versión en la que me funcionó fue con el DLL
RGSS102E
avatar
Dievafe_Ark4
Iniciado
Iniciado

0/3

Créditos 17

Gracias : 2

Volver arriba Ir abajo

Re: [XP] Script para usar F12 como Pausa.

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.