¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Últimos temas
» Hola mucho gusto
por Hk Diamond Hoy a las 13:49

» [AYUDA]Hootshot de moghunter
por Rudy_kinneas Hoy a las 12:03

» Holaaa a tod@s!!!
por nacho Hoy a las 09:47

» SoraDeathss se presenta!
por chronoMxx Hoy a las 07:50

» {AYUDA}Blizz-ABS Script
por chronoMxx Hoy a las 06:45

» las cosas como son...
por Bleuw Hoy a las 04:18

» Busco artistas graficos para proyecto serio
por Rudy_kinneas Ayer a las 20:52

» Duda con música en RPG MV
por Fleabass Ayer a las 20:25

» Recopilación de páginas con recursos RPG Maker
por RiKennedy-Maker Ayer a las 20:00

» [DUDA] Titulo de RPGM XP con varias imagenes
por Wecoc Ayer a las 08:38

Afiliados
Estadísticas
Tenemos 3381 miembros registrados.
El último usuario registrado es Hk Diamond.

Nuestros miembros han publicado un total de 79749 mensajes en 11244 argumentos.
Navega con Google Chrome
[DESCARGA]

[VXAce] Opción de Fullscreen (Yanfly Scripts)

 :: RPG Maker :: Ayuda RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker VX ACE [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por Oscar92player el 2016-10-26, 11:07

Hola a todos, recientemente he podido adquirir una copia de VX Ace en Steam y ahora estoy intentando hacer un proyecto base con el que empezar otros sin configuración predefinida. Una de las cosas que he podido hacer ha sido añadirle un sistema de input con el que funcionan los mandos de XBox360/One, y bloquear la ventana de opciones que se abre con F1, entre otras cosas.

Sin embargo, me falta por manejar el tema del Fullscreen (pantalla completa), ya que no quiero que el usuario se vea obligado pulsar Alt+Enter cada vez que abre el juego, ni tampoco forzar la pantalla completa cada vez que se inicie. Además, como desactivé el menú de opciones gráficas de la tecla F1, ahora es imposible acceder a ese modo desde ahí.

La solución más obvia a este caso sería añadirle la opción dentro del propio menú de juego, y para ello me valgo de uno de los scripts de Yanfly: el Ace System Options, que podéis encontrar en el siguiente link:

Yanfly Engine Ace - System Options

Con este script, y en las líneas que os voy a dejar a continuación, se pueden manejar opciones de sonido, interfaz y jugabilidad. Dentro de las opciones predefinidas, se encuentran las "custom", en la que uno se puede valer de interruptores o variables, para crear tu propia línea de opciones dentro del menú. He aquí las líneas:

Código:
#--------------------------------------------------------------------------
    # - Custom Switches -
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    # If you want your game to have system options other than just the ones
    # listed above, you can insert custom switches here to produce such an
    # effect. Adjust the settings here as you see fit.
    #--------------------------------------------------------------------------
    CUSTOM_SWITCHES ={
    # -------------------------------------------------------------------------
    # :switch    => [Switch, Name, Off Text, On Text,
    #                Help Window Description
    #               ], # Do not remove this.
    # -------------------------------------------------------------------------
      :switch_1  => [ 1, "Custom Switch 1", "OFF", "ON",
                     "Help description used for custom switch 1."
                    ],
    # -------------------------------------------------------------------------
      :switch_2  => [ 2, "Custom Switch 2", "OFF", "ON",
                     "Help description used for custom switch 2."
                    ],
    # -------------------------------------------------------------------------
    } # Do not remove this.
    
    #--------------------------------------------------------------------------
    # - Custom Variables -
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    # If you want your game to have system options other than just the ones
    # listed above, you can insert custom variables here to produce such an
    # effect. Adjust the settings here as you see fit.
    #--------------------------------------------------------------------------
    CUSTOM_VARIABLES ={
    # -------------------------------------------------------------------------
    # :variable   => [Switch, Name, Colour1, Colour2, Min, Max,
    #                 Help Window Description
    #                ], # Do not remove this.
    # -------------------------------------------------------------------------
      :variable_1 => [ 1, "Custom Variable 1", 9, 1, -100, 100,
                      "Help description used for custom variable 1."
                     ],
    # -------------------------------------------------------------------------
      :variable_2 => [ 2, "Custom Variable 2", 10, 2, -10, 10,
                      "Help description used for custom variable 2."
                     ],
    # -------------------------------------------------------------------------
    } # Do not remove this.

Me gustaría usar la opción de los interruptores para cambiar entre Modo Ventana y Modo Pantalla Completa dentro del mismo juego, y de hecho el mismo script ya te aporta la opción de cambiar entre ON y OFF, pero el caso es que no sé cómo hace la llamada a la pantalla completa cuando está en ON o al modo ventana si está en OFF, si hay que hacer alguna llamada de script, o si se trata de algo más complejo y necesito un script add-on para esta funcionalidad.

He tratado de pedir ayuda en los foros oficiales, pero me temo que desde la salida del MV, los RPG Makers VX y Ace están de capa caída, y la ayuda más bien escasa.

¡Gracias a todos por adelantado!

Oscar92player
Soñador
Soñador

0/3

Créditos 255

Gracias : 16

Volver arriba Ir abajo

RPG Maker VX ACE Re: [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por BreinLand entertainment el 2016-10-26, 19:37

Si quieres hacerlo desde el menú de opciones de Yanfly, tendrás que hacerlo con llamadas de script.

La llamada de Script en cuestión sería la siguiente: (Créditos a Cidiomar)
Código:
User32DLL   = DL.dlopen('user32')
User32DLL__keybd_event  = DL::CFunc.new(User32DLL.sym('keybd_event'), DL::TYPE_VOID, 'keybd_event', :stdcall)
User32DLL__keybd_event.call([0xA4, 0, 0, 0])  # Simulates ALT key down
User32DLL__keybd_event.call([0x0D, 0, 0, 0])  # Simulates ENTER key down
User32DLL__keybd_event.call([0x0D, 0, 0x0002, 0]) # Simulates ALT key release
User32DLL__keybd_event.call([0xA4, 0, 0x0002, 0]) # Simulates ENTER key release

Tendrías que hacer un evento común que se activase con el interruptor que pongas en el menú de yanfly (digamos "Fullscreen"), y luego asegurarte de que después de activarlo una vez no se vuelva a activar hasta que se apage el interruptor.

Esto puedes hacerlo con 2 interruptores y 2 eventos comunes:

  • Creas el evento común "A pantalla completa", y pones un condicional en el que si NO está activado el interruptor "Ventana completa", ocurra la llamada de script de arriba, y que después se active el interruptor "Ventana completa".
  • Creas otro evento común, el cual llamaremos por ejemplo "A ventana", y pones que haya un condicional que compruebe que si el interruptor "Fullscreen" (el que has usado para el menú de Yanfly) está apagado. Dentro de ese condicional habrá otro condicional, el cual tendrá de condición que el interruptor "Ventana completa" esté encendido, y si es así, hace la llamada de script de arriba, y después desactiva el interruptor "Ventana completa".

BreinLand entertainment
Novato
Novato

0/3

Créditos 120

Gracias : 27

http://breinland.tk/

Volver arriba Ir abajo

RPG Maker VX ACE Re: [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por Oscar92player el 2016-10-26, 19:49

BreinLand entertainment escribió:Si quieres hacerlo desde el menú de opciones de Yanfly, tendrás que hacerlo con llamadas de script.

La llamada de Script en cuestión sería la siguiente: (Créditos a Cidiomar)
Código:
User32DLL   = DL.dlopen('user32')
User32DLL__keybd_event  = DL::CFunc.new(User32DLL.sym('keybd_event'), DL::TYPE_VOID, 'keybd_event', :stdcall)
User32DLL__keybd_event.call([0xA4, 0, 0, 0])  # Simulates ALT key down
User32DLL__keybd_event.call([0x0D, 0, 0, 0])  # Simulates ENTER key down
User32DLL__keybd_event.call([0x0D, 0, 0x0002, 0]) # Simulates ALT key release
User32DLL__keybd_event.call([0xA4, 0, 0x0002, 0]) # Simulates ENTER key release

Tendrías que hacer un evento común que se activase con el interruptor que pongas en el menú de yanfly (digamos "Fullscreen"), y luego asegurarte de que después de activarlo una vez no se vuelva a activar hasta que se apage el interruptor.

Esto puedes hacerlo con 2 interruptores y 2 eventos comunes:

  • Creas el evento común "A pantalla completa", y pones un condicional en el que si NO está activado el interruptor "Ventana completa", ocurra la llamada de script de arriba, y que después se active el interruptor "Ventana completa".
  • Creas otro evento común, el cual llamaremos por ejemplo "A ventana", y pones que haya un condicional que compruebe que si el interruptor "Fullscreen" (el que has usado para el menú de Yanfly) está apagado. Dentro de ese condicional habrá otro condicional, el cual tendrá de condición que el interruptor "Ventana completa" esté encendido, y si es así, hace la llamada de script de arriba, y después desactiva el interruptor "Ventana completa".


Probaré en un momento tu método, a ver el resultado. Sólo espero no meter la pata en el proceso xD
Ahora te digo.

UPDATE: Bueno, la buena noticia es que el código tal cual, funciona. Pero me temo que me perdí en algún punto de tus instrucciones de los eventos comunes y no consigo hacerlo funcionar mediante las opciones. Me temo que necesito un ejemplo un poco más detallado sobre cómo hacerlo...

Oscar92player
Soñador
Soñador

0/3

Créditos 255

Gracias : 16

Volver arriba Ir abajo

RPG Maker VX ACE Re: [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por BreinLand entertainment el 2016-10-26, 20:25

Te adjunto pantallazos con lo que tendría que aparecer en la ventana de los eventos comunes, que se verá mejor que como me expliqué:





Lo que hacemos con estos eventos es primero comprobar al activar el interruptor del menú si está apagado o encendido la pantalla completa... y si está encendida, hace el script que simula el pulsado de alt+enter para pasar a pantalla completa. Después añadimos el otro interruptor para controlar que no se repita el proceso de simulación de pulsado de alt+enter para que no esté en modo discoteca entrando y saliendo de pantalla completa (por eso utilizamos de condicional que primero el interruptor que activamos luego esté apagado desde un inicio).

Luego, como sólo con ese evento común, al apagar el botón de pantalla completa en el menú de Yanfly no haría nada... creamos el segundo evento común, que se encargará de una vez esté en pantalla completa y se haya dado el interruptor de control "Ventana completa", en el otro evento... esperará hasta que se cumpla la condición de que se ponga en OFF el interruptor del menú de Yanfly para poder volver a simular alt+enter otra vez, y así volver a pantalla normal. Luego volvemos a poner el interruptor de "ventana completa" apagado de nuevo para evitar lo mismo que en el otro evento común, y que así al darle además a ON otra vez en el menú de Yanfly, se active otra vez pantalla completa.

BreinLand entertainment
Novato
Novato

0/3

Créditos 120

Gracias : 27

http://breinland.tk/

Volver arriba Ir abajo

RPG Maker VX ACE Re: [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por Oscar92player el 2016-10-26, 21:02

Puff... no sé si estoy fallando o algo, pero aún calcando los interruptores de los eventos que me has presentado, no consigo activar la opción desde el menú de Yanfly. No sé en qué estoy equivocándome...

Te dejo adjuntos los eventos comunes. Ya te digo, como calcados de los tuyos:
Spoiler:
Spoiler:

No sé qué puede estar saliendo mal, pero hay algo por lo que aunque intente activar o desactivar la opción del menú de Yanfly, no salta a pantalla completa (también me aseguré de poner el interruptor correcto en el script).

==================================================================================

UPDATE: ¡Hostras! Mira que soy tonto, sí que funciona. Lo que ocurre es que no hace efecto hasta que sales del menú principal. ¿Hay alguna manera de que el proceso sea inmediato, nada más señalar la opción? El resto del código está perfecto, sólo queda ese último detalle y sería el sistema perfecto.

Oscar92player
Soñador
Soñador

0/3

Créditos 255

Gracias : 16

Volver arriba Ir abajo

RPG Maker VX ACE Re: [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por BreinLand entertainment el 2016-10-26, 21:42

He hecho una demo con esos eventos y salta a ventana completa al salir del menú y volver al juego... pero sí, veo lo que dices, no salta automáticamente en el menú (ya que procesa después de salir al menú la activación de los interruptores etc.)

Supongo que puedes hacer una anotación en el menú diciéndo que los cambios tomarán efecto al volver al juego, o... alternativamente, puedes usar este script que añadirá la opción "resolution" o lo que quieras llamarlo como nueva opción (solo que no estará dentro del menú de Yanfly, claro). Lo bueno de esta otra alternativa es que te guardará la última opción elegida.

https://falcaorgss.wordpress.com/category/game-resolution-1-0/

BreinLand entertainment
Novato
Novato

0/3

Créditos 120

Gracias : 27

http://breinland.tk/

Volver arriba Ir abajo

RPG Maker VX ACE Re: [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por Oscar92player el 2016-10-26, 21:49

BreinLand entertainment escribió:He hecho una demo con esos eventos y salta a ventana completa al salir del menú y volver al juego... pero sí, veo lo que dices, no salta automáticamente en el menú (ya que procesa después de salir al menú la activación de los interruptores etc.)

Supongo que puedes hacer una anotación en el menú diciéndo que los cambios tomarán efecto al volver al juego, o... alternativamente, puedes usar este script que añadirá la opción "resolution" o lo que quieras llamarlo como nueva opción (solo que no estará dentro del menú de Yanfly, claro). Lo bueno de esta otra alternativa es que te guardará la última opción elegida.

https://falcaorgss.wordpress.com/category/game-resolution-1-0/

Gracias, BreinLand, creo que con la opción de Yanfly está bien. Es que sino resultaría algo engorroso tener que añadir esa opción en el mismo menú principal, y el usuario podría pensar que no viene a cuento que esté ahí habiendo un menú de opciones.

¡Muchas gracias por la ayuda!

UPDATE: Vaya, tengo otro problema... resulta que el script que uso para desabilitar los comandos F1, F12 y Alt+Enter afectan a la llamada de pantalla completa...

Además, y sin usar el script anterior, si habilito la pantalla completa, pero luego pulso Alt+Enter, la opción del menú de Yanfly tiene la funcionalidad revertida: la de pantalla completa equivale al modo ventana y la del modo ventana a la de pantalla completa...

Sea como sea, y sin entender por qué, creo que acabo de solucionarlo usando el script de Zeus, el Fullscreen++ y un pequeño add-on que encontré para el System Options de Yanfly, que permite añadir la opción de pantalla completa de Zeus y que se guarde dentro del Game.ini sin mayores problemas. Así tampoco importará mucho si se anula el control de Alt+Enter.

Gracias por la ayuda igulamente. Me guardaré el código de la pantalla completa normal y el engine por si acaso.

Oscar92player
Soñador
Soñador

0/3

Créditos 255

Gracias : 16

Volver arriba Ir abajo

RPG Maker VX ACE Re: [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por BreinLand entertainment el 2016-10-26, 22:30

Hmm.... Sí, el método era algo improvisado Sweat
Ahora que lo pienso, si guardasen la partida con pantalla completa puesta también les pasaría lo del modo de ventana revertido.

Vale, no sabía que el script que usabas deshabilitaba también alt+enter... ¡Pero no pasa nada!

Para todo (o casi) hay solución en esta vida.

Primero necesitarás este script de Zeus81.
Con este script, además de poder utilizar un modo de pantalla completa "más ajustado" a la pantalla... puedes hacer que también puedas utilizar el modo de pantalla por defecto también, y llamarlo en cualquier momento sin tener que emular Alt+Enter.

Después de añadir el script, cambia la línea que dice:
Código:
Disable_VX_Fullscreen = false
a "true" (aunque ya lo hace tu otro script, por si acaso mejor ponerlo así...)

...y luego cambia los eventos comunes a algo parecido a esto:





Si en vez de utilizar el resize de VX para pantalla completa quieres el que utiliza el script, tendrás que utilizar otros comandos en los condicionales y en la llamada de script:

En vez de "Graphics.vx_fullscreen?" tendrás que utilizar "Graphics.fullscreen?" en los condicionales.
En vez de "Graphics.vx_fullscreen_mode" tendrás que utilizar "Graphics.fullscreen_mode" en las llamadas de script.
"Graphics.windowed_mode" se queda igual.

Con este método no debería darte problemas aún con el script de restricción del Alt+Enter, además de que se guardará la última opción dada al cargar la partida.

BreinLand entertainment
Novato
Novato

0/3

Créditos 120

Gracias : 27

http://breinland.tk/

Volver arriba Ir abajo

RPG Maker VX ACE Re: [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por Oscar92player el 2016-10-26, 23:07

BreinLand entertainment escribió:Hmm.... Sí, el método era algo improvisado Sweat
Ahora que lo pienso, si guardasen la partida con pantalla completa puesta también les pasaría lo del modo de ventana revertido.

Vale, no sabía que el script que usabas deshabilitaba también alt+enter... ¡Pero no pasa nada!

Para todo (o casi) hay solución en esta vida.

Primero necesitarás este script de Zeus81.
Con este script, además de poder utilizar un modo de pantalla completa "más ajustado" a la pantalla... puedes hacer que también puedas utilizar el modo de pantalla por defecto también, y llamarlo en cualquier momento sin tener que emular Alt+Enter.

Después de añadir el script, cambia la línea que dice:  
Código:
Disable_VX_Fullscreen = false
a "true" (aunque ya lo hace tu otro script, por si acaso mejor ponerlo así...)

...y luego cambia los eventos comunes a algo parecido a esto:

Spoiler:

Spoiler:

Si en vez de utilizar el resize de VX para pantalla completa quieres el que utiliza el script, tendrás que utilizar otros comandos en los condicionales y en la llamada de script:

En vez de "Graphics.vx_fullscreen?" tendrás que utilizar "Graphics.fullscreen?" en los condicionales.
En vez de "Graphics.vx_fullscreen_mode" tendrás que utilizar "Graphics.fullscreen_mode" en las llamadas de script.
"Graphics.windowed_mode" se queda igual.

Con este método no debería darte problemas aún con el script de restricción del Alt+Enter, además de que se guardará la última opción dada al cargar la partida.

Parece que con el Alt+Enter aún da problemas, no inicia el modo de pantalla completa habitual, tal vez porque de alguna manera sigue en conflicto con el script que me desabilita el F1, F12 y Alt+Enter. Pero no te preocupes, gracias al add-on que encontré (que ahora copiaré por aquí), viene configurada la opción de pantalla completa que usa el script de Zeus. El código, tal como he podido editar un poco también, es el siguiente:

Código:
#==============================================================================
# Chainsawkitten's Fullscreen Menu Options v1.1
#------------------------------------------------------------------------------
# Adds settings menu options about fullscreen.
#==============================================================================

module YEA
  module SYSTEM    
    COMMANDS =[
      :fullscreen,   # Changes the screen mode.
      :window_red,   # Changes the red tone for all windows.
      :window_grn,   # Changes the green tone for all windows.
      :window_blu,   # Changes the blue tone for all windows.
      :volume_bgm,   # Changes the BGM volume used.
      :volume_bgs,   # Changes the BGS volume used.
      :volume_sfx,   # Changes the SFX volume used.
      :to_title,     # Returns to the title screen.
      :shutdown,     # Shuts down the game.
    ]
    
 COMMAND_VOCAB[:fullscreen] = ["Modo de pantalla",
                                  "Modo ventana",
                                  "Pantalla completa",
 "Activa o desactiva la pantalla completa.\n" +
                                  "También puedes cambiar de modo pulsando F5."]
                                  
  end # SYSTEM
end # YEA

#==============================================================================
# ** Window_SystemOptions
#==============================================================================
class Window_SystemOptions < Window_Command
  #--------------------------------------------------------------------------
  # Make the command list.
  #--------------------------------------------------------------------------
  def make_command_list
    @help_descriptions = {}
    for command in YEA::SYSTEM::COMMANDS
      case command
      when :blank
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      when :window_red, :window_grn, :window_blu
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      when :volume_bgm, :volume_bgs, :volume_sfx
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      when :autodash, :instantmsg, :animations
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      when :to_title, :shutdown
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      when :fullscreen
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      else
        process_custom_switch(command)
        process_custom_variable(command)
      end
    end
  end
  
  #--------------------------------------------------------------------------
  # Draw the item
  #--------------------------------------------------------------------------
  def draw_item(index)
    reset_font_settings
    rect = item_rect(index)
    contents.clear_rect(rect)
    case @list[index][:symbol]
    when :window_red, :window_grn, :window_blu
      draw_window_tone(rect, index, @list[index][:symbol])
    when :volume_bgm, :volume_bgs, :volume_sfx
      draw_volume(rect, index, @list[index][:symbol])
    when :autodash, :instantmsg, :animations, :shadow_casting, :fullscreen
      draw_toggle(rect, index, @list[index][:symbol])
    when :to_title, :shutdown
      draw_text(item_rect_for_text(index), command_name(index), 1)
    when :custom_switch
      draw_custom_switch(rect, index, @list[index][:ext])
    when :custom_variable
      draw_custom_variable(rect, index, @list[index][:ext])
    end
  end
  
  #--------------------------------------------------------------------------
  # Draw toggle.
  #--------------------------------------------------------------------------
  def draw_toggle(rect, index, symbol)
    name = @list[index][:name]
    draw_text(0, rect.y, contents.width/2, line_height, name, 1)
    #---
    dx = contents.width / 2
    case symbol
    when :autodash
      enabled = $game_system.autodash?
    when :instantmsg
      enabled = $game_system.instantmsg?
    when :animations
      enabled = $game_system.animations?
 when :fullscreen
 enabled = Graphics.fullscreen?
    end
    dx = contents.width/2
    change_color(normal_color, !enabled)
    option1 = YEA::SYSTEM::COMMAND_VOCAB[symbol][1]
    draw_text(dx, rect.y, contents.width/4, line_height, option1, 1)
    dx += contents.width/4
    change_color(normal_color, enabled)
    option2 = YEA::SYSTEM::COMMAND_VOCAB[symbol][2]
    draw_text(dx, rect.y, contents.width/4, line_height, option2, 1)
  end
  
  #--------------------------------------------------------------------------
  # cursor_change
  #--------------------------------------------------------------------------
  def cursor_change(direction)
    case current_symbol
    when :window_red, :window_blu, :window_grn
      change_window_tone(direction)
    when :volume_bgm, :volume_bgs, :volume_sfx
      change_volume(direction)
    when :autodash, :instantmsg, :animations, :fullscreen
      change_toggle(direction)
    when :custom_switch
      change_custom_switch(direction)
    when :custom_variable
      change_custom_variables(direction)
    end
  end
  
  #--------------------------------------------------------------------------
  # Change toggle setting.
  #--------------------------------------------------------------------------
  def change_toggle(direction)
    value = direction == :left ? false : true
    case current_symbol
    when :autodash
      current_case = $game_system.autodash?
      $game_system.set_autodash(value)
    when :instantmsg
      current_case = $game_system.instantmsg?
      $game_system.set_instantmsg(value)
    when :animations
      current_case = $game_system.animations?
      $game_system.set_animations(value)
 when :fullscreen
 current_case = Graphics.fullscreen?
 if (value)
 Graphics.fullscreen_mode
 else
 Graphics.windowed_mode
 end
    end
    Sound.play_cursor if value != current_case
    draw_item(index)
  end
end

Este código, puesto debajo del script de Yanfly System Options, y en adición al script de Zeus Fullscreen++, dan la mecánica perfecta para activar la pantalla completa desde el menú de opciones. Se me ocurre incluso que podría añadir las líneas nuevas del add-on al script original de Yanfly, para así no tener que editar de nuevo las opciones que aparecerán en el menú (en el add-on tienes que ponerlas de nuevo para que el juego pueda cargarlas). También puedo reducir el add-on a algo tan simple como lo siguiente:

Código:
#==============================================================================
# Chainsawkitten's Fullscreen Menu Options v1.1
#------------------------------------------------------------------------------
# Adds settings menu options about fullscreen.
#==============================================================================

module YEA
  module SYSTEM
 COMMAND_VOCAB[:fullscreen] = ["Modo de pantalla",
                                  "Modo ventana",
                                  "Pantalla completa",
 "Activa o desactiva la pantalla completa.\n" +
                                  "También puedes cambiar de modo pulsando F5."]
                                  
  end # SYSTEM
end # YEA

#==============================================================================
# ** Window_SystemOptions
#==============================================================================
class Window_SystemOptions < Window_Command
  #--------------------------------------------------------------------------
  # Make the command list.
  #--------------------------------------------------------------------------
  def make_command_list
    @help_descriptions = {}
    for command in YEA::SYSTEM::COMMANDS
      case command
      when :blank
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      when :window_red, :window_grn, :window_blu
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      when :volume_bgm, :volume_bgs, :volume_sfx
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      when :autodash, :instantmsg, :animations
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      when :to_title, :shutdown
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      when :fullscreen
        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)
        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]
      else
        process_custom_switch(command)
        process_custom_variable(command)
      end
    end
  end
  
  #--------------------------------------------------------------------------
  # Draw the item
  #--------------------------------------------------------------------------
  def draw_item(index)
    reset_font_settings
    rect = item_rect(index)
    contents.clear_rect(rect)
    case @list[index][:symbol]
    when :window_red, :window_grn, :window_blu
      draw_window_tone(rect, index, @list[index][:symbol])
    when :volume_bgm, :volume_bgs, :volume_sfx
      draw_volume(rect, index, @list[index][:symbol])
    when :autodash, :instantmsg, :animations, :shadow_casting, :fullscreen
      draw_toggle(rect, index, @list[index][:symbol])
    when :to_title, :shutdown
      draw_text(item_rect_for_text(index), command_name(index), 1)
    when :custom_switch
      draw_custom_switch(rect, index, @list[index][:ext])
    when :custom_variable
      draw_custom_variable(rect, index, @list[index][:ext])
    end
  end
  
  #--------------------------------------------------------------------------
  # Draw toggle.
  #--------------------------------------------------------------------------
  def draw_toggle(rect, index, symbol)
    name = @list[index][:name]
    draw_text(0, rect.y, contents.width/2, line_height, name, 1)
    #---
    dx = contents.width / 2
    case symbol
    when :autodash
      enabled = $game_system.autodash?
    when :instantmsg
      enabled = $game_system.instantmsg?
    when :animations
      enabled = $game_system.animations?
 when :fullscreen
 enabled = Graphics.fullscreen?
    end
    dx = contents.width/2
    change_color(normal_color, !enabled)
    option1 = YEA::SYSTEM::COMMAND_VOCAB[symbol][1]
    draw_text(dx, rect.y, contents.width/4, line_height, option1, 1)
    dx += contents.width/4
    change_color(normal_color, enabled)
    option2 = YEA::SYSTEM::COMMAND_VOCAB[symbol][2]
    draw_text(dx, rect.y, contents.width/4, line_height, option2, 1)
  end
  
  #--------------------------------------------------------------------------
  # cursor_change
  #--------------------------------------------------------------------------
  def cursor_change(direction)
    case current_symbol
    when :window_red, :window_blu, :window_grn
      change_window_tone(direction)
    when :volume_bgm, :volume_bgs, :volume_sfx
      change_volume(direction)
    when :autodash, :instantmsg, :animations, :fullscreen
      change_toggle(direction)
    when :custom_switch
      change_custom_switch(direction)
    when :custom_variable
      change_custom_variables(direction)
    end
  end
  
  #--------------------------------------------------------------------------
  # Change toggle setting.
  #--------------------------------------------------------------------------
  def change_toggle(direction)
    value = direction == :left ? false : true
    case current_symbol
    when :autodash
      current_case = $game_system.autodash?
      $game_system.set_autodash(value)
    when :instantmsg
      current_case = $game_system.instantmsg?
      $game_system.set_instantmsg(value)
    when :animations
      current_case = $game_system.animations?
      $game_system.set_animations(value)
 when :fullscreen
 current_case = Graphics.fullscreen?
 if (value)
 Graphics.fullscreen_mode
 else
 Graphics.windowed_mode
 end
    end
    Sound.play_cursor if value != current_case
    draw_item(index)
  end
end

Borrando sólo los comandos de arriba, que ya estaban escritos en el script original de Yanfly, y sólo dejando el nuevo comando junto a sus opciones, el add-on se reduce sólo a añadir la funcionalidad de la pantalla completa de Zeus.

Claro que a partir de ahora tampoco es posible usar la pantalla completa por DirectDraw, aunque tal vez sea lo mejor, porque en algunos equipos sufría conflicto con las tarjetas gráficas por eso del cambio de resolución repentino.

En otro tema, más adelante, quiero comentar si es posible habilitar un filtro bilineal o FXAA al script Fullscreen++, porque el aspecto pixelado es bueno, pero no favorece demasiado a la vista en algunas ocasiones.

Oscar92player
Soñador
Soñador

0/3

Créditos 255

Gracias : 16

Volver arriba Ir abajo

RPG Maker VX ACE Re: [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por BreinLand entertainment el 2016-10-26, 23:33

En el peor de los casos siempre puedes intentar localizar la parte que bloquea el Alt+Enter del script que tienes, y comentarlo fuera para que no entre en funcionamiento esa parte pero sí las otras. (seleccionas una parte del texto desde el principio de la línea y pulsas Ctrl+Q en el editor)
Ya que el script de fullscreen++ ya te bloquea el que puedas usar Alt+Enter, no debería ser un problema si no quieres que le den a Alt+Enter sin conflictos, y si quieres que lo utilicen pues solo cambia esa opción en el script de Zeus.

Así puedes mantener la parte del script por si no funciona, y podrás probar a ver si va sin esa función para que puedas utilizar ambos estilos, e incluso utilizar una variable para saltar de un estilo a otro en el menú de yanfly.

BreinLand entertainment
Novato
Novato

0/3

Créditos 120

Gracias : 27

http://breinland.tk/

Volver arriba Ir abajo

RPG Maker VX ACE Re: [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por Oscar92player el 2016-10-26, 23:47

BreinLand entertainment escribió:En el peor de los casos siempre puedes intentar localizar la parte que bloquea el Alt+Enter del script que tienes, y comentarlo fuera para que no entre en funcionamiento esa parte pero sí las otras. (seleccionas una parte del texto desde el principio de la línea y pulsas Ctrl+Q en el editor)
Ya que el script de fullscreen++ ya te bloquea el que puedas usar Alt+Enter, no debería ser un problema si no quieres que le den a Alt+Enter sin conflictos, y si quieres que lo utilicen pues solo cambia esa opción en el script de Zeus.

Así puedes mantener la parte del script por si no funciona, y podrás probar a ver si va sin esa función para que puedas utilizar ambos estilos, e incluso utilizar una variable para saltar de un estilo a otro en el menú de yanfly.

El caso es que el script que me bloquea F1,F12 así como el Alt+Enter tiene opción de permitir que alguno de los comandos no sea bloqueado, pero no creía que fuera a seguir haciendo conflicto teniendo en cuenta los nuevos comandos del fullscreen original dentro del script de Zeus.

En cualquier caso, creo que me quedo con la opción de fullscreen de Zeus, y dejaré a un lado la original. Como ya dije, en algunos equipos da problemas, especialmente aquellos cuya gráfica tenga problemas al renderizar resoluciones más bajas (en Windows 8 y 8.1 doy fe de que da bastante lag y es casi injugable).

De todos modos, gracias por la ayuda que me has aportado. Parece que de momento se ha podido resolver este tema, y ya de paso, me guardo las llamadas de script por si me llegaran a hacer falta.

P.D.: Ya sé que no tiene mucho que ver, pero voy a abrir otro tema para ver si se puede editar el script de Fullscreen++ o añadirle cualquier add-on para lograr un efecto de filtro bilinear, y así poder disimular de alguna forma los píxeles irregulares que se producen por la relación de aspecto de las pantallas.

Oscar92player
Soñador
Soñador

0/3

Créditos 255

Gracias : 16

Volver arriba Ir abajo

RPG Maker VX ACE Re: [VXAce] Opción de Fullscreen (Yanfly Scripts)

Mensaje por Contenido patrocinado Hoy a las 15:38


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Ayuda RPG

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