Procuro Script
2 participantes
Página 1 de 1
Procuro Script
GALERA, SE ALGUEM SOUBER ALGUM SCRIPT DE FALA, ME AVISA POR FAVOR...
-----------------------------------------------------------------
TIPO ASSIM, EU COLOCO A FACE DE UMA PESSOA NA FALA.
_______________________________________________________________
-----------------------------------------------------------------
TIPO ASSIM, EU COLOCO A FACE DE UMA PESSOA NA FALA.
_______________________________________________________________
Bloozer- Novato
- Mensagens : 30
Moedas KRM : 5100
Localização : Currais Novos, RN
Especialidade : Roteirista
Engine Favorita : RPG Maker XP
Re: Procuro Script
Bem, achei este script de AMS onde você pode por faces mesmo achando que você já deva ter achado depois de tantos meses.
maue. Seu post foi retirado por estar no lugar incorreto. Por favor, você está sendo avisado e será vigiado.
- Spoiler:
- Código:
#====================================================
# AMS - Advanced Message Script - R4 [Atualização #2]
#====================================================
# Para maiores informações e atualizações, visite:
# [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] (Creation Asylum - Site Oficial)
# [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] (Castelo RPG - Tradução Oficial)
#
# Editado, Corrigido e Melhorado por: Dubealex
# Script Original por: XRXS Scripter (Um cara japa )
# Códigos de Cor Hexadecimal (HTML) por: Phylomorphis
# Traduzido por: Desert Eagle
#
# Agradecimentos:
# Rabu: Por ativar a função de exibição de face num
# projeto encriptado
#
# Para ver as novas funções, procure por: #NOVO
# Para definir qual botão pula a caixa de texto,
# procure por: #PULAR_TEXTO
#
# 18 de Maio de 2005
#====================================================
# Aqui você pode ativar ou desativar o modo de escrita
# letra por letra. Defina-o como true para ativar o modo
# Defina-o como false para desativar o modo.
LETTER_BY_LETTER_MODE = true
#===================================================
# Início da Classe AMS
#===================================================
class AMS
attr_accessor :name_box_x_offset
attr_accessor :name_box_y_offset
attr_accessor :font_type
attr_accessor :name_font_type
attr_accessor :font_size
attr_accessor :name_font_size
attr_accessor :message_box_opacity
attr_accessor :name_box_skin
attr_accessor :name_box_text_color
attr_accessor :message_box_text_color
attr_accessor :message_box_skin
attr_accessor :name_box_width
attr_accessor :name_box_height
attr_accessor :message_width
attr_accessor :message_height
attr_accessor :message_x
attr_accessor :message_y_bottom
attr_accessor :message_y_middle
attr_accessor :message_y_top
attr_accessor :event_message_x_ofset
attr_accessor :event_message_y_ofset
def initialize
@name_box_x_offset = 0 # Definição da coordenada X da caixa de nome > Padrão = 0
@name_box_y_offset = -10 # Definição da coordenada Y da caixa de nome > Padrão = -10
@name_box_width = 8 # Definição da largura da caixa de nome > Padrão = 8
@name_box_height = 26 # Definição da altura da caixa de nome > Padrão = 26
@font_type = "Tahoma" # Definição da fonte da caixa de mensagens (Case-Sensitive)
@name_font_type = "Tahoma" # Definição da fonte da caixa de nome (Case-Sensitive)
@font_size = 22 # Definição do tamanho da fonte da caixa de mensagens
@name_font_size = 22 # Definição do tamanho da fonte da caixa de nome
@name_box_text_color=0 # Definição da cor do texto da caixa de nome
@message_box_text_color=0 # Definição da cor do texto da caixa de mensagens
@message_box_opacity = 160 # Definição da opacidade da caixa de mensagens > Padrão = 160
@message_box_skin = "001-Blue01" # Definição da WindowSkin da caixa de mensagens
@name_box_skin = "001-Blue01" # Definição da WindowSkin da caixa de nome
@message_width = 480 # Definição da largura da caixa de mensagens > Padrão = 480
@message_height = 160 # Definição da altura da caixa de mensagens > Padrão = 160
@message_x = 80 # Definição da posição X da caixa de mensagens > Padrão = 80
@message_y_bottom = 304 # Definição da posição inferior Y da caixa de mensagens > Padrão = 304
@message_y_middle = 160 # Definição da posição central Y da caixa de mensagens > Padrão = 160
@message_y_top = 16 # Definição da posição superior Y da caixa de mensagens > Padrão = 16
@event_message_x_ofset = 0 # Definição da coordenada X da caixa de eventos > Padrão = 0
@event_message_y_ofset = 48 # Definição da coordenada Y da caixa de eventos > Padrão = 48
end
end
#===================================================
# Fim da Classe AMS
#===================================================
#===================================================
# Início da Classe Window_Message
#===================================================
class Window_Message < Window_Selectable
alias xrxs9_initialize initialize
def initialize
@alex_skip = false
xrxs9_initialize
if $soundname_on_speak == nil then
$soundname_on_speak = ""
end
$gaiji_file = "./Graphics/Gaiji/sample.png"
if FileTest.exist?($gaiji_file)
@gaiji_cache = Bitmap.new($gaiji_file)
else
@gaigi_cache = nil
end
@opacity_text_buf = Bitmap.new(32, 32)
end
#--------------------------------------------------------------------------
alias xrxs9_terminate_message terminate_message
def terminate_message
if @name_window_frame != nil
@name_window_frame.dispose
@name_window_frame = nil
end
if @name_window_text != nil
@name_window_text.dispose
@name_window_text = nil
end
xrxs9_terminate_message
end
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = text_color($ams.message_box_text_color)
self.contents.font.name = $ams.font_type
self.contents.font.size = $ams.font_size
self.windowskin = RPG::Cache.windowskin($ams.message_box_skin)
@x = @y = @max_x = @max_y = @indent = @lines = 0
@face_indent = 0
@opacity = 255
@cursor_width = 0
@write_speed = 0
@write_wait = 0
@mid_stop = false
@face_file = nil
@popchar = -2
if $game_temp.choice_start == 0
@x = 8
end
if $game_temp.message_text != nil
@now_text = $game_temp.message_text
if (/\A\\[Ff]\[(.+?)\]/.match(@now_text))!=nil then
@face_file = $1 + ".png"
@x = @face_indent = 128
if FileTest.exist?("Graphics/Pictures/" + $1 + ".png")
self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
end
@now_text.gsub!(/\\[Ff]\[(.*?)\]/) { "" }
end
begin
last_text = @now_text.clone
@now_text.gsub!(/\\[Vv]\[([IiWwAaSs]?)([0-9]+)\]/) { convart_value($1, $2.to_i) }
end until @now_text == last_text
@now_text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end
# NOVO
# Parar Pulo de Texto (Ligar-Desligar)
@now_text.gsub!(/\\[%]/) { "\100" }
# Fim do novo comando
# NOVO
# Mostrar Nome do Inimigo
@now_text.gsub!(/\\[Mm]\[([0-9]+)\]/) do
$data_enemies[$1.to_i] != nil ? $data_enemies[$1.to_i].name : ""
end
# Fim do novo comando
# NOVO
# Mostrar Preço do Item
@now_text.gsub!(/\\[Pp]rice\[([0-9]+)\]/) do
$data_items[$1.to_i] != nil ? $data_items[$1.to_i].price : ""
end
# Fim do novo comando
# NOVO
# Mostrar Nome da Classe do Herói
@now_text.gsub!(/\\[Cc]lass\[([0-9]+)\]/) do
$data_classes[$data_actors[$1.to_i].class_id] != nil ? $data_classes[$data_actors[$1.to_i].class_id].name : ""
end
# Fim do novo comando
# NOVO
# Mostrar Nome do Mapa Atual
@now_text.gsub!(/\\[Mm]ap/) do
$game_map.name != nil ? $game_map.name : ""
end
# Fim do novo comando
# NOVO
# Escolher Cor da Caixa de Nome
@now_text.gsub!(/\\[Zz]\[([0-9]+)\]/) do
$ams.name_box_text_color=$1.to_i
@now_text.sub!(/\\[Zz]\[([0-9]+)\]/) { "" }
end
# Fim do novo comando
name_window_set = false
if (/\\[Nn]ame\[(.+?)\]/.match(@now_text)) != nil
name_window_set = true
name_text = $1
@now_text.sub!(/\\[Nn]ame\[(.*?)\]/) { "" }
end
if (/\\[Pp]\[([-1,0-9]+)\]/.match(@now_text))!=nil then
@popchar = $1.to_i
if @popchar == -1
@x = @indent = 48
@y = 4
end
@now_text.gsub!(/\\[Pp]\[([-1,0-9]+)\]/) { "" }
end
@max_choice_x = 0
if @popchar >= 0
@text_save = @now_text.clone
@max_x = 0
@max_y = 4
for i in 0..3
line = @now_text.split(/\n/)[3-i]
@max_y -= 1 if line == nil and @max_y <= 4-i
next if line == nil
line.gsub!(/\\\w\[(\w+)\]/) { "" }
cx = contents.text_size(line).width
@max_x = cx if cx > @max_x
if i >= $game_temp.choice_start
@max_choice_x = cx if cx > @max_choice_x
end
end
self.width = @max_x + 32 + @face_indent
self.height = (@max_y - 1) * 32 + 64
@max_choice_x -= 68
@max_choice_x -= @face_indent*216/128
else
@max_x = self.width - 32 - @face_indent
for i in 0..3
line = @now_text.split(/\n/)[i]
next if line == nil
line.gsub!(/\\\w\[(\w+)\]/) { "" }
cx = contents.text_size(line).width
if i >= $game_temp.choice_start
@max_choice_x = cx if cx > @max_choice_x
end
end
@max_choice_x += 8
end
@cursor_width = 0
@now_text.gsub!(/\\\\/) { "\000" }
@now_text.gsub!(/\\[Cc]\[([0123456789ABCDEF#]+)\]/) { "\001[#{$1}]" }
@now_text.gsub!(/\\[Gg]/) { "\002" }
@now_text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\003[#{$1}]" }
@now_text.gsub!(/\\[Aa]\[(.*?)\]/) { "\004[#{$1}]" }
# NOVO
# Mudança da Cor Permanente
@now_text.gsub!(/\\[Cc]olor\[([0-9]+)\]/) do
$ams.message_box_text_color= $1.to_i
@now_text.sub!(/\\[Cc]\[([0-9]+)\]/) { "" }
end
# Fim do novo comando
# NOVO
# Mudar Fonte
@now_text.gsub(/\\[Tt]\[(.*?)\]/) do
buftxt = $1.to_s
$ams.font_type = buftxt
@now_text.sub!(/\\[Tt]\[(.*?)\]/) { "" }
end
# Fim do novo comando
@now_text.gsub!(/\\[.]/) { "\005" }
@now_text.gsub!(/\\[|]/) { "\006" }
@now_text.gsub!(/\\[>]/) { "\016" }
@now_text.gsub!(/\\[<]/) { "\017" }
@now_text.gsub!(/\\[!]/) { "\020" }
@now_text.gsub!(/\\[~]/) { "\021" }
@now_text.gsub!(/\\[Ee]\[([0-9]+)\]/) { "\022[#{$1}]" }
@now_text.gsub!(/\\[Ii]/) { "\023" }
@now_text.gsub!(/\\[]\[([0-9]+)\]/) { "\024[#{$1}]" }
@now_text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "\025[#{$1}]" }
@now_text.gsub!(/\\[Bb]\[([0-9]+)\]/) { "\026[#{$1}]" }
@now_text.gsub!(/\\[Rr]\[(.*?)\]/) { "\027[#{$1}]" }
reset_window
if name_window_set
color=$ams.name_box_text_color
off_x = $ams.name_box_x_offset
off_y = $ams.name_box_y_offset
space = 2
x = self.x + off_x - space / 2
y = self.y + off_y - space / 2
w = self.contents.text_size(name_text).width + $ams.name_box_width + space
h = $ams.name_box_height + space
@name_window_frame = Window_Frame.new(x, y, w, h)
@name_window_frame.z = self.z + 1
x = self.x + off_x + 4
y = self.y + off_y
@name_window_text = Air_Text.new(x, y, name_text, color)
@name_window_text.z = self.z + 2
end
end
reset_window
if $game_temp.choice_max > 0
@item_max = $game_temp.choice_max
self.active = true
self.index = 0
end
if $game_temp.num_input_variable_id > 0
digits_max = $game_temp.num_input_digits_max
number = $game_variables[$game_temp.num_input_variable_id]
@input_number_window = Window_InputNumber.new(digits_max)
@input_number_window.number = number
@input_number_window.x = self.x + 8
@input_number_window.y = self.y + $game_temp.num_input_start * 32
end
end
#--------------------------------------------------------------------------
def update
super
if @fade_in
self.contents_opacity += 24
if @input_number_window != nil
@input_number_window.contents_opacity += 24
end
if self.contents_opacity == 255
@fade_in = false
end
return
end
@now_text = nil if @now_text == ""
if @now_text != nil and @mid_stop == false
if @write_wait > 0
@write_wait -= 1
return
end
text_not_skip = LETTER_BY_LETTER_MODE
while true
@max_x = @x if @max_x < @x
@max_y = @y if @max_y < @y
if (c = @now_text.slice!(/./m)) != nil
if c == "\000"
c = "\"
end
if c == "\001"
@now_text.sub!(/\[([0123456789ABCDEF#]+)\]/, "")
temp_color = $1
color = temp_color.to_i
leading_x = temp_color.to_s.slice!(/./m)
if leading_x == "#"
self.contents.font.color = hex_color(temp_color)
next
end
if color >= 0 and color <= 7
self.contents.font.color = text_color(color)
end
next
end
if c == "\002"
if @gold_window == nil and @popchar <= 0
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
c = ""
end
if c == "\003"
@now_text.sub!(/\[([0-9]+)\]/, "")
speed = $1.to_i
if speed >= 0 and speed <= 19
@write_speed = speed
end
c = ""
end
if c == "\004"
@now_text.sub!(/\[(.*?)\]/, "")
buftxt = $1.dup.to_s
if buftxt.match(/\//) == nil and buftxt != "" then
$soundname_on_speak = "Audio/SE/" + buftxt
else
$soundname_on_speak = buftxt.dup
end
c = ""
elsif c == "\004"
c = ""
end
if c == "\005"
@write_wait += 5
c = ""
end
if c == "\006"
@write_wait += 20
c = ""
end
if c == "\016"
text_not_skip = false
c = ""
end
if c == "\017"
text_not_skip = true
c = ""
end
if c == "\020"
@mid_stop = true
c = ""
end
if c == "\021"
terminate_message
return
end
if c == "\023"
@indent = @x
c = ""
end
if c == "\024"
@now_text.sub!(/\[([0-9]+)\]/, "")
@opacity = $1.to_i
color = self.contents.font.color
self.contents.font.name = $ams.font_type
self.contents.font.size = $ams.font_size
self.contents.font.color = Color.new(color.red, color.green, color.blue, color.alpha * @opacity / 255)
c = ""
end
if c == "\025"
@now_text.sub!(/\[([0-9]+)\]/, "")
self.contents.font.size = [[$1.to_i, 6].max, 32].min
c = ""
end
if c == "\026"
@now_text.sub!(/\[([0-9]+)\]/, "")
@x += $1.to_i
c = ""
end
if c == "\027"
@now_text.sub!(/\[(.*?)\]/, "")
@x += ruby_draw_text(self.contents, @x, @y * line_height + (line_height - self.contents.font.size), $1, @opacity)
if $soundname_on_speak != ""
Audio.se_play($soundname_on_speak)
end
c = ""
end
if c == "\030"
@now_text.sub!(/\[(.*?)\]/, "")
self.contents.blt(@x , @y * line_height + 8, RPG::Cache.icon($1), Rect.new(0, 0, 24, 24))
if $soundname_on_speak != ""
Audio.se_play($soundname_on_speak)
end
@x += 24
c = ""
end
if c == "\n"
@lines += 1
@y += 1
@x = 0 + @indent + @face_indent
if @lines >= $game_temp.choice_start
@x = 8 + @indent + @face_indent
@cursor_width = @max_choice_x
end
c = ""
end
if c == "\022"
@now_text.sub!(/\[([0-9]+)\]/, "")
@x += gaiji_draw(4 + @x, @y * line_height + (line_height - self.contents.font.size), $1.to_i)
c = ""
end
# NOVO
# Pular Texto (Ligar-Desligar)
if c == "\100"
if @alex_skip==false
@alex_skip=true
else
@alex_skip=false
end
c = ""
end
# Fim do Novo Comando
if c != ""
self.contents.draw_text(0+@x, 32 * @y, 40, 32, c)
@x += self.contents.text_size(c).width
if $soundname_on_speak != "" then
Audio.se_play($soundname_on_speak)
end
end
# PULAR_TEXTO
# -----------
#
# Aqui você configura qual tecla pulará a caixa de mensagens
# Mude o valor da linha 572, como indicado
#
# B = Esc, 0 (Teclado Numérico), X
# C = Enter, Barra de Espaço e C
# A = Shift, Z
if Input.press?(Input::C) # <-- Mude o valor desta linha
if @alex_skip==false
text_not_skip = false
end
end
else
text_not_skip = true
break
end
if text_not_skip
break
end
end
@write_wait += @write_speed
return
end
if @input_number_window != nil
@input_number_window.update
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
$game_variables[$game_temp.num_input_variable_id] =
@input_number_window.number
$game_map.need_refresh = true
@input_number_window.dispose
@input_number_window = nil
terminate_message
end
return
end
if @contents_showing
if $game_temp.choice_max == 0
self.pause = true
end
if Input.trigger?(Input::B)
if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
$game_system.se_play($data_system.cancel_se)
$game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
terminate_message
end
end
if Input.trigger?(Input::C)
if $game_temp.choice_max > 0
$game_system.se_play($data_system.decision_se)
$game_temp.choice_proc.call(self.index)
end
if @mid_stop
@mid_stop = false
return
else
terminate_message
end
end
return
end
if @fade_out == false and $game_temp.message_text != nil
@contents_showing = true
$game_temp.message_window_showing = true
refresh
Graphics.frame_reset
self.visible = true
self.contents_opacity = 0
if @input_number_window != nil
@input_number_window.contents_opacity = 0
end
@fade_in = true
return
end
if self.visible
@fade_out = true
self.opacity -= 48
if self.opacity == 0
self.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end
#--------------------------------------------------------------------------
def get_character(parameter)
case parameter
when 0
return $game_player
else
events = $game_map.events
return events == nil ? nil : events[parameter]
end
end
#--------------------------------------------------------------------------
def reset_window
#MESSAGE_SIZE
#MESSAGE_POSITION
if @popchar >= 0
events = $game_map.events
if events != nil
character = get_character(@popchar)
x = [[character.screen_x - $ams.event_message_x_ofset - self.width / 2, 4].max, 636 - self.width].min
y = [[character.screen_y - $ams.event_message_y_ofset - self.height, 4].max, 476 - self.height].min
self.x = x
self.y = y
end
elsif @popchar == -1
self.x = -4
self.y = -4
self.width = 648
self.height = 488
else
if $game_temp.in_battle
self.y = 16
else
case $game_system.message_position
when 0
self.y = $ams.message_y_top
when 1
self.y = $ams.message_y_middle
when 2
self.y = $ams.message_y_bottom
end
self.x = $ams.message_x
if @face_file == nil
self.width = $ams.message_width
self.x = $ams.message_x
else
if self.width <= 600
self.width = 600
self.x -=60
end
end
self.height = $ams.message_height
end
end
self.contents = Bitmap.new(self.width - 32, self.height - 32)
self.contents.font.color = text_color($ams.message_box_text_color)
self.contents.font.name = $ams.font_type
self.contents.font.size = $ams.font_size
if @face_file != nil
self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
end
if @popchar == -1
self.opacity = 255
self.back_opacity = 0
elsif $game_system.message_frame == 0
self.opacity = 255
self.back_opacity = $ams.message_box_opacity
else
self.opacity = 0
self.back_opacity = $ams.message_box_opacity
end
end
#--------------------------------------------------------------------------
def gaiji_draw(x, y, num)
if @gaiji_cache == nil
return 0
else
if @gaiji_cache.width < num * 24
return 0
end
if self.contents.font.size >= 20 and self.contents.font.size <= 24
size = 24
else
size = self.contents.font.size * 100 * 24 / 2200
end
self.contents.stretch_blt(Rect.new(x, y, size, size), @gaiji_cache, Rect.new(num * 24, 0, 24, 24))
if $soundname_on_speak != "" then
Audio.se_play($soundname_on_speak)
end
return size
end
end
#--------------------------------------------------------------------------
def line_height
return 32
if self.contents.font.size >= 20 and self.contents.font.size <= 24
return 32
else
return self.contents.font.size * 15 / 10
end
end
#--------------------------------------------------------------------------
def ruby_draw_text(target, x, y, str,opacity)
sizeback = target.font.size
target.font.size * 3 / 2 > 32 ? rubysize = 32 - target.font.size : rubysize = target.font.size / 2
rubysize = [rubysize, 6].max
opacity = [[opacity, 0].max, 255].min
split_s = str.split(/,/)
split_s[0] == nil ? split_s[0] = "" : nil
split_s[1] == nil ? split_s[1] = "" : nil
height = sizeback + rubysize
width = target.text_size(split_s[0]).width
target.font.size = rubysize
ruby_width = target.text_size(split_s[1]).width
target.font.size = sizeback
buf_width = [target.text_size(split_s[0]).width, ruby_width].max
width - ruby_width != 0 ? sub_x = (width - ruby_width) / 2 : sub_x = 0
if opacity == 255
target.font.size = rubysize
target.draw_text(x + sub_x, y - target.font.size, target.text_size(split_s[1]).width, target.font.size, split_s[1])
target.font.size = sizeback
target.draw_text(x, y, width, target.font.size, split_s[0])
return width
else
if @opacity_text_buf.width < buf_width or @opacity_text_buf.height < height
@opacity_text_buf.dispose
@opacity_text_buf = Bitmap.new(buf_width, height)
else
@opacity_text_buf.clear
end
@opacity_text_buf.font.size = rubysize
@opacity_text_buf.draw_text(0 , 0, buf_width, rubysize, split_s[1], 1)
@opacity_text_buf.font.size = sizeback
@opacity_text_buf.draw_text(0 , rubysize, buf_width, sizeback, split_s[0], 1)
if sub_x >= 0
target.blt(x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
else
target.blt(x + sub_x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
end
return width
end
end
#--------------------------------------------------------------------------
def convart_value(option, index)
option == nil ? option = "" : nil
option.downcase!
case option
when "i"
unless $data_items[index].name == nil
r = sprintf("\030[%s]%s", $data_items[index].icon_name, $data_items[index].name)
end
when "w"
unless $data_weapons[index].name == nil
r = sprintf("\030[%s]%s", $data_weapons[index].icon_name, $data_weapons[index].name)
end
when "a"
unless $data_armors[index].name == nil
r = sprintf("\030[%s]%s", $data_armors[index].icon_name, $data_armors[index].name)
end
when "s"
unless $data_skills[index].name == nil
r = sprintf("\030[%s]%s", $data_skills[index].icon_name, $data_skills[index].name)
end
else
r = $game_variables[index]
end
r == nil ? r = "" : nil
return r
end
#--------------------------------------------------------------------------
def dispose
terminate_message
if @gaiji_cache != nil
unless @gaiji_cache.disposed?
@gaiji_cache.dispose
end
end
unless @opacity_text_buf.disposed?
@opacity_text_buf.dispose
end
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end
#--------------------------------------------------------------------------
def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
self.cursor_rect.set(8 + @indent + @face_indent, n * 32, @cursor_width, 32)
else
self.cursor_rect.empty
end
end
end
#=========================================
# Fim da Classe Window_Message
#=========================================
#=========================================
# Início da Classe Window_Frame
#=========================================
class Window_Frame < Window_Base
def initialize(x, y, width, height)
super(x, y, width, height)
self.windowskin = RPG::Cache.windowskin($ams.name_box_skin)
self.contents = nil
end
#--------------------------------------------------------------------------
def dispose
super
end
end
#=========================================
# Fim da Classe Window_Frame
#=========================================
#===============================================
# Início do Código Adicional da Classe Game_Map
#===============================================
class Game_Map
# Modificação por Dubealex (do original XRXS) para
# mostrar o nome do mapa atual na tela
def name
$map_infos[@map_id]
end
end
#============================================
# Fim do Código Adicional da Classe Game_Map
#============================================
#==================================================
# Início do Código Adicional da Classe Scene_Title
#==================================================
class Scene_Title
# Modificação por Dubealex (do original XRXS) para
# mostrar o nome do mapa atual na tela
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
# Modificação por Dubealex para salvar as informações
# do AMS nos arquivos de save
$ams = AMS.new
end
#===============================================
# Fim do Código Adicional da Classe Scene_Title
#===============================================
#==================================================
# Início do Código Adicional da Classe Window_Base
#==================================================
class Window_Base < Window
# Modificação por Dubealex (do original Phylomorphis)
# para usar códigos hexadecimais de cor (HTML)
def hex_color(string)
red = 0
green = 0
blue = 0
if string.size != 6
print("Strings hexadecimais devem ter no máximo 6 caracteres.")
print("A cor branca será utilizada.")
return Color.new(255, 255, 255, 255)
end
for i in 1..6
s = string.slice!(/./m)
if s == "#"
print("trings hexadecimais devem conter o caractere "#".")
print("A cor branca será utilizada.")
return Color.new(255, 255, 255, 255)
end
value = hex_convert(s)
if value == -1
print("Erro convertendo valor hexadecimal.")
print("A cor branca será utilizada.")
return Color.new(255, 255, 255, 255)
end
case i
when 1
red += value * 16
when 2
red += value
when 3
green += value * 16
when 4
green += value
when 5
blue += value * 16
when 6
blue += value
end
end
return Color.new(red, green, blue, 255)
end
#--------------------------------------------------------------------------
def hex_convert(character)
case character
when "0"
return 0
when "1"
return 1
when "2"
return 2
when "3"
return 3
when "4"
return 4
when "5"
return 5
when "6"
return 6
when "7"
return 7
when "8"
return 8
when "9"
return 9
when "A"
return 10
when "B"
return 11
when "C"
return 12
when "D"
return 13
when "E"
return 14
when "F"
return 15
end
return -1
end
end
#===============================================
# Fim do Código Adicional da Classe Window_Base
#===============================================
#=========================================
# Início da Classe Air_Text
#=========================================
class Air_Text < Window_Base
def initialize(x, y, designate_text, color=0)
super(x-16, y-16, 32 + designate_text.size * 12, 56)
self.opacity = 0
self.back_opacity = 0
self.contents = Bitmap.new(self.width - 32, self.height - 32)
w = self.contents.width
h = self.contents.height
self.contents.font.name = $ams.name_font_type
self.contents.font.size = $ams.name_font_size
self.contents.font.color = text_color(color)
self.contents.draw_text(0, 0, w, h, designate_text)
end
#--------------------------------------------------------------------------
def dispose
self.contents.clear
super
end
end
#==========================================
# Fim da Classe Air_Text
#==========================================
#===================================================
# Início do Código Adicional da Classe Scene_Save
#===================================================
class Scene_Save < Scene_File
alias ams_original_write_save_data write_save_data
def write_save_data(file)
ams_original_write_save_data(file)
Marshal.dump($ams, file)
end
end
#===================================================
# Fim do Código Adicional da Classe Scene_Save
#===================================================
#===================================================
# Início do Código Adicional da Classe Scene_Load
#===================================================
class Scene_Load < Scene_File
alias ams_original_read_save_data read_save_data
def read_save_data(file)
ams_original_read_save_data(file)
$ams = Marshal.load(file)
end
end
#===================================================
# Fim do Código Adicional da Classe Scene_Load
#===================================================
- Spoiler:
- Mudar a cor do texto temporariamente (Padrão):
\c[ID_da_Cor]
Insira a ID da cor desejada. Todas as cores foram programadas na classe Window_Base, iniciando na linha 39. 0 é branco. Para ver uma pequena tabela dessas cores, abra o arquivo de ajuda de seu RPG Maker XP e cheque a seção Eventos > Opções de Mensagens.
Mudar a cor do texto temporariamente (Hexadecimal):
\c[#000000]
Insira o código de cores hexadecimal desejado dentro dos colchetes.
#000000 = preto
#FFFFFF = branco
Mostrar janela de dinheiro:
\G
Este comando irá exibir uma janela com todo o dinheiro do jogador no canto superior direito da janela.
Mostrar nome do herói:
\n[ID_do_Herói]
Insira a ID do herói desejado para exibir o nome do mesmo.
Mostrar nome do inimigo:
\m[ID_do_Inimigo]
Insira a ID do inimigo desejado para exibir o nome do mesmo.
Mostrar preço do item:
\Price[ID_do_Item]
Insira a ID do item desejado para exibir o preço do mesmo.
Mostrar nome do mapa atual:
\Map
Este comando exibirá o nome do mapa no qual o herói se encontra no momento.
Mostrar um gráfico de face na mensagem:
\f[Nome_do_Gráfico]
O Nome_do_Gráfico deve ser o nome do arquivo de imagem que deve estar localizado no diretório Graphics\Pictures do seu projeto. O arquivo deve ser um PNG de 96X96 pixels. Você não precisa escrever a extensão do arquivo, só escreva o nome do arquivo.
Exemplo: \f[Ash]
Isso mostrará na sua caixa de mensagens o arquivo Ash.png, localizado na pasta Graphics\Pictures.
Mostrar nome da classe de um personagem:
\Class[ID_do_Herói]
Insira a ID do herói desejado para mostrar o nome da classe do herói.
Mostrar nome de variáveis, itens, armas, armaduras e habilidades:
\v[xID]
Você deve substituir o x pela primeira letra da categoria que você deseja exibir o nome (em inglês), seguido da ID do item, arma, armadura, habilidade ou variável. Exemplo:
Variável = Não escreva nada, apenas insira a ID da variável \v[ID_da_Variável]
Itens = i + ID do Item --> \v[iID]
Armaduras = a + ID da Armadura --> \v[aID]
Armas = w + ID da Arma --> \v[wID]
Habilidades = s + ID da Habilidade --> \v[sID]
Mostrar nome ou outra informação na caixa de nome:
\Name[text]
Use este comando para exibir uma caixa de nome acima da caixa de mensagens que exibirá o texto que você inserir após o comando. Você também pode usar outrocomando após este comando, como por exemplo mostrar o nome do herói na caixa.
Exemplo:
\Name[\v[12]] --> Isso exibirá a variável de ID 12 na caixa de nome.
\Name[Dubealex] --> Isso exibirá "Dubealex" na caixa de nome.
\Name[\n[1]] --> Isso exibirá o herói de ID 1 na caixa de nome.
Modificar a opacidade do texto:
\o[Opacidade]
Use este comando para modificar a opacidade do texto presente na caixa de mensagens. Insira um número entre 0 e 255, quando 255 é totalmente opaco e 0 é totalmente transparente.
Modificar velocidade do texto:
\s[Speed]
Use este comando para modificar a velocidade com que o texto é exibido na caixa de mensagens. Insira um número entre 1 e 19, onde 1 é o mais rápido e 19 é o mais lento.
Modificar tamanho do texto:
\h[Size]
Use este comando para modificar o tamanho do texto exibido na caixa de mensagens. Insira um número entre 6 e 32, onde 6 é o menor e 32 é o maior.
Exibir caixa de mensagens acima do herói ou eventos:
\p[Option]
Use este comando para fazer a caixa de mensagens aparecer acima de qualquer herói ou evento presente no seu mapa. Utilize as seguintes opções:
\p[ID_do_Evento]
\P[0]
\p[-1]
- "\p[ID_do_Evento]" irá colocar a caixa de mensagens acima do evento especificado (Insira a ID do Evento)
- "\p[0]" irá colocar a caixa de mensagens acima do herói
- "\p[-1]" irá deixar a caixa de mensagens sem fundo e sem bordas
Ativar/Desativar modo letra por letra temporariamente:
\< --> Para ativar o modo
\> --> Para desativar o modo
Mudar fonte da caixa de mensagens (permanente):
\t[NomedaFonte]
O NomedaFonte deve ser um arquivo .TTF localizado no diretório C:\Windows\Fonts. A inserção do nome é Case-Sensitive (maiúsculas diferentes de minúsculas).
Executar um efeito sonoro enquanto cada letra é exibida (permanente):
\a[NomedoArquivo]
O arquivo deve estar no diretório Audio\SE, presente na pasta do seu projeto. Lembre-se de definir esse efeito como desligado quando você não precisar mais dele, deixando os colchetes vazios ou então o efeito será escutado em todas as caixas de mensagens daqui para frente.
Mostrar texto como superscript:
\[Primeiro]Segundo
O primeiro texto estará em tamanho normal e o segundo estará um pouco menor e mais elevado na linha, como um superscript.
Ativar/Desativar botão de pular texto (permanente):
\%
Use este comando para ativar ou desativar o botão de pular o texto. Este comando é útil quando você quer controlar a exibição de alguma parte importante da história do jogo e não quer que o usuário pule a parte. Lembre-se que as alterações feitas por este comando são permanentes, por isso se quiser usar o comando de pular texto novamente, use o código novamente.
Modificar a cor do texto da caixa de nome (permanente):
\z[ColorID]
Use isto como você usa normalmente o comando de cor (\c[ID_da_cor]) - Mas desta vez a cor definida será utilizada na caixa de nome e a modificação da cor é permanente. Por isso, lembre-se de modificar a cor novamente (para a cor padrão).
Modificar cor do texto da caixa de mensagens (permanente):
\Color[ColorID]
Use isto como você usa normalmente o comando de cor (\c[ID_da_cor]) - Mas desta vez a cor definida será utilizada em todas as caixas de mensagens do jogo.
Comandos variados:
\| --> Esperar por 1 segundo
\. --> Esperar por 25 segundos
\~ --> Auto-fechar caixa ao exibir última letra
\! --> Esperar por usuário inserir uma tecla
\\ --> Exibir o caractere \
maue. Seu post foi retirado por estar no lugar incorreto. Por favor, você está sendo avisado e será vigiado.
SamKillerKing - Mensagens : 27
Moedas KRM : 4893
Especialidade : Roteirista
Engine Favorita : RPG Maker XP
Re: Procuro Script
Obrigado.
Bloozer- Novato
- Mensagens : 30
Moedas KRM : 5100
Localização : Currais Novos, RN
Especialidade : Roteirista
Engine Favorita : RPG Maker XP
Tópicos semelhantes
» Rodar executaveis via script
» Hack para Habbo (Script)
» [Script] Parameter Breaker - Só para Gold e Itens!
» Hack para Habbo (Script)
» [Script] Parameter Breaker - Só para Gold e Itens!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos