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:
Script:
- Código:
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=::=:=
#|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
Última edição por RD12 em Ter Jun 26, 2012 9:25 am, editado 2 vez(es)