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ƒŒ[ƒ€XV | |
| 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‚ÌXV | |
| 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 |