O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[RD12] Mensagens na Tela 1.5

Iniciado por RD12, 19/12/2012 às 17:34

Mensagens na Tela

Compativel com: Apenas RMXP
Facilidade de uso: Fácil
Lag gerado: Desprezível

[box class=titlebg]
Resumo
[/box]
     Este script mostra mensagens em um canto da tela, é como um pequeno chat, só que são mensagens apenas do sistema. As mensagens são apagadas com o tempo(escolhido), e se pode escolher a cor de cada uma delas.
     Ele pode ser útil para melhorar a jogabilidade pois não irão precisar usar eventos para mostrar mensagens, muito menos o comando print(Que interrompem o movimento do jogador)
  Para usar basta chamar o script: Msg_txt("mensagem", cor)
no lugar de cor você pode por: red, green, blue, black. E caso não por nada, será branca a cor.

[box class=titlebg]
Imagem
[/box]


[box class=titlebg]
Script
[/box]

#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#|Autor: RD12|             Mensagens na Tela v1.5
#--------------------------------------------------------------------
#Chame o script: Msg_txt("Texto", cor) onde cor = red, blue..
#É opcional por a cor, se você não por, ficará branca.
#--------------------------------------------------------------------

module WIN_MSG
  X = 0
  Y = 373
  L = 300#largura
  Windowskin = "" #"001-blue01"
  #Tempo em segundos para ir deletando as mensagens
  Clear_Time = 15
end

#::Cores::
def red;   return Color.new(255, 0, 0);     end
def green; return Color.new(0, 255, 0);     end
def blue;  return Color.new(0, 0, 255);     end
def black; return Color.new(0, 0, 0);       end

class Window_Msg < Window_Base
  
  def initialize
    super(WIN_MSG::X,WIN_MSG::Y,WIN_MSG::L,30*4)
      self.contents = Bitmap.new(width - 32, height - 32)
      self.back_opacity = 90
      self.windowskin = RPG::Cache.windowskin(WIN_MSG::Windowskin)  
      color = Color.new(255, 255, 255)
      $Msg_log = [["", color], ["", color], ["", color], ["", color]]
      self.y = 360
      Msg_txt("Bem Vindo ao Jogo")
    refresh
  end
  
  def refresh
    self.contents.clear
    self.contents.font.name = "Segoe UI"
    self.contents.font.size = 15
    #::Escrever as Mensagens::
    self.contents.font.color = $Msg_log[$Msg_log.size-4][1]
    self.contents.draw_text(0, 0, 310, 32, "#{$Msg_log[$Msg_log.size-4][0]}")
    self.contents.font.color = $Msg_log[$Msg_log.size-3][1]
    self.contents.draw_text(0, 20, 310, 32, "#{$Msg_log[$Msg_log.size-3][0]}")
    self.contents.font.color = $Msg_log[$Msg_log.size-2][1]
    self.contents.draw_text(0, 40, 310, 32, "#{$Msg_log[$Msg_log.size-2][0]}")
    self.contents.font.color = $Msg_log[$Msg_log.size-1][1]
    self.contents.draw_text(0, 60, 310, 32, "#{$Msg_log[$Msg_log.size-1][0]}")
   end
  
end
   
def Msg_txt(text, color=Color.new(255, 255, 255))
  $Msg_log << [text, color]
end   

class Scene_Map
  alias me_main main
  def main
    @win_msg = Window_Msg.new
    me_main
    @win_msg.dispose
  end
  alias msg_update update
  def update
    msg_update
    @win_msg.refresh 
    if Graphics.frame_count % (40*WIN_MSG::Clear_Time) == 0
      Msg_txt("")
    end
  end
end



[box class=titlebg]
Créditos
[/box]
Script criado por Lucas RD12

muito bom esse script Rd bem útil obrigado por dispor. :ok:

Bem útil esse script, seria interessante usá-lo em eventos de baú, ou em itens jogados pelo mapa.
Seria mais legal se as letras fossem maiores e o log tivesse no máximo uma entrada visível.

 Muito bom RD12, 1+ Ouro pra ti.
[box class=information]
Dean, Programador Geral ;)
[/box]
[box class=information]
Contato: Skype:matucarvalho e Facebook
[/box]