Últimos temas
» [Sugerencia]Limpieza de recursos viejos en el foro.
por Cuyo1786 Hoy a las 9:52 am

» Busco grupo para un inexperta pero con ganas
por BACA Hoy a las 1:41 am

» Buscando pixel artista, trabajo pagado.
por pixeloid Ayer a las 11:33 pm

» [MV]Butterfly Paradox
por DopellSerch Ayer a las 9:44 pm

» LMD - Lunas de Magia Divina
por Zaabos Ayer a las 12:46 am

» LA BRÚJULA DE ZAZA [VXACE]
por Pocari Dom Oct 20, 2019 1:29 pm

» [VXA]Resident Evil Menu
por DorFenn Dom Oct 20, 2019 1:42 am

» (RMMV) Precognition
por JapoZero Jue Oct 17, 2019 11:40 pm

» Ayuda, duda
por BACA Miér Oct 16, 2019 7:38 pm

» Duda con ventana de comandos en Script
por DorFenn Lun Oct 14, 2019 1:46 am

» Índice Scripts RGSS3
por ZororoWhite Dom Oct 13, 2019 12:24 am

» [VX Ace] Script para duplicar tamaño y escala de ventana del juego
por ZororoWhite Dom Oct 13, 2019 12:23 am


Nelderson | Texto sobre eventos

Ir abajo

Nelderson | Texto sobre eventos Empty Nelderson | Texto sobre eventos

Mensaje por pigu_6 el Dom Abr 20, 2014 4:27 am

Es un script para mostrar texto en la pantalla, sobre cualquier evento, sea personaje o un evento cualquiera en el mapa.

Para hacer q aparezca el texto tienen q hacer un Callscript


nel_textpop(:attribute => value,
:attribute2 => value,
:attribute3: => value,)

Los atributos q se pueden poner son los siguientes, si no definen los atributos quedan por defecto, asi q no es necesario llenar todo, unicamente lo q queremos cambiar

Attributes valuesDescripcion
:text "Ejemplo"El texto va entre " "
:event_id 0 ; -1 ; -2 ; -3; X0= evento seleccionado -1=primer pj -2=segundo pj -3=tercer pj o el numero de evento en el q queramos q aparezca
:time Cantidad de frames q queramos q se mantenga60frames=1seg
:font "Verdana"El tnombre de la fuente  va entre " "
:size XX/td]XX= tamaño de la fuente
:color Color.new(220,20,60)Color.new(red,green,blue)
:bold true o falseActiva y desactiva la negrita
:italic treu o falseActiva y desactiva la italica


Código:
#===============================================================================
#                                  N.A.S.T.Y. Text Pop Over Events
#                                 Nelderson's Awesome Scripts To You
#
# By: Nelderson
# Last Updated: 3/18/20112
#
# Version 1.0 - 3/17/2012
#
#===============================================================================
#
# Update History:
# - Version 1.0  - Initial release, 1st Resource Script for rpgmakervxace.net
#===============================================================================
# *Features:
# - This script creates text above an event or the player on a map
#  
# *Initial Setup
# - This script has a small setup section to define a few Defaults when
#   text is first put up above an event's head:
#  
#       DEF_TEXT_COLOR - Is the default text color when not defined in the
#                                        script call. When you pick a color you have to use
#                                        the form:
#
#                        Color.new(r,g,b,a) - Where r = red, g = green,
#                                                                 b = blue, and a = alpha
#
#       DEF_TEXT_SIZE - This is the default text font size, pretty easy here.
#
#       DEF_TEXT_FONT - This is the name of the default font that'll be used
#                                       for text pops that don't specify one in the script call
#
# *Script Call:
#
# - nel_textpop(:attribute => value,
#                          :attribute2 => value,
#                          :attribute3: => value,
#                          )
#
#   ** Where :attributes can be any one of the following:
#
#                 :text => Values will be in "quotes", and displays over event
#                         (Defaults to "" when not defined)
#              
#                 :event_id => The Event ID that will display text.
#                                       0 = Current Event ID,  -1 = Player,
#                                  -2 1stFollower, -3 2ndFollower, -4 3rdFollower
#                         (Defaults to 0 when not defined)
#
#                 :time => This is the time that the text will last in FRAMES.
#                                       60 FRAMES = 1 second,
#                                *Note: Set :time => nil for the text to last forever*
#                         (Defaults to nil when not defined)
#                
#                 :font => This is the name of the font you want for the text.
#                                       Values with be in "quotes"
#                         (Defaults to DEF_TEXT_FONT when not defined)
#
#                 :size => This changes the font size on the text displayed
#                          (Defaults to DEF_TEXT_SIZE when not defined)
#
#                 :color => This changes the color of the text displayed
#                                       Values need to be => Color.new(r,g,b,a)
#                               (Defaults to DEF_TEXT_COLOR when not defined)
#
#                 :bold => This makes the displayed text bold
#                                  Values need to be => true or false
#                               (Defaults to false when not defined)
#                      
#                 :italic => This makes the displayed text italic
#                                       Values need to be => true or false
#                               (Defaults to false when not defined)
#
# *Instructions
#        -You can place the script call nel_textpop in any event
#
#        -You don't have to define every attribute, they will automatically
#         go to the defaults to make things easier.
#
# *Sample Call
#      
#   nel_textpop(
#   :text => "I hate you!",
#   :event_id => -1,
#   :bold => true,
#   :italic => true,
#   :time => 120,
#   :font => "Vrinda",
#   :size => 64,
#   :color => Color.new(220,20,60),
#   )
#
#===============================================================================
# Credits:
# -Nelderson, tomoaky, and IceDragon
#===============================================================================
# Based off: RGSS2_namepop Ver0.02
# tomoaky (http://hikimoki.sakura.ne.jp/)
#===============================================================================

module NEL
  #Default text pop font
  DEF_TEXT_FONT = "Myriad"

  #Default text pop font size
  DEF_TEXT_SIZE = 16

  #Default text pop color
  DEF_TEXT_COLOR = Color.new(255,255,255,255)# <== White

end #<=== Don't Touch

#========#======================#====#================================#========#
#--------#                                        #----# DO NOT EDIT PAST THIS POINT!!! #--------#
#--------# End of Customization #----# Editing will cause death by      #--------#
#--------#                                        #----# Zetu Stabbing your heart </3   #--------#
#========#======================#====#================================#========#

# // 02/03/2012 [
#Collects the hash keys in order, and then passes the values
class Hash
# // IceDragon <=== *The Ultimate in Awesome OTL
  def get_values(*args)
        args.collect {|a|self[a]}
  end
end  
# // 02/03/2012 ]

class Game_Interpreter
  include NEL
  #IceDragon helped make this script call easier with awesomeness...Thanks Icy!
  def nel_textpop(*args)
        if(args[0].is_a?(Hash))
          text, ev_id, time, size, color, font, bold, ital = args[0].get_values(:text,:event_id,:time,:size,:color,:font,:bold,:italic)
        else
          text, ev_id, time, size, color, font, bold, ital = *args
        end
        char = nel_get_character(ev_id || 0)
        return unless(char)
        char.namepop_size = size  || DEF_TEXT_SIZE
        char.namepop_color= color || DEF_TEXT_COLOR
        char.namepop_time = time  || nil
        char.namepop      = text  || ""
        char.namepop_font = font || DEF_TEXT_FONT
        char.namepop_bold = !!bold # // Convert to Bool
        char.namepop_ital = !!ital
        char.textpop_flag = true #Forces refresh
  end

  #--------------------------------------------------------------------------
  # *New Method: nel_get_character
  #
  # Instead of original get_character, this include Followers in the argument
  #--------------------------------------------------------------------------
  def nel_get_character(param)

        if $game_party.in_battle
          nil
        elsif param < 0
          case param
          when -1; return $game_player
          else; return $game_player.followers[(param + 2) * (-1)]
          end
        else
          events = same_map? ? $game_map.events : {}
          events[param > 0 ? param : @event_id]
        end
  end
  #--------------------------------------------------------------------------
end
#==============================================================================
# ¡ Game_Character
#==============================================================================
class Game_Character
  #--------------------------------------------------------------------------
  # œ œöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï”
  #--------------------------------------------------------------------------
  attr_accessor :namepop                                
  attr_accessor :namepop_size
  attr_accessor :namepop_color
  attr_accessor :namepop_time
  attr_accessor :namepop_font
  attr_accessor :namepop_bold
  attr_accessor :namepop_ital
  attr_accessor :textpop_flag #Instant update if script call is used

  #--------------------------------------------------------------------------
  alias nel_font_type_init initialize
  def initialize
        @namepop_font = NEL::DEF_TEXT_FONT
        @namepop_bold = false
        @namepop_ital = false
        @textpop_flag = false
        nel_font_type_init
  end
end
#==============================================================================
# ¡ Sprite_Character
#==============================================================================
class Sprite_Character < Sprite_Base
  alias nel_textx_pop_initi initialize
  def initialize(*args)
        @timer = 0
        nel_textx_pop_initi(*args)
  end
  #--------------------------------------------------------------------------
  # œ ‰ð•ú
  #--------------------------------------------------------------------------
  alias tnpop_sprite_character_dispose dispose
  def dispose
        dispose_namepop
        tnpop_sprite_character_dispose
  end
  #--------------------------------------------------------------------------
  # œ ƒtƒœ[ƒ€XV
  #--------------------------------------------------------------------------
  alias tnpop_sprite_character_update update
  def update
        tnpop_sprite_character_update #Original Update
        if @timer > 0 && @character.textpop_flag == false#Skip when script called
          @timer -= 1
          update_text_pos
          if @timer <= 0
                @namepop_sprite.visible = false
                @namepop_sprite.opacity = 255 #Reset opacity just in case
                @namepop_sprite = nil
                @character.namepop = nil
                @namepop = nil
                @tmer_rat = nil #Reset ratio, just to avoid issues
          elsif @timer < 60
                #Fade out text gradually within the last 60 frames
                @tmer_rat ||= 255/@timer
                @namepop_sprite.opacity -= @tmer_rat
          end
        else
          update_namepop
          if @character.textpop_flag == true #If script call
                @namepop = @character.namepop
                start_namepop
          end
        end
  end

  def update_text_pos
        @namepop_sprite.x = x
        @namepop_sprite.y = y - height
        @namepop_sprite.z = z + 200
  end

  #--------------------------------------------------------------------------
  # › namepop‚ÌŠJŽn
  #--------------------------------------------------------------------------
  def start_namepop
        dispose_namepop
        return if @namepop == "none" or @namepop == nil
        @namepop_sprite = ::Sprite.new(viewport)
        b_width = @namepop.size * 8
        b_height = @character.namepop_size + 20
        @namepop_sprite.ox = 80 + (b_width/2)
        @namepop_sprite.oy = 16 + (b_height/2) #16
        @namepop_sprite.bitmap = Bitmap.new(b_width+160, b_height)
  ###Change Font, Font Size, Color, and Time based off Character values##
        @namepop_sprite.bitmap.font.color = @character.namepop_color
        @namepop_sprite.bitmap.font.size = @character.namepop_size
        @namepop_sprite.bitmap.font.name = [@character.namepop_font]
        @namepop_sprite.bitmap.font.bold = @character.namepop_bold
        @namepop_sprite.bitmap.font.italic = @character.namepop_ital
        @namepop_sprite.bitmap.draw_text(0, 0, b_width+160, b_height, @namepop, 1)
        @namepop_time = @character.namepop_time
        update_namepop(@namepop_time) #Pass a timer variable
        @character.textpop_flag = false
  end
  #--------------------------------------------------------------------------
  # › namepop‚̍XV
  #--------------------------------------------------------------------------
  def update_namepop(time = nil) #Add a timer variable
        if @namepop_sprite != nil
          @namepop_sprite.x = x
          @namepop_sprite.y = y - height
          @namepop_sprite.z = z + 200
          if time != nil
                @timer = time
                @namepop_time = 0
          end
        end
  end
  #--------------------------------------------------------------------------
  # › namepop‚̉ð•ú
  #--------------------------------------------------------------------------
  def dispose_namepop
        if @namepop_sprite != nil
          @namepop_sprite.bitmap.dispose
          @namepop_sprite.dispose
          @namepop_sprite = nil
        end
  end
end

pigu_6
PJ Recurrente
PJ Recurrente

Masculino
Argentina
RPG Maker : Ace
Mensajes : 80
Monedas : 178
Reputación : 42
Edad : 28

Volver arriba Ir abajo

Volver arriba

- Temas similares

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