View difference between Paste ID: nDEURQU6 and NL9G6fws
SHOW: | | - or go back to the newest paste.
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