Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # • Popup String
- #==============================================================================
- # Autor: Dax
- # Versão: 1.1
- # Site: www.dax-soft.weebly.com
- # Requerimento: Dax Core i1.3
- #==============================================================================
- # • Descrição:
- #------------------------------------------------------------------------------
- # Aparece uma string na cabeça do personagem ou dum evento..Útil para sistemas
- # de batalha.
- #==============================================================================
- # • Como usar: NO COMANDO CHAMAR SCRIPT :
- #------------------------------------------------------------------------------
- # * Para fazer um popup livre no mapa.
- # pop_string_map([x, y], string)
- # x : Coordenada X.
- # y : Coordenada Y.
- # string : Palavra.
- # * Para fazer um popup no jogador.
- # pop_string_player(string)
- # string : Palavra.
- # * Para fazer um popup no evento.
- # pop_string_event(id, string)
- # id : ID do Evento.
- # string : Palavra.
- # * Para mudar a cor.
- # Popup.default_color(color)
- # color : Nova cor.
- #==============================================================================
- Dax.register(:popup_string, "Dax", 1.0, "13/09/13")
- class << Rpg
- #----------------------------------------------------------------------------
- # • Iniciar.
- #----------------------------------------------------------------------------
- alias :string_datamanager :data_manager
- def data_manager
- string_datamanager
- @data_string = []
- end
- #----------------------------------------------------------------------------
- # • Configurações.
- #----------------------------------------------------------------------------
- def string
- return {
- width: 186, # Limite de largura.
- speed: 4, # Configurar a velocidade do popup.
- time: 255, # Tempo que ficará. RECOMENDO 255
- font: "Arial", # Configurar o nome da fonte.
- size: 16, # Configurar o tamanho da fonte.
- bold: true, # Configurar se terá negrito.
- outline: true, # Configurar se terá borda.
- color: self.default_color, # Cor da fonte.
- color_outline: ColorBasic[7], # Cor da borda da fonte.
- follow: true # Seguir evento ou personagem.
- }
- end
- #----------------------------------------------------------------------------
- # • Cor padrão.
- #----------------------------------------------------------------------------
- def default_color(new=nil)
- return new.nil? ? ColorBasic[-1] : new
- end
- #----------------------------------------------------------------------------
- # • Armazenar um popup string.
- # x : Coordenada X.
- # y : Coordenada Y.
- # string : String.
- #----------------------------------------------------------------------------
- def string_store(*args)
- @data_string.push(Sprite_Popup_String.new(*args))
- end
- #----------------------------------------------------------------------------
- # • Armazenar um popup string no personagem.
- # string : String.
- #----------------------------------------------------------------------------
- def string_store_in_player(string)
- self.string_store($game_player, string)
- end
- #----------------------------------------------------------------------------
- # • Armazenar um popup string no evento.
- # id : ID do Evento.
- # string : String.
- #----------------------------------------------------------------------------
- def string_store_in_event(id, string)
- self.string_store($game_map.events[id], string)
- end
- #----------------------------------------------------------------------------
- # • Atualizar string.
- #----------------------------------------------------------------------------
- def update_string
- return if @data_string.nil?
- @data_string.each_with_index do |string, index|
- string.update
- unless string.visible
- string.dispose
- @data_string.delete_at(index)
- end
- end
- end
- end
- #==============================================================================
- # • Sprite_Popup_String.
- #==============================================================================
- class Sprite_Popup_String < Sprite
- #----------------------------------------------------------------------------
- # • Inicialização dos objetos.
- #----------------------------------------------------------------------------
- def initialize(xy, string)
- super([Rpg.string[:width], Rpg.string[:size] + 2])
- self.bitmap.font.name = Rpg.string[:font]
- self.bitmap.font.size = Rpg.string[:size]
- self.bitmap.font.bold = Rpg.string[:bold]
- self.bitmap.font.outline = Rpg.string[:outline]
- self.bitmap.font.color = Rpg.string[:color]
- self.bitmap.font.out_color = Rpg.string[:color_outline]
- if xy.is_a?(Game_Player) or xy.is_a?(Game_Event)
- @target_x = DMath.centralize_x(xy.screen_x, 32, self.width)
- @target_y = xy.screen_y - self.height/2
- elsif xy.is_a?(Array)
- @target_x = xy[0]
- @target_y = xy[1]
- end
- self.x, self.y = @target_x, @target_y
- self.bitmap.draw_text(self.rect, sprintf("%s", string), 0)
- @time_max = @time = Rpg.string[:time]
- @y = false
- @max_y = self.y + 12
- @xy = xy
- end
- #----------------------------------------------------------------------------
- # • Atualização dos objetos.
- #----------------------------------------------------------------------------
- def update
- return if self.nil?
- if (@xy.is_a?(Game_Player) or @xy.is_a?(Game_Event)) and Rpg.string[:follow]
- self.x = DMath.centralize_x(@xy.screen_x, 32, self.width)
- self.y = @xy.screen_y - self.height/2
- end
- self.oy = self.height
- unless @time < 1
- @time -= Rpg.string[:speed]
- unless @y
- self.y += Rpg.string[:speed]/2 unless self.y >= @max_y
- @y = self.y >= @max_y
- else
- self.y -= Rpg.string[:speed]/2 unless self.y <= @target_y
- end
- else
- self.visible = false
- end
- self.opacity = @time_max.to_p(@time, 255)
- end
- end
- #==============================================================================
- # • Spriteset_Map
- #==============================================================================
- class Spriteset_Map
- alias :popup_string_update :update
- def update
- popup_string_update
- Rpg.update_string
- end
- end
- #==============================================================================
- # • Interpretador;
- #==============================================================================
- class Game_Interpreter
- #----------------------------------------------------------------------------
- # • No Mapa.
- #----------------------------------------------------------------------------
- def pop_string_map(*args)
- Rpg.string_store(*args)
- end
- #----------------------------------------------------------------------------
- # • No Personagem.
- #----------------------------------------------------------------------------
- def pop_string_player(string)
- Rpg.string_store_in_player(string)
- end
- #----------------------------------------------------------------------------
- # • No Evento.
- #----------------------------------------------------------------------------
- def pop_string_event(id, string)
- Rpg.string_store_in_event(id, string)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment