IceDragon200

Name Pop Full

Mar 14th, 2012
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #==============================================================================
  2. # š RGSS2_namepop Ver0.02
  3. # tomoaky (http://hikimoki.sakura.ne.jp/)
  4. #==============================================================================
  5. =begin
  6. =end
  7. module NEL
  8.   #Default text pop color
  9.   DEF_TEXT_COLOR = Color.new(255,255,255,255)
  10.   #Default text pop font size
  11.   DEF_TEXT_SIZE = 14
  12.   #Default text pop font
  13.   DEF_TEXT_FONT = "Myriad"
  14. end
  15.  
  16. # // 02/03/2012 [
  17. class Hash
  18. # // IceDragon
  19.   def get_values(*args)
  20.     args.collect {|a|self[a]}
  21.   end
  22. end  
  23. # // 02/03/2012 ]
  24.  
  25. class Game_Interpreter
  26.   include NEL
  27.   def test_nel_textpop(*args)
  28.     if(args[0].is_a?(Hash))
  29.       p "true"
  30.       text, ev_id, time, size, color, font, bold, ital = args[0].get_values(:text,:event_id,:time,:size,:color,:font,:bold,:italic)
  31.     else
  32.       text, ev_id, time, size, color, font, bold, ital = *args
  33.     end
  34.     char = get_character(ev_id || 0)
  35.     return unless(char)
  36.     char.namepop_size = size  || DEF_TEXT_SIZE
  37.     char.namepop_color= color || DEF_TEXT_COLOR
  38.     char.namepop_time = time  || 60
  39.     char.namepop      = text  || ""
  40.     char.namepop_font = font || DEF_TEXT_FONT
  41.     char.namepop_bold = !!bold # // Convert to Bool
  42.     char.namepop_ital = !!ital
  43.   end
  44.  
  45.   def nel_textpop(text,ev_id=0,time=60,size=DEF_TEXT_SIZE,color=DEF_TEXT_COLOR)
  46.     if ev_id == -1
  47.       $game_player.namepop_size = size
  48.       $game_player.namepop_color = color
  49.       $game_player.namepop_time = time
  50.       $game_player.namepop = text
  51.     else
  52.       ev_id = self.event_id if ev_id == 0
  53.       $game_map.events[ev_id].namepop_size = size
  54.       $game_map.events[ev_id].namepop_color = color
  55.       $game_map.events[ev_id].namepop_time = time
  56.       $game_map.events[ev_id].namepop = text
  57.     end
  58.   end
  59.   def nel_change_font(ev_id = 0, font = DEF_TEXT_FONT, bold=false, ital=false)
  60.     if ev_id == -1
  61.       $game_player.namepop_font = font
  62.       $game_player.namepop_bold = bold
  63.       $game_player.namepop_ital = ital
  64.     else
  65.       ev_id = self.event_id if ev_id == 0
  66.       $game_map.events[ev_id].namepop_font = font
  67.       $game_map.events[ev_id].namepop_bold = bold
  68.       $game_map.events[ev_id].namepop_ital = ital
  69.     end
  70.   end
  71. end
  72. #==============================================================================
  73. # ¡ Game_Character
  74. #==============================================================================
  75. class Game_Character
  76.   #--------------------------------------------------------------------------
  77.   # œ ŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•ϐ”
  78.   #--------------------------------------------------------------------------
  79.   attr_accessor :namepop                  # ƒ|ƒbƒvƒAƒbƒvƒeƒLƒXƒg
  80.   attr_accessor :namepop_size
  81.   attr_accessor :namepop_color
  82.   attr_accessor :namepop_time
  83.   attr_accessor :namepop_font
  84.   attr_accessor :namepop_bold
  85.   attr_accessor :namepop_ital
  86.  
  87.   #--------------------------------------------------------------------------
  88.  
  89.   #Do I really want this????
  90.   alias nel_font_type_init initialize
  91.   def initialize
  92.     @namepop_font = NEL::DEF_TEXT_FONT
  93.     @namepop_bold = false
  94.     @namepop_ital = false
  95. #~     @namepop_size = NEL::DEF_TEXT_SIZE
  96. #~     @namepop_color = NEL::DEF_TEXT_COLOR
  97.     nel_font_type_init
  98.   end
  99.  
  100. end
  101.  
  102. #==============================================================================
  103. # ¡ Game_Event
  104. #==============================================================================
  105. class Game_Event < Game_Character
  106.   #--------------------------------------------------------------------------
  107.   # œ ƒCƒxƒ“ƒgƒy[ƒW‚̃ZƒbƒgƒAƒbƒv
  108.   #--------------------------------------------------------------------------
  109.   alias tnpop_game_event_setup setup_page
  110.   def setup_page(new_page)
  111.     tnpop_game_event_setup(new_page)
  112.     if @list != nil
  113.       @namepop = $1 if /<namepop[ ](.*)>/i =~ @event.name
  114.       for list in @list
  115.         if list.code == 108
  116.           @namepop = $1 if /<namepop[ ](.*)>/i =~ list.parameters[0]
  117.           break
  118.         end
  119.       end
  120.     end
  121.   end
  122. end
  123.  
  124. #==============================================================================
  125. # ¡ Sprite_Character
  126. #==============================================================================
  127. class Sprite_Character < Sprite_Base
  128.   alias nel_textx_pop_initi initialize
  129.   def initialize(*args)
  130.     @timer = 0
  131.     nel_textx_pop_initi(*args)
  132.   end
  133.   #--------------------------------------------------------------------------
  134.   # œ ‰ð•ú
  135.   #--------------------------------------------------------------------------
  136.   alias tnpop_sprite_character_dispose dispose
  137.   def dispose
  138.     dispose_namepop
  139.     tnpop_sprite_character_dispose
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # œ ƒtƒŒ[ƒ€XV
  143.   #--------------------------------------------------------------------------
  144.   alias tnpop_sprite_character_update update
  145.   def update
  146.     tnpop_sprite_character_update
  147.     if @timer > 0
  148.       @timer -= 1
  149.       update_text_pos
  150.       if @timer <= 0
  151.         @namepop_sprite.visible = false
  152.         @namepop_sprite.opacity = 255 #Reset opacity just in case
  153.         @namepop_sprite = nil
  154.         @character.namepop = nil
  155.         @namepop = nil
  156.       elsif @timer < 60
  157.         #Fade out text
  158.         @namepop_sprite.opacity -= 4.25
  159.       end
  160.     else
  161.       update_namepop
  162.       if @character.namepop != @namepop
  163.         @namepop = @character.namepop
  164.         start_namepop
  165.       end
  166.     end
  167.   end
  168.  
  169.   def update_text_pos
  170.     @namepop_sprite.x = x
  171.     @namepop_sprite.y = y - height
  172.     @namepop_sprite.z = z + 200
  173.   end
  174.    
  175.   #--------------------------------------------------------------------------
  176.   # › namepop‚ÌŠJŽn
  177.   #--------------------------------------------------------------------------
  178.   def start_namepop
  179.     dispose_namepop
  180.     return if @namepop == "none" or @namepop == nil
  181.     @namepop_sprite = ::Sprite.new(viewport)
  182.     b_width = @namepop.size * 8
  183.     b_height = @character.namepop_size + 20
  184.     @namepop_sprite.ox = 80 + (b_width/2)
  185.     @namepop_sprite.oy = 16 + (b_height/2) #16
  186.     @namepop_sprite.bitmap = Bitmap.new(b_width+160, b_height)#160, 16
  187.     ###Change Font, Font Size, Color, and Time based off Character values##
  188.     @namepop_sprite.bitmap.font.color = @character.namepop_color
  189.    # @namepop_color = @character.namepop_color
  190.     @namepop_sprite.bitmap.font.size = @character.namepop_size
  191.    # @namepop_size = @character.namepop_size
  192.     @namepop_sprite.bitmap.font.name = [@character.namepop_font]
  193.    # @namepop_font = @character.namepop_font
  194.     @namepop_sprite.bitmap.font.bold = @character.namepop_bold
  195.    # @namepop_bold = @character.namepop_bold
  196.     @namepop_sprite.bitmap.font.italic = @character.namepop_ital
  197.    # @namepop_ital = @character.namepop_ital
  198.     @namepop_sprite.bitmap.draw_text(0, 0, b_width+160, b_height, @namepop, 1)#(0, 0, 160, 16, @namepop, 1)
  199.     @namepop_time = @character.namepop_time
  200.     update_namepop(@namepop_time) #Pass a timer variable
  201.   end
  202.   #--------------------------------------------------------------------------
  203.   # › namepop‚̍XV
  204.   #--------------------------------------------------------------------------
  205.   def update_namepop(time = nil) #Add a timer variable
  206.     if @namepop_sprite != nil
  207.       @namepop_sprite.x = x
  208.       @namepop_sprite.y = y - height
  209.       @namepop_sprite.z = z + 200
  210.       if time != nil
  211.         @timer = time
  212.         @namepop_time = 0
  213.       end
  214.     end
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # › namepop‚̉ð•ú
  218.   #--------------------------------------------------------------------------
  219.   def dispose_namepop
  220.     if @namepop_sprite != nil
  221.       @namepop_sprite.bitmap.dispose
  222.       @namepop_sprite.dispose
  223.       @namepop_sprite = nil
  224.     end
  225.   end
  226. end
Advertisement
Add Comment
Please, Sign In to add comment