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

Avisos/Mensagens na Tela

Iniciado por RD12, 18/06/2013 às 19:58

Avisos na Tela

Esse script é bem legal, ele mostra umas mensagens na tela ao chamar um script, ao invés de ficar mostrando mensagens por eventos, assim é bem mais bonito e melhor.

Características:
* Só chamar um script com o texto
* Pode se escolher a cor do texto
* Você pode escolher quantas linhas exibir na tela (de 1 a 4 linhas)
* Você pode escolher o tempo para o texto ir sumindo
* Mostra mensagem quando ganha Itens, armas, moedas...(Opcional)

Como Usar:
Apenas chame o script: Aviso(0, "Mensagem")
onde o 0 é o ID da cor, você pode adicionar mais cores no script facilmente.

Imagens:


Spoiler




[close]

Script:

#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=::=:=
#|Autor: RD12|              Avisos/Mensagens no Mapa
#-----------------------------------------------------------------------------------
# Mostra Avisos na tela ao chamar um script, e se pode escolher a cor do aviso
#    Apenas chame o script: Aviso(0, "Mensagem")  >= onde 0 é o ID da cor
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=::=:=
#          Para mais scripts:      www.aldeiarpgbr.com

module Conf_Avisos

  #Tamanho e Nome da Fonte
  Font_Size = 14
  Font_Name = "Segoe UI"
  #Coordenadas
  X = 1
  Y = 300
  #Aviso ao ganhar Itens,moedas.. 0 é o id da cor da mensagem
  Gain_Aviso = [0,true]
  #Tempo pra ir limpando linha por linha em segundos
  Tempo = 15
  #Número de Avisos na Tela(de 1 a 4)
  Avisos = 4
  #Cores, você pode add mais
  Cor[0] = Color.new(255,255,255)#branco
  Cor[1] = Color.new(255,0,0)#vermelho
  Cor[2] = Color.new(0,255,0)#verde
  Cor[3] = Color.new(0,0,255)#azul
  Cor[4] = Color.new(255,255,0)#amarelo
  Cor[5] = Color.new(255,0,255)#rosa
  Cor[6] = Color.new(0,0,0)#preto
  #Cor[7] = Color.new(0,0,0)#Nova Cor
end

class Avisos < Sprite
  def initialize
    super
    self.bitmap = bitmap = Bitmap.new(200,300)
    self.bitmap.font.size = Conf_Avisos::Font_Size
    self.bitmap.font.name = Conf_Avisos::Font_Name
    #Inicia as linhas de avisos
    $linha1 = [Color.new(255,255,255), ""]
    $linha2 = [Color.new(255,255,255), ""]
    $linha3 = [Color.new(255,255,255), ""]
    $linha4 = [Color.new(255,255,255), ""]
    self.x = Conf_Avisos::X
    self.y = Conf_Avisos::Y
    refresh
  end
      
  def refresh
    self.bitmap.clear
  #Aqui escreve as mensagens na tela
   if Conf_Avisos::Avisos == 4
    self.bitmap.font.color = $linha1[0]
    self.bitmap.draw_text(10, 0, 900, 32, $linha1[1], 0)
    end
   if Conf_Avisos::Avisos >= 3
    self.bitmap.font.color = $linha2[0]
    self.bitmap.draw_text(10, 20, 900, 32, $linha2[1], 0)
   end
   if Conf_Avisos::Avisos >= 2
    self.bitmap.font.color = $linha3[0]
    self.bitmap.draw_text(10, 40, 900, 32, $linha3[1], 0)
   end
   if Conf_Avisos::Avisos >= 1
    self.bitmap.font.color = $linha4[0]
    self.bitmap.draw_text(10, 60, 900, 32, $linha4[1], 0)
   end 
  end
end

#Método para add mensagens
def Aviso(cor, msg)
  cor = Conf_Avisos::Cor[cor]
  $linha1 = $linha2
  $linha2 = $linha3
  $linha3 = $linha4
  $linha4 = [cor, msg]
  $Avisos.refresh
end

#Coloca no mapa, Atualiza e vai deletando as mensagens
class Scene_Map
  alias avisos_main main
  def main
    $Avisos = Avisos.new
    avisos_main
    $Avisos.dispose
  end
  alias avisos_update update
  def update
    avisos_update
    $Avisos.refresh if Graphics.frame_count % 40 == 0
    Aviso(0, "") if Graphics.frame_count % (60*Conf_Avisos::Tempo) == 0
  end 
end

#Adiciona mensagem ao ganhar itens ou moedas
class Game_Party < Game_Unit
  def gain_gold(amount)
    @gold = [[@gold + amount, 0].max, max_gold].min
    return if Conf_Avisos::Gain_Aviso[1] == false
    cor = Conf_Avisos::Gain_Aviso[0]
    Aviso(cor, "Você ganhou  "+amount.to_s+" Moedas")
  end
  def gain_item(item, amount, include_equip = false)
    container = item_container(item.class)
    return unless container
    last_number = item_number(item)
    new_number = last_number + amount
    container[item.id] = [[new_number, 0].max, max_item_number(item)].min
    container.delete(item.id) if container[item.id] == 0
    if include_equip && new_number < 0
      discard_members_equip(item, -new_number)
    end
    return if Conf_Avisos::Gain_Aviso[1] == false
    cor = Conf_Avisos::Gain_Aviso[0]
    Aviso(cor, "Você ganhou "+amount.to_s+" "+item.name)
    $game_map.need_refresh = true
  end
end



Créditos RD12

Realmente incrível, apesar de simples, deixa o jogo bem agradável, nada de exageros visualmente falando!

Obrigado por dispor.
Galeria:


18/06/2013 às 20:14 #2 Última edição: 18/06/2013 às 20:19 por VincentVII
Muito bom mesmo! Não teria como você convertê-lo para XP? Creio que o pessoal que faz jogos online ia achar seu script muito útil. Muito útil para jogos onlines!

Viva a lenda!




Achei bem bacana parabéns =)
E ainda é bem simples de usar obrigado por disponibilizar!
+ouro!

Simples mais bem útil.
E nada de exagero como o BieelDesigner disse.
Parabéns.

No meu esta dando error. não entendi muito bem o pq.

Poderia me ajudar?

[Anexo excluído pelo administrador]

Citação de: giovanelli online 30/07/2013 às 03:11
No meu esta dando error. não entendi muito bem o pq.

Poderia me ajudar?

A mesma coisa, uma demo seria legal , né.

Citação de: giovanelli online 30/07/2013 às 03:11
No meu esta dando error. não entendi muito bem o pq.

Poderia me ajudar?

Apenas adicione o seguinte na linha 24 do script, acima de Color[0] = Color.new(255, 255, 255)

Cor = []



Opa, desculpem ressuscitar o tópico, mas eu achei esse script bem legal e sou o terceiro a encontrar esse bug que o Giovanelli mostrou, e a solução do Azraven só deu outro erro. Alguém poderia ajudar?

Qual o outro erro?
~ Masked

Masked, você é um mago? Por que eu acabei de testar novo sem fazer praticamente nenhuma mudança pra poder tirar o print do erro e funcionou sem erro nenhum  :o:

Bom, obrigado, se der o problema de antes eu posto o print aqui!

CitarMasked, você é um mago?

:lol:
Tipo isso...

Se der o erro mais uma vez use uma pokebola, assim ele não foge... poste o print e eu ou outro amigo aqui te ajuda com o seu problema  :ok:
~ Masked

Bem simples, na verdade é um puro eye candy, mas acho interessante esse tipo de mensagem, deixa o jogo mais interativo. Parabéns pelo script!  :blink: