Maker Palace
Si quiere un completo acceso al contenido del foro. Registrate

Maker Palace

¡El Reino del RpgMaker y del Ocio!
 
ÍndiceBuscarGrupos de UsuariosScriptsRecursosTutorialesJuegos creados por los PalacersPalaceWikiFAQRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Temas similares
  • » The L2-Revival System is now available
  • »  Ace Message System SCRIPT
  • » [VX Ace] Ace Message System
  • » [Yanfly] Ajustar los límites del juego
  • » [RPG Maker XP] Usar vehículos (Advance Vehicle System)
  • » System Of A Down en Argentina
  • » [VX] Behemoth Custom Battle System
  • » Quatro Navi System Code VECTOR
  • » System Of A Down [Alternative Metal]
  • » QUATRO NAVI SYSTEM CODE VECTOR /REV. 2.0/
  • Buscar
     
     

    Resultados por:
     
    Rechercher Búsqueda avanzada
    Últimos temas
    » Quieres ser diseñador de videojuegos?
    por Shooter Hoy a las 2:41 pm

    » Infinity - Terrains
    por Ares Hoy a las 10:30 am

    » [AYUDA] tengo un problema con mi script
    por Shooter Ayer a las 5:21 am

    » Buenas fuentes para aprender Ruby
    por SagahonArturo Jue Mayo 23, 2013 7:00 pm

    » Los trailers mas memorables
    por Shooter Jue Mayo 23, 2013 3:32 pm

    » Capcom cancela evento de Resident Evil: Revelations HD
    por Shooter Jue Mayo 23, 2013 2:19 pm

    » nueva beta de dross el rompe muelas
    por Poiron15 Jue Mayo 23, 2013 1:44 pm

    Recomendados
    RPG en RPG Maker
    La importancia de un Backup
    Que requiere un sistema de Batalla para ser exitoso
    9 Minutos de Juegos por fans
    Neoland
    Indice de Scripts Locales XP
    Falcao Pearl ABS Liquid
    ¿Quién está en línea?
    En total hay 28 usuarios en línea: 2 Registrados, 0 Ocultos y 26 Invitados :: 1 Motor de búsqueda

    mike182, Shooter

    La mayor cantidad de usuarios en línea fue 179 el Mar Ago 30, 2011 1:06 pm.
    MiniChat
    Mejores posteadores
    Shooter (2938)
     
    DaviX (2724)
     
    Frikilangelo (2429)
     
    Falcao (1768)
     
    kyonides-arkanthos (1443)
     
    SagahonArturo (1440)
     
    555goku5551 (1434)
     
    Webmaster24 (1353)
     
    Ares (1338)
     
    xDarkLinkx (1309)
     
    Afiliados
    Crear foro Mundo Maker Foro de anime y RM2k3/XP/VX Computer mix
    Flag Counter
    free counters
    Visitas

    Compartir | .
     

     Yanfly - Ace Message System

    Ver el tema anterior Ver el tema siguiente Ir abajo 
    AutorMensaje
    Balduino
    Amateaur
    Amateaur


    Cantidad de envíos: 19
    Miembro desde: 17/02/2012
    Edad: 23
    Localización: Santiago, Chile
    Sexo: Masculino

    Maker: RMVX


    MensajeTema: Yanfly - Ace Message System    Sáb Feb 18, 2012 7:04 am

    Este es mi primer aporte.
    Se trata de un script que le agrega numerosas caracteristicas al sistema de mensajes que viene por defecto en el RMVX ace.
    El Script lo tradujo mi hermano, y me dijo que podria hacer con el lo que fuera y pues lo comparto aca con ustedes jajaja

    Bueno espero que lo disfruten y que les sea util en sus proyectos!.

    Datos Tecnicos:

    Autor: Yanfly
    Versión: 1.04
    Plataforma: RPG Maker VX Ace
    Traducido por: Sigmund_vx

    Imagenes





    Script

    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
        #
        #==============================================================================


    Las funciones vienen detalladas en el mismo script.

    Saludos a todos!
    Volver arriba Ir abajo
    Ver perfil de usuario
    Darksolrac666
    Caballero Experimentado
    Caballero Experimentado


    Cantidad de envíos: 243
    Miembro desde: 10/12/2010
    Edad: 16
    Sexo: Masculino

    Maker: RMXP


    MensajeTema: Re: Yanfly - Ace Message System    Sáb Feb 18, 2012 9:03 am

    Muy buen aporte, gracias por ponerlo! Seguro que a mas de uno le servira.
    Se parece bastante al AMS del XP y el VX, seguramente con menos opciones pero esta muy bien elaborado.

    Gracias y Salu2!
    Volver arriba Ir abajo
    Ver perfil de usuario
    Balduino
    Amateaur
    Amateaur


    Cantidad de envíos: 19
    Miembro desde: 17/02/2012
    Edad: 23
    Localización: Santiago, Chile
    Sexo: Masculino

    Maker: RMVX


    MensajeTema: Re: Yanfly - Ace Message System    Sáb Feb 18, 2012 2:12 pm

    Si, al parecer tiene menos funciones que su similar del XP, que es el que conosco, pero aun asi no deja de ser imprescindible.

    Saludos!
    Volver arriba Ir abajo
    Ver perfil de usuario
    IsaacGS
    Escudero Experimentado
    Escudero Experimentado


    Cantidad de envíos: 46
    Miembro desde: 30/09/2011
    Sexo: Masculino


    MensajeTema: Re: Yanfly - Ace Message System    Sáb Feb 18, 2012 2:46 pm

    Podrías explicarme un más detalladamente cuál es su función, hermano santiaguino?
    Volver arriba Ir abajo
    Ver perfil de usuario
    Balduino
    Amateaur
    Amateaur


    Cantidad de envíos: 19
    Miembro desde: 17/02/2012
    Edad: 23
    Localización: Santiago, Chile
    Sexo: Masculino

    Maker: RMVX


    MensajeTema: Re: Yanfly - Ace Message System    Sáb Feb 18, 2012 3:43 pm

    Bueno el script en cuestion añade la posibilidad de editar a tu gusto la fuente de las letras, me refiero al sombreado, bordes, color y tamaño, se pueden agregar imagenes e iconos, acelerar o disminuir la velicidad de los mensajes, tambien agrega una ventana de nombre arriba de la ventana de mensajes (en la imagen se ve), entre otros mas.
    Volver arriba Ir abajo
    Ver perfil de usuario
    IsaacGS
    Escudero Experimentado
    Escudero Experimentado


    Cantidad de envíos: 46
    Miembro desde: 30/09/2011
    Sexo: Masculino


    MensajeTema: Re: Yanfly - Ace Message System    Dom Feb 19, 2012 7:22 am

    Oye, en serio m,uchas gracias por darte el tiempo de explicarme. El script está excelente, muchas gracias por el aporte.
    Volver arriba Ir abajo
    Ver perfil de usuario
    ChistinOz
    Escudero Maker
    Escudero Maker


    Cantidad de envíos: 35
    Miembro desde: 22/12/2011
    Edad: 17
    Localización: carmen campeche
    Sexo: Masculino

    Maker: RMVX


    MensajeTema: Re: Yanfly - Ace Message System    Dom Mar 04, 2012 6:24 am

    Estaría muy bien si le pones algun demo o algo donde explique mejor sus funciones, así como las imágenes.

    Lo que pasa es que algunas opciones no me salen, pero por lógica se vé que el script es buenísimo.
    Gracias por el aporte.
    Saludos!
    cheers
    Volver arriba Ir abajo
    Ver perfil de usuario
    Shooter
    Admin
    Admin


    Cantidad de envíos: 2938
    Miembro desde: 01/03/2010
    Edad: 20
    Sexo: Masculino

    Maker: RMXP

    Logros MP:



    MensajeTema: Re: Yanfly - Ace Message System    Dom Mar 04, 2012 1:07 pm

    ChistinOz escribió:
    Estaría muy bien si le pones algun demo o algo donde explique mejor sus funciones, así como las imágenes.

    Lo que pasa es que algunas opciones no me salen, pero por lógica se vé que el script es buenísimo.
    Gracias por el aporte.
    Saludos!
    cheers


    las instrucciones mas detalladas están dentro del script, allí puedes ver como se usa. básicamente es colocar en el mensaje el comando de lo que se quiere usar en el.
    Ejemplo: \fz[x] - Cambia el tamaño de la fuente a el valor x.

    _________________




    "La amenaza de una espada, mantiene a la otra envainada."

    Spoiler:
     
    Volver arriba Ir abajo
    Ver perfil de usuario En línea
    xKeiside
    Novato
    Novato


    Cantidad de envíos: 1
    Miembro desde: 09/12/2012

    MensajeTema: Re: Yanfly - Ace Message System    Dom Dic 09, 2012 6:20 am

    Una cosa. ¿Se puede centrar el texto?

    Slds.
    Volver arriba Ir abajo
    Ver perfil de usuario
     

    Yanfly - Ace Message System

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

     Temas similares

    -
    » System 18/04/2011
    »  [GUIA] Socket System, Opciones y Tipos de Seeds
    » [RPG Maker XP] Universal Message System 1.1
    » [VX] Neo Message System
    » [VX] Gubid Tactical Battle System (GTBS)

    Permisos de este foro:No puedes responder a temas en este foro.
    Maker Palace :: RGSS Scripts :: Scripts Maker VX / VX Ace-