Chat game factory

Últimos temas
» Go home axel, you're drunk
por Japo/Zero Miér Sep 04, 2013 6:42 pm

» Regreso de KNIGHT :3
por Japo/Zero Mar Jul 30, 2013 9:52 pm

» [ACE] Unir mapas / Mapa continuo
por Ronal_02 Sáb Jun 08, 2013 3:22 pm

» el señor de los sueños (en desarrollo)
por davidaikago Sáb Mar 16, 2013 1:28 pm

» Top 10: peliculas mas esperadas en este 2013
por lorena-torres0887 Dom Mar 10, 2013 6:35 pm

» El Fin De La Eternidad -DLC Reminiscencia-Resubido por la nuevas politica de mediafire
por the-end-of-eternity Jue Feb 28, 2013 2:19 pm

» Neoland Capitulo C Ver Online sin descarga+Dibujo
por the-end-of-eternity Vie Feb 08, 2013 8:46 am

» bruno marx y las puertas sagradas [historia]
por davidaikago Jue Dic 27, 2012 6:53 am

» [ACE] Dudas
por Mike Jue Dic 13, 2012 4:51 pm

» top chica de acción en un juego
por davidaikago Jue Dic 13, 2012 3:35 pm

» ayuda del foro para mi juego
por monito486 Mar Dic 11, 2012 11:37 am

» [Juego Terminado] - The School's Survivors
por BrijidoTzL Sáb Dic 08, 2012 5:46 pm

» [RPG Maker VX] ¿Cómo modifico la imagen de fondo del menú?
por davidaikago Sáb Dic 08, 2012 12:58 pm

» Sistema de logros y combate [Para RPG Maker VX]
por EXENDERVES Vie Dic 07, 2012 9:10 pm

» Regreso definitivo
por Axel Jue Dic 06, 2012 10:41 pm


Imageshack

Afiliados

[ACE] Dudas

 :: Ayudas :: Ayuda/dudas

Ver el tema anterior Ver el tema siguiente Ir abajo

[ACE] Dudas

Mensaje por BrijidoTzL el Sáb Dic 08, 2012 5:44 pm

Estoy actualizando mi proyecto y me gustaría saber como hacer esto.




¿Cómo poner un cuadro aparte con el nombre de los personajes?

También por ejemplo si eligen el nombre del personaje, ¿Como hago para que
no sé, en un texto diga el nombre elegido?. u.u

BrijidoTzL
Novato
Novato

Talento : writter
Mensajes : 13
Engranes : 12
Reputación : 0
Fecha de inscripción : 14/10/2012
Edad : 19
Localización : Aldea Eclys

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACE] Dudas

Mensaje por davidaikago el Lun Dic 10, 2012 2:21 pm

lo del nombre en el texto es por script.

message system
Código:
#==============================================================================
    #
    # ▼ Yanfly Engine Ace - Ace Message System v1.04
    # -- Last Updated: 2012.01.13
    # -- Level: Normal
    # -- Requires: n/a
    #
    # -- Traducido por: Sigmund_vx
    #==============================================================================
    $imported = {} if $imported.nil?
    $imported["YEA-MessageSystem"] = true

    #==================================================================
    # ▼ Updates
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # 2012.01.13 - Bug Fixed: Negative tags didn't display other party members.
    # 2012.01.12 - Compatibility Update: Message Actor Codes
    # 2012.01.10 - Added Feature: \pic[x] text code.
    # 2012.01.04 - Bug Fixed: \ic tag was \ii. No longer the case.
    #            - Added: Scroll Text window now uses message window font.
    # 2011.12.31 - Started Script and Finished.
    #
    #==============================================================================
    # ▼ Introducción
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # Es de notarse que el RPG Maker VX Ace mejoró significativamente el sistema de
    # mensajes pero, con certeza, no le hace mal a nadie agregar más detalles al
    # mismo como ventanas de nombre, códigos de texto para agregar íconos, nombre de
    # items/armas y armaduras en los mensajes de un modo dinânimo y bello.
    # Este script también permite al usuario, ajustar el tamaño de la ventana de
    # mensaje durante el juego. agregar o modificar la fuente, y dar la
    # posibilidad de acelerar el texto.
    #
    #==============================================================================
    # ▼ Instrucciones
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # Para instalar este script abra el editor, copie el código y pegue por encima
    # del main y abajo de (scripts adicionales).
    #
    # -----------------------------------------------------------------------------
    # Message Window text Codes - Para ser colocados en la ventana de mensaje.
    # -----------------------------------------------------------------------------
    #  Default:    Efecto:
    #    \v[x]    - Escribe el valor de la variable de Id [x] ,
    #    \n[x]    - Escribe el nombre del personaje (Actor) de Id [x]
    #    \p[x]    - Escribe el nombre del miembro de ID X del grupo.
    #    \g        - Escribe el nombre de la moneda corriente.
    #    \c[x]    - Cambia el color del texto a x.
    #    \i[x]    - Dibuja el ícono de id x en la ventana de mensajes.
    #    \{        - Aumenta el tamaño del texto por 8 puntos.
    #    \}        - Disminuye el tamaño del texto por 8 puntos.
    #    \$        - Abre la ventana del dinero.
    #    \.        - Espera 15 frames (1/4 de segundo).
    #    \|        - Espera 60 frames (1 segundo).
    #    \!        - Espera hasta que alguna tecla sea presionada.
    #    \>        - El siguiente texto va a surgir instantáneamente.
    #    \<        - El siguiente texto no surge más instantáneamente.
    #    \^        - Omite el siguiente mensaje.
    #    \\        - Escribe "" en la ventana.
    #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #
    #  Wait:      Efecto:
    #    \w[x]    - Espera x frames (60 frames = 1 segundo).
    #                Sólo en la ventana de mensajes.
    #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #
    #  NameWindow: Efecto:
    #    \n<x>    - Crea una ventana de nombre, donde x es el texto exhibido.
    #                Lado izquierdo. *Nota
    #    \nc<x>    - Crea una ventana de nombre, donde x es el texto exhibido.
    #                Centrado. *Nota
    #    \nr<x>    - Crea una ventana de nombre, donde x es el texto exhibido.
    #                Lado Derecho. *Nota
    #
    #              *Nota: Funciona sólo en las ventanas de mensaje.
    #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #
    #  Position:  Efecto:
    #    \px[x]    - Cambiar la coordenada X del texto a el valor de x.
    #    \py[x]    - Cambiar la coordenada Y del texto a el valor de y.
    #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #
    #  Picture:    Efecto:
    #    \pic[x]  - Dibuja la imagen x de la carpeta Graphics\Pictures.
    #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #
    #  Outline:    Efecto:
    #    \oc[x]    - Cambiar el color de los bordes a x.
    #    \oo[x]    - Cambiar la opacidad de los bordes a x.
    #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #
    #  Font:      Efecto:
    #    \fr      - Reseta todos los cambios de fuente.
    #    \fz[x]    - Cambia el tamaño de la fuente a el valor x.
    #    \fn[x]    - Cambia el nombre de la fuente a x
    #                (X = nombre de la fuente referente la sustitución.).
    #    \fb      - Cambia la letra a negrita
    #    \fi      - Cambia la letra a Itálico
    #    \fo      - Cambia el contorno o borde de la fuente
    #    \fs      - Le agrega sombra a la fuente
    #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #
    #  Actor:      Efecto:
    #    \af[x]    - Muestra el rostro del actor de Id x. *Nota
    #    \ac[x]    - Muestra el nombre de la clase del Actor de id x. *Nota
    #    \as[x]    - Muestra el nombre de la subclasse del Actor de id X.
    #                Requiere: Class System. *Nota
    #    \an[x]    - Muestra el apelido (nickname) del actor de id X. *Nota
    #
    #              *Nota: Si x es 0 o negativo, Mostrará el rostro referente a:.
    #                  0 - Líder
    #                  -1 - 1º Miembro no líder.
    #                  -2 - 2º Miembro no líder.
    #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #
    #  Names:      Efecto:
    #    \nc[x]    - Muestra el nombre de la clase de Id x.
    #    \ni[x]    - Muestra el nombre del Item de id x.
    #    \nw[x]    - Muestra el nombre de la Arma de Id .
    #    \na[x]    - Muestra el nombre de la Armadura de Id x
    #    \ns[x]    - Muestra el nombre de la Habilidad de Id x.
    #    \nt[x]    - Muestra el nombre del Estado de Id x.
    #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #
    #  Icon Names: Efecto:
    #    \ic[x]    - Muestra el nombre de la Clase de Id x incluyendo Ícono.*
    #    \ii[x]    - Muestra el nombre del item de Id x incluyendo Ícone.
    #    \iw[x]    - Muestra el nombre de la arma de Id x incluyendo Ícone.
    #    \ia[x]    - Muestra el nombre armadura de Id x incluyendo Ícone.
    #    \is[x]    - Muestra el nombre de la Habilidad de Id x incluyendo Ícone.
    #    \it[x]    - Muestra el nombre del Estado de Id x incluyendo Ícone.
    #
    #              *Nota: Requiere YEA - Class System
    #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #
    # Y estos son los códigos de texto agregados con el uso del script.
    # Recuerde que algunos de estos códigos sólo funcionarán en las Ventana de Mensajes
    # De cualquier forma, estos son muy útiles para textos de "Ayuda" para
    # Descripciones, Biografía de los personajes y Etc.
    #
    #==============================================================================
    # ▼ Compatibilidad
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # Este script es sólo para RPG Maker VX Ace . No es compatíble con cualquier otra
    # Engine sin ajustes.
    #
    #==============================================================================

    module YEA
      module MESSAGE
   
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # - Configuraciones Generales de la Ventana de Mensaje
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # A continuación puedes modificar las configuraçiones básicas, logrando
        # personalizar algunas funciones a su gusto. Ajustelos como desee.
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # Este botón se presiona para mover el texto hacia adelante.
        # Debe ser presionado para que ocurra el efecto. Cuando se pulsa, acelera
        # los mensajes, pero si hay algun código que haga una pausa seguirá esperando.
        # Cuando se pulsa de nuevo, pasará automáticamente a la siguiente página.
        TEXT_SKIP = :A    # Input::A Botón Shift del Teclado.
   
        # Esta variable ajusta el número de líneas visibles en la ventana de mensajes.
        # Si no deseas utilizar este recurso, cambie el valor de la constante a 0.
        # Si el valor de la línea es 0 o menor, el valor será automáticamente cambiado
        # a el standar de 4 líneas.
        VARIABLE_ROWS  = 21
   
        # Esta variable ajusta la anchura de la caja de mensajes mostrada.
        # Si no deseas utilizar este recurso cambie la constante a 0.
        # Si el valor de la anchura es 0 o menor, se ajustará la anchura estandar de
        # la ventana.
        VARIABLE_WIDTH = 22
   
        # Esta es la cantidad de espacio que la ventana de mensaje utilizara cada
        # vez que el rostro de un personaje se utiliza. Estandar: 112
        FACE_INDENT_X = 112
   
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # - Configuración de la Ventana de Nombre -
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # La Ventana de nombre es la pequeña caja que aparece por encima de la
        # ventana estandar.
        # Es utilizada para mostrar cualquier texto por encima de la ventana de
        # mensajes. como el propio titulo lo dice, un nombre.
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        NAME_WINDOW_X_BUFFER = -20  # Buffer x | Posición X de la ventana de nombre.
        NAME_WINDOW_Y_BUFFER = 0    # Buffer y | Posición Y de la ventana de nombre.
        NAME_WINDOW_PADDING  = 20    # Espacio añadido a la posición horizontal.
        NAME_WINDOW_OPACITY  = 255  # Opacidad de la ventana de nombre.
        NAME_WINDOW_COLOUR  = 6    # Color del texto usado para nombres.
   
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # - Configuración de las Fuentes -
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # El Sistema de mensaje de Ace separa las fuentes de manera diferenciada
        # para el uso in-game. Ajusta las configuraciones, y defina sus fuentes de
        # juego.
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # Estas constantes definen que fuente es usada. Si la primera fuente no
        # existe en el ordenador del jugador, automáticamente la próxima fuente
        # será utilizada en lugar de la anterior.
        MESSAGE_WINDOW_FONT_NAME = ["Comic Sans MS", "Arial", "Courier New"]
   
        # Aquí se ajusta la configuración de la manera con la que las fuentes se
        # mostraran. Incluyendo el tamaño de letra por defecto, si el texto está
        # en negrita por defecto, itálico, tienen bordes o sombreado por defecto,etc.
        MESSAGE_WINDOW_FONT_SIZE    = 24      # Tamaño de la fuente.
        MESSAGE_WINDOW_FONT_BOLD    = false    # Negrita por defecto?
        MESSAGE_WINDOW_FONT_ITALIC  = false    # Italico por defecto?
        MESSAGE_WINDOW_FONT_OUTLINE = true    # Borde por defecto?
        MESSAGE_WINDOW_FONT_SHADOW  = false    # Sombreado por defecto?
   
      end # MESSAGE
    end # YEA

    #==============================================================================
    # Editar cualquier cosa a partir desde este punto puede causar, daño al
    # computador, desesperacion del usuario, coma, muerte, mal aliento.
    # A continuación, edite bajo su propio riesgo.
    #==============================================================================

    #==============================================================================
    # ■ Variable
    #==============================================================================

    module Variable
 
      #--------------------------------------------------------------------------
      # self.message_rows
      #--------------------------------------------------------------------------
      def self.message_rows
        return 4 if YEA::MESSAGE::VARIABLE_ROWS <= 0
        return 4 if $game_variables[YEA::MESSAGE::VARIABLE_ROWS] <= 0
        return $game_variables[YEA::MESSAGE::VARIABLE_ROWS]
      end
 
      #--------------------------------------------------------------------------
      # self.message_width
      #--------------------------------------------------------------------------
      def self.message_width
        return Graphics.width if YEA::MESSAGE::VARIABLE_WIDTH <= 0
        return Graphics.width if $game_variables[YEA::MESSAGE::VARIABLE_WIDTH] <= 0
        return $game_variables[YEA::MESSAGE::VARIABLE_WIDTH]
      end
 
    end # Variable

    #==============================================================================
    # ■ Game_Interpreter
    #==============================================================================

    class Game_Interpreter
 
      #--------------------------------------------------------------------------
      # overwrite method: command_101
      #--------------------------------------------------------------------------
      def command_101
        wait_for_message
        $game_message.face_name = @params[0]
        $game_message.face_index = @params[1]
        $game_message.background = @params[2]
        $game_message.position = @params[3]
        while continue_message_string?
          @index += 1
          if @list[@index].code == 401
            $game_message.add(@list[@index].parameters[0])
          end
          break if $game_message.texts.size >= Variable.message_rows
        end
        case next_event_code
        when 102
          @index += 1
          setup_choices(@list[@index].parameters)
        when 103
          @index += 1
          setup_num_input(@list[@index].parameters)
        when 104
          @index += 1
          setup_item_choice(@list[@index].parameters)
        end
        wait_for_message
      end
 
      #--------------------------------------------------------------------------
      # new method: continue_message_string?
      #--------------------------------------------------------------------------
      def continue_message_string?
        return true if next_event_code == 101 && Variable.message_rows > 4
        return next_event_code == 401
      end
 
    end # Game_Interpreter

    #==============================================================================
    # ■ Window_Base
    #==============================================================================

    class Window_Base < Window
 
      #--------------------------------------------------------------------------
      # new method: setup_message_font
      #--------------------------------------------------------------------------
      def setup_message_font
        @message_font = true
        change_color(normal_color)
        contents.font.out_color = Font.default_out_color
        contents.font.name = YEA::MESSAGE::MESSAGE_WINDOW_FONT_NAME
        contents.font.size = YEA::MESSAGE::MESSAGE_WINDOW_FONT_SIZE
        contents.font.bold = YEA::MESSAGE::MESSAGE_WINDOW_FONT_BOLD
        contents.font.italic = YEA::MESSAGE::MESSAGE_WINDOW_FONT_ITALIC
        contents.font.outline = YEA::MESSAGE::MESSAGE_WINDOW_FONT_OUTLINE
        contents.font.shadow = YEA::MESSAGE::MESSAGE_WINDOW_FONT_SHADOW
      end
 
      #--------------------------------------------------------------------------
      # alias method: reset_font_settings
      #--------------------------------------------------------------------------
      alias window_base_reset_font_settings_ams reset_font_settings
      def reset_font_settings
        if @message_font
          setup_message_font
        else
          window_base_reset_font_settings_ams
          contents.font.out_color = Font.default_out_color
          contents.font.outline = Font.default_outline
          contents.font.shadow = Font.default_shadow
        end
      end
 
      #--------------------------------------------------------------------------
      # alias method: convert_escape_characters
      #--------------------------------------------------------------------------
      alias window_base_convert_escape_characters_ams convert_escape_characters
      def convert_escape_characters(text)
        result = window_base_convert_escape_characters_ams(text)
        result = convert_ace_message_system_new_escape_characters(result)
        return result
      end
 
      #--------------------------------------------------------------------------
      # new method: convert_ace_message_system_new_escape_characters
      #--------------------------------------------------------------------------
      def convert_ace_message_system_new_escape_characters(result)
        #---
        result.gsub!(/\eFR/i) { "\eAMSF[0]" }
        result.gsub!(/\eFB/i) { "\eAMSF[1]" }
        result.gsub!(/\eFI/i) { "\eAMSF[2]" }
        result.gsub!(/\eFO/i) { "\eAMSF[3]" }
        result.gsub!(/\eFS/i) { "\eAMSF[4]" }
        #---
        result.gsub!(/\eAC\[([-+]?\d+)\]/i) { escape_actor_class_name($1.to_i) }
        result.gsub!(/\eAS\[([-+]?\d+)\]/i) { escape_actor_subclass_name($1.to_i) }
        result.gsub!(/\eAN\[([-+]?\d+)\]/i) { escape_actor_nickname($1.to_i) }
        #---
        result.gsub!(/\eNC\[(\d+)\]/i) { $data_classes[$1.to_i].name }
        result.gsub!(/\eNI\[(\d+)\]/i) { $data_items[$1.to_i].name }
        result.gsub!(/\eNW\[(\d+)\]/i) { $data_weapons[$1.to_i].name }
        result.gsub!(/\eNA\[(\d+)\]/i) { $data_armors[$1.to_i].name }
        result.gsub!(/\eNS\[(\d+)\]/i) { $data_skills[$1.to_i].name }
        result.gsub!(/\eNT\[(\d+)\]/i) { $data_states[$1.to_i].name }
        #---
        result.gsub!(/\eIC\[(\d+)\]/i) { escape_icon_item($1.to_i, :class) }
        result.gsub!(/\eII\[(\d+)\]/i) { escape_icon_item($1.to_i, :item) }
        result.gsub!(/\eIW\[(\d+)\]/i) { escape_icon_item($1.to_i, :weapon) }
        result.gsub!(/\eIA\[(\d+)\]/i) { escape_icon_item($1.to_i, :armour) }
        result.gsub!(/\eIS\[(\d+)\]/i) { escape_icon_item($1.to_i, :skill) }
        result.gsub!(/\eIT\[(\d+)\]/i) { escape_icon_item($1.to_i, :state) }
        #---
        return result
      end
 
      #--------------------------------------------------------------------------
      # new method: escape_actor_class_name
      #--------------------------------------------------------------------------
      def escape_actor_class_name(actor_id)
        actor_id = $game_party.members[actor_id.abs].id if actor_id <= 0
        actor = $game_actors[actor_id]
        return "" if actor.nil?
        return actor.class.name
      end
 
      #--------------------------------------------------------------------------
      # new method: actor_subclass_name
      #--------------------------------------------------------------------------
      def escape_actor_subclass_name(actor_id)
        return "" unless $imported["YEA-ClassSystem"]
        actor_id = $game_party.members[actor_id.abs].id if actor_id <= 0
        actor = $game_actors[actor_id]
        return "" if actor.nil?
        return "" if actor.subclass.nil?
        return actor.subclass.name
      end
 
      #--------------------------------------------------------------------------
      # new method: escape_actor_nickname
      #--------------------------------------------------------------------------
      def escape_actor_nickname(actor_id)
        actor_id = $game_party.members[actor_id.abs].id if actor_id <= 0
        actor = $game_actors[actor_id]
        return "" if actor.nil?
        return actor.nickname
      end
 
      #--------------------------------------------------------------------------
      # new method: escape_icon_item
      #--------------------------------------------------------------------------
      def escape_icon_item(data_id, type)
        case type
        when :class
          return "" unless $imported["YEA-ClassSystem"]
          icon = $data_classes[data_id].icon_index
          name = $data_items[data_id].name
        when :item
          icon = $data_items[data_id].icon_index
          name = $data_items[data_id].name
        when :weapon
          icon = $data_weapons[data_id].icon_index
          name = $data_weapons[data_id].name
        when :armour
          icon = $data_armors[data_id].icon_index
          name = $data_armors[data_id].name
        when :skill
          icon = $data_skills[data_id].icon_index
          name = $data_skills[data_id].name
        when :state
          icon = $data_states[data_id].icon_index
          name = $data_states[data_id].name
        else; return ""
        end
        text = "\eI[#{icon}]" + name
        return text
      end
 
      #--------------------------------------------------------------------------
      # alias method: process_escape_character
      #--------------------------------------------------------------------------
      alias window_base_process_escape_character_ams process_escape_character
      def process_escape_character(code, text, pos)
        case code.upcase
        #---
        when 'FZ'
          contents.font.size = obtain_escape_param(text)
        when 'FN'
          text.sub!(/\[(.*?)\]/, "")
          font_name = $1.to_s
          font_name = Font.default_name if font_name.nil?
          contents.font.name = font_name.to_s
        #---
        when 'OC'
          colour = text_color(obtain_escape_param(text))
          contents.font.out_color = colour
        when 'OO'
          contents.font.out_color.alpha = obtain_escape_param(text)
        #---
        when 'AMSF'
          case obtain_escape_param(text)
          when 0; reset_font_settings
          when 1; contents.font.bold = !contents.font.bold
          when 2; contents.font.italic = !contents.font.italic
          when 3; contents.font.outline = !contents.font.outline
          when 4; contents.font.shadow = !contents.font.shadow
          end
        #---
        when 'PX'
          pos[:x] = obtain_escape_param(text)
        when 'PY'
          pos[:y] = obtain_escape_param(text)
        #---
        when 'PIC'
          text.sub!(/\[(.*?)\]/, "")
          bmp = Cache.picture($1.to_s)
          rect = Rect.new(0, 0, bmp.width, bmp.height)
          contents.blt(pos[:x], pos[:y], bmp, rect)
        #---
        else
          window_base_process_escape_character_ams(code, text, pos)
        end
      end
 
    end # Window_Base

    #==============================================================================
    # ■ Window_ChoiceList
    #==============================================================================

    class Window_ChoiceList < Window_Command
 
      #--------------------------------------------------------------------------
      # alias method: initialize
      #--------------------------------------------------------------------------
      alias window_choicelist_initialize_ams initialize
      def initialize(message_window)
        window_choicelist_initialize_ams(message_window)
        setup_message_font
      end
 
    end # Window_ChoiceList

    #==============================================================================
    # ■ Window_ScrollText
    #==============================================================================

    class Window_ScrollText < Window_Base
 
      #--------------------------------------------------------------------------
      # alias method: initialize
      #--------------------------------------------------------------------------
      alias window_scrolltext_initialize_ams initialize
      def initialize
        window_scrolltext_initialize_ams
        setup_message_font
      end
 
    end # Window_ScrollText

    #==============================================================================
    # ■ Window_NameMessage
    #==============================================================================

    class Window_NameMessage < Window_Base
 
      #--------------------------------------------------------------------------
      # initialize
      #--------------------------------------------------------------------------
      def initialize(message_window)
        @message_window = message_window
        super(0, 0, Graphics.width, fitting_height(1))
        self.opacity = YEA::MESSAGE::NAME_WINDOW_OPACITY
        self.z = @message_window.z + 1
        self.openness = 0
        setup_message_font
        @close_counter = 0
        deactivate
      end
 
      #--------------------------------------------------------------------------
      # update
      #--------------------------------------------------------------------------
      def update
        super
        return if self.active
        return if self.openness == 0
        return if @closing
        @close_counter -= 1
        return if @close_counter > 0
        close
      end
 
      #--------------------------------------------------------------------------
      # start_close
      #--------------------------------------------------------------------------
      def start_close
        @close_counter = 4
        deactivate
      end
 
      #--------------------------------------------------------------------------
      # force_close
      #--------------------------------------------------------------------------
      def force_close
        @close_counter = 0
        deactivate
        close
      end
 
      #--------------------------------------------------------------------------
      # start
      #--------------------------------------------------------------------------
      def start(text, x_position)
        @text = text.clone
        set_width
        create_contents
        set_x_position(x_position)
        set_y_position
        refresh
        activate
        open
      end
 
      #--------------------------------------------------------------------------
      # set_width
      #--------------------------------------------------------------------------
      def set_width
        text = @text.clone
        dw = standard_padding * 2 + text_size(text).width
        dw += YEA::MESSAGE::NAME_WINDOW_PADDING * 2
        dw += calculate_size(text.slice!(0, 1), text) until text.empty?
        self.width = dw
      end
 
      #--------------------------------------------------------------------------
      # calculate_size
      #--------------------------------------------------------------------------
      def calculate_size(code, text)
        case code
        when "\e"
          return calculate_escape_code_width(obtain_escape_code(text), text)
        else
          return 0
        end
      end
 
      #--------------------------------------------------------------------------
      # calculate_escape_code_width
      #--------------------------------------------------------------------------
      def calculate_escape_code_width(code, text)
        dw = -text_size("\e").width - text_size(code).width
        case code.upcase
        when 'C', 'OC', 'OO'
          dw += -text_size("[" + obtain_escape_param(text).to_s + "]").width
          return dw
        when 'I'
          dw += -text_size("[" + obtain_escape_param(text).to_s + "]").width
          dw += 24
          return dw
        when '{'
          make_font_bigger
        when '}'
          make_font_smaller
        when 'FZ'
          contents.font.size = obtain_escape_param(text)
        when 'FN'
          text.sub!(/\[(.*?)\]/, "")
          font_name = $1.to_s
          font_name = Font.default_name if font_name.nil?
          contents.font.name = font_name.to_s
        when 'AMSF'
          case obtain_escape_param(text)
          when 0; reset_font_settings
          when 1; contents.font.bold = !contents.font.bold
          when 2; contents.font.italic = !contents.font.italic
          when 3; contents.font.outline = !contents.font.outline
          when 4; contents.font.shadow = !contents.font.shadow
          end
        else
          return dw
        end
      end
 
      #--------------------------------------------------------------------------
      # set_y_position
      #--------------------------------------------------------------------------
      def set_x_position(x_position)
        case x_position
        when 1 # Left
          self.x = @message_window.x
          self.x += YEA::MESSAGE::NAME_WINDOW_X_BUFFER
        when 2 # 3/10
          self.x = @message_window.x
          self.x += @message_window.width * 3 / 10
          self.x -= self.width / 2
        when 3 # Center
          self.x = @message_window.x
          self.x += @message_window.width / 2
          self.x -= self.width / 2
        when 4 # 7/10
          self.x = @message_window.x
          self.x += @message_window.width * 7 / 10
          self.x -= self.width / 2
        when 5 # Right
          self.x = @message_window.x + @message_window.width
          self.x -= self.width
          self.x -= YEA::MESSAGE::NAME_WINDOW_X_BUFFER
        end
        self.x = [[self.x, Graphics.width - self.width].min, 0].max
      end
 
      #--------------------------------------------------------------------------
      # set_y_position
      #--------------------------------------------------------------------------
      def set_y_position
        case $game_message.position
        when 0
          self.y = @message_window.height
          self.y -= YEA::MESSAGE::NAME_WINDOW_Y_BUFFER
        else
          self.y = @message_window.y - self.height
          self.y += YEA::MESSAGE::NAME_WINDOW_Y_BUFFER
        end
      end
 
      #--------------------------------------------------------------------------
      # refresh
      #--------------------------------------------------------------------------
      def refresh
        contents.clear
        reset_font_settings
        @text = sprintf("\eC[%d]%s", YEA::MESSAGE::NAME_WINDOW_COLOUR, @text)
        draw_text_ex(YEA::MESSAGE::NAME_WINDOW_PADDING, 0, @text)
      end
 
    end # Window_NameMessage

    #==============================================================================
    # ■ Window_Message
    #==============================================================================

    class Window_Message < Window_Base
 
      #--------------------------------------------------------------------------
      # alias method: initialize
      #--------------------------------------------------------------------------
      alias window_message_initialize_ams initialize
      def initialize
        window_message_initialize_ams
        setup_message_font
      end
 
      #--------------------------------------------------------------------------
      # overwrite method: window_width
      #--------------------------------------------------------------------------
      def window_width
        return Variable.message_width
      end
 
      #--------------------------------------------------------------------------
      # overwrite method: window_height
      #--------------------------------------------------------------------------
      def window_height
        return fitting_height(Variable.message_rows)
      end
 
      #--------------------------------------------------------------------------
      # alias method: create_all_windows
      #--------------------------------------------------------------------------
      alias window_message_create_all_windows_ams create_all_windows
      def create_all_windows
        window_message_create_all_windows_ams
        @name_window = Window_NameMessage.new(self)
      end
 
      #--------------------------------------------------------------------------
      # overwrite method: create_back_bitmap
      #--------------------------------------------------------------------------
      def create_back_bitmap
        @back_bitmap = Bitmap.new(width, height)
        rect1 = Rect.new(0, 0, Graphics.width, 12)
        rect2 = Rect.new(0, 12, Graphics.width, fitting_height(4) - 24)
        rect3 = Rect.new(0, fitting_height(4) - 12, Graphics.width, 12)
        @back_bitmap.gradient_fill_rect(rect1, back_color2, back_color1, true)
        @back_bitmap.fill_rect(rect2, back_color1)
        @back_bitmap.gradient_fill_rect(rect3, back_color1, back_color2, true)
      end
 
      #--------------------------------------------------------------------------
      # alias method: dispose_all_windows
      #--------------------------------------------------------------------------
      alias window_message_dispose_all_windows_ams dispose_all_windows
      def dispose_all_windows
        window_message_dispose_all_windows_ams
        @name_window.dispose
      end
 
      #--------------------------------------------------------------------------
      # alias method: update_all_windows
      #--------------------------------------------------------------------------
      alias window_message_update_all_windows_ams update_all_windows
      def update_all_windows
        window_message_update_all_windows_ams
        @name_window.update
        @name_window.back_opacity = self.back_opacity
        @name_window.opacity = self.opacity
      end
 
      #--------------------------------------------------------------------------
      # alias method: update_show_fast
      #--------------------------------------------------------------------------
      alias window_message_update_show_fast_ams update_show_fast
      def update_show_fast
        @show_fast = true if Input.press?(YEA::MESSAGE::TEXT_SKIP)
        window_message_update_show_fast_ams
      end
 
      #--------------------------------------------------------------------------
      # overwrite method: input_pause
      #--------------------------------------------------------------------------
      def input_pause
        self.pause = true
        wait(10)
        Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C) ||
          Input.press?(YEA::MESSAGE::TEXT_SKIP)
        Input.update
        self.pause = false
      end
 
      #--------------------------------------------------------------------------
      # overwrite method: convert_escape_characters
      #--------------------------------------------------------------------------
      def convert_escape_characters(text)
        result = super(text.to_s.clone)
        result = namebox_escape_characters(result)
        result = message_escape_characters(result)
        return result
      end
 
      #--------------------------------------------------------------------------
      # new method: namebox_escape_characters
      #--------------------------------------------------------------------------
      def namebox_escape_characters(result)
        result.gsub!(/\eN\<(.+?)\>/i)  { namewindow($1, 1) }
        result.gsub!(/\eN1\<(.+?)\>/i) { namewindow($1, 1) }
        result.gsub!(/\eN2\<(.+?)\>/i) { namewindow($1, 2) }
        result.gsub!(/\eNC\<(.+?)\>/i) { namewindow($1, 3) }
        result.gsub!(/\eN3\<(.+?)\>/i) { namewindow($1, 3) }
        result.gsub!(/\eN4\<(.+?)\>/i) { namewindow($1, 4) }
        result.gsub!(/\eN5\<(.+?)\>/i) { namewindow($1, 5) }
        result.gsub!(/\eNR\<(.+?)\>/i) { namewindow($1, 5) }
        return result
      end
 
      #--------------------------------------------------------------------------
      # new method: namebox
      #--------------------------------------------------------------------------
      def namewindow(text, position)
        @name_text = text
        @name_position = position
        return ""
      end
 
      #--------------------------------------------------------------------------
      # new method: message_escape_characters
      #--------------------------------------------------------------------------
      def message_escape_characters(result)
        result.gsub!(/\eAF\[(\d+)\]/i) { change_face($1.to_i) }
        return result
      end
 
      #--------------------------------------------------------------------------
      # new method: change_face
      #--------------------------------------------------------------------------
      def change_face(actor_id)
        actor_id = $game_party.members[actor_id.abs].id if actor_id <= 0
        actor = $game_actors[actor_id]
        return "" if actor.nil?
        $game_message.face_name = actor.face_name
        $game_message.face_index = actor.face_index
        return ""
      end
 
      #--------------------------------------------------------------------------
      # alias method: new_page
      #--------------------------------------------------------------------------
      alias window_message_new_page_ams new_page
      def new_page(text, pos)
        adjust_message_window_size
        window_message_new_page_ams(text, pos)
      end
 
      #--------------------------------------------------------------------------
      # overwrite method: new_line_x
      #--------------------------------------------------------------------------
      def new_line_x
        return $game_message.face_name.empty? ? 0 : YEA::MESSAGE::FACE_INDENT_X
      end
 
      #--------------------------------------------------------------------------
      # new method: adjust_message_window_size
      #--------------------------------------------------------------------------
      def adjust_message_window_size
        self.height = window_height
        self.width = window_width
        create_contents
        update_placement
        self.x = (Graphics.width - self.width) / 2
        start_name_window
      end
 
      #--------------------------------------------------------------------------
      # new method: clear_name_window
      #--------------------------------------------------------------------------
      def clear_name_window
        @name_text = ""
        @name_position = 0
      end
 
      #--------------------------------------------------------------------------
      # new method: start_name_window
      #--------------------------------------------------------------------------
      def start_name_window
        return if @name_text == ""
        @name_window.start(@name_text, @name_position)
      end
 
      #--------------------------------------------------------------------------
      # overwrite method: fiber_main
      #--------------------------------------------------------------------------
      def fiber_main
        $game_message.visible = true
        update_background
        update_placement
        loop do
          process_all_text if $game_message.has_text?
          process_input
          $game_message.clear
          @gold_window.close
          @name_window.start_close
          Fiber.yield
          break unless text_continue?
        end
        close_and_wait
        $game_message.visible = false
        @fiber = nil
      end
 
      #--------------------------------------------------------------------------
      # alias method: open_and_wait
      #--------------------------------------------------------------------------
      alias window_message_open_and_wait_ams open_and_wait
      def open_and_wait
        clear_name_window
        adjust_message_window_size
        window_message_open_and_wait_ams
      end
 
      #--------------------------------------------------------------------------
      # alias method: close_and_wait
      #--------------------------------------------------------------------------
      alias window_message_close_and_wait_ams close_and_wait
      def close_and_wait
        @name_window.force_close
        window_message_close_and_wait_ams
      end
 
      #--------------------------------------------------------------------------
      # alias method: all_close?
      #--------------------------------------------------------------------------
      alias window_message_all_close_ams all_close?
      def all_close?
        return window_message_all_close_ams && @name_window.close?
      end
 
      #--------------------------------------------------------------------------
      # alias method: process_escape_character
      #--------------------------------------------------------------------------
      alias window_message_process_escape_character_ams process_escape_character
      def process_escape_character(code, text, pos)
        case code.upcase
        when 'W' # Wait
          wait(obtain_escape_param(text))
        else
          window_message_process_escape_character_ams(code, text, pos)
        end
      end
 
    end # Window_Message

    #==============================================================================
    #
    # ▼ End of File
    #
    #==============================================================================


Última edición por davidaikago el Jue Dic 13, 2012 3:21 pm, editado 1 vez

davidaikago
Novato
Novato

Talento : Maper
Mensajes : 48
Engranes : 231
Reputación : 6
Fecha de inscripción : 30/10/2012
Edad : 37
Localización : españa

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACE] Dudas

Mensaje por BrijidoTzL el Jue Dic 13, 2012 1:34 pm

Deberías haber puesto un spoiler para poner ese código...
me costó llegar al final xD, bueno ahora pruebo el script, gracias

BrijidoTzL
Novato
Novato

Talento : writter
Mensajes : 13
Engranes : 12
Reputación : 0
Fecha de inscripción : 14/10/2012
Edad : 19
Localización : Aldea Eclys

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACE] Dudas

Mensaje por davidaikago el Jue Dic 13, 2012 3:22 pm

ya esta puesto, la verdad es mucho mejor de esta manera pero con las prisas se me olvido ponerlo

davidaikago
Novato
Novato

Talento : Maper
Mensajes : 48
Engranes : 231
Reputación : 6
Fecha de inscripción : 30/10/2012
Edad : 37
Localización : españa

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACE] Dudas

Mensaje por Mike el Jue Dic 13, 2012 4:51 pm

Hentai-kun escribió:Deberías haber puesto un spoiler para poner ese código...
me costó llegar al final xD, bueno ahora pruebo el script, gracias
Para eso esta el botón "SELECCIONAR TODO EL CONTENIDO", lo incluimos en los [code] para facilitar eso mismo XD de hecho, se tiene que poner entre code, y no spoiler.

Ahí dices si te funciono para cerrar el tema.

Mike
cientifico
cientifico

Talento : Enginer
Mensajes : 369
Engranes : 895
Reputación : 52
Fecha de inscripción : 30/05/2011
Edad : 21
Localización : México

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACE] Dudas

Mensaje por Contenido patrocinado Hoy a las 8:37 am


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 :: Ayudas :: Ayuda/dudas

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