¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [RM ACE] [Theo]Ventanas de Ayuda en Opciones el Miér Mayo 21, 2014 11:17 pm

Faye Valentine

avatar
Introducción:

Permite mostrar ventanas de ayuda al momento de seleccionar opciones..

Instrucciones:

En el script.

Imágenes:

Spoiler:


Script:

Spoiler:

Código:

# =============================================================================
# TheoAllen - Choice Helps
# Version : 1.0
# Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
# Original: Theo, al Español: SGITC
# =============================================================================
($imported ||= {})[:Theo_ChoiceHelp] = true
# =============================================================================
# Change Logs:
# -----------------------------------------------------------------------------
# 2013.11.14 - Finished script
# =============================================================================
=begin

 ----------------------------------------------------------------------------
 Introducción :
 Éste script te permite implementar ventanas de "ayuda" en las selecciones.
 A su vez, ésto puede ser aprovechado de distintas formas, como usarlo para
 explicar cada opción brevemente o hacer que el personaje diga algo acerca de
 cada opción.

 ----------------------------------------------------------------------------
 Instrucciones :
 Pon éste script encima de Main y debajo de materiales.
 Para activar éste script necesitas hacer un llamado de scripts como éste:

 choice_helps[0] = "blablabla"
 choice_helps[1] = "dasdasdasd"
 choice_helps[2] = "lorem ipsum"
 choice_helps[3] = "another sample text"

 Sin embargo, no tiene que ser necesariamente así. Solo es necesario colocar
 tantas veces "choice_helps[X]" como opciones existan. El Index comienza desde
 0, es decir que 0 es 1, 1 es 2, 3 es 4 etc. EJ:

 Si tengo dos opciones:

 choice_helps[0] = "blablabla"
 choice_helps[1] = "dasdasdasd"

 Si tengo una:

 choice_helps[0] = "blablabla"

 Éste script tiene un sistema de autolimpiado pero si aún así deseas llamar
 el limpiado de forma manual, utiliza el siguiente comando en una llamada de
 script:

 $game_message.clear_helps

 ----------------------------------------------------------------------------
 Términos de uso :
 Créditos a TheoAllen por el script. Puedes modificar éste script incluso para
 juegos comerciales pero es necesario acreditar debidamente a TheoAllen.

=end
# =============================================================================
# Configuración:
# =============================================================================
module Theo
 module Choice

   AutoClear = true
   # Elimina las ventanas de ayuda tras completar las opciones.
   # Recomendación: true // True para activar, False para desactivar.

   LineNumber = 2
   # Máximo de líneas que podrá tener la ventana.

 end
end
# =============================================================================
# Fin de la configuración. A partir de aquí, editar algo podría causar explosión
# mental súbita.
# =============================================================================
class Game_Interpreter
 # --------------------------------------------------------------------------
 # Script call
 # --------------------------------------------------------------------------
 def choice_helps
   $game_message.choice_helps
 end

end

class Game_Message
 attr_reader :choice_helps

 alias theo_choiceh_init initialize
 def initialize
   theo_choiceh_init
   clear_helps
 end

 def clear_helps
   @choice_helps = []
 end
end

class Window_ChoiceHelp < Window_Help

 def initialize(msg_window, choice_window)
   super(Theo::Choice::LineNumber)
   @msg_window = msg_window
   @choice_window = choice_window
   @choice_window.help_window = self
   self.openness = 0
   update
 end

 def update
   super
   update_placement
   update_openness
   update_visible
 end

 def update_placement
   self.y = 0 if @msg_window.y > 0
   self.y = Graphics.height - height if @msg_window.y <= 0
 end

 def update_openness
   self.openness = @choice_window.openness unless vx_choice?
 end

 def update_visible
   self.visible = !$game_message.choice_helps.compact.empty?
 end

 def choice_window=(window)
   @choice_window = window
   @choice_window.help_window = self
 end

 def vx_choice?
   $imported[:Theo_VXStyleChoices] && $game_message.vx_choice
 end

end

class Window_ChoiceList < Window_Command

 def update_help
   @help_window.set_text($game_message.choice_helps[index])
 end

 alias theo_choiceh_call_ok call_ok_handler
 def call_ok_handler
   theo_choiceh_call_ok
   clear_helps
 end

 alias theo_choiceh_call_cancel call_cancel_handler
 def call_cancel_handler
   theo_choiceh_call_cancel
   clear_helps
 end

 def clear_helps
   return unless Theo::Choice::AutoClear
   $game_message.clear_helps
 end

end

class Window_Message < Window_Base

 alias theo_choiceh_init initialize
 def initialize
   theo_choiceh_init
   create_choice_help
 end

 def create_choice_help
   @choice_help = Window_ChoiceHelp.new(self, @choice_window)
 end

 alias theo_choiceh_update update
 def update
   theo_choiceh_update
   @choice_help.update
 end

 alias theo_choiceh_dispose_all dispose_all_windows
 def dispose_all_windows
   theo_choiceh_dispose_all
   @choice_help.dispose
 end

 if $imported[:Theo_MessageBallon]
 alias theo_choiceh_recreate_choice recreate_choice
 def recreate_choice
   theo_choiceh_recreate_choice
   @choice_help.choice_window = @choice_window
 end
 end

end

Creditos:

TheoAllen - Por el script
SGITC - Traducción al Español (todos los créditos igual van a Theo, no a mí :p)

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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