Keko Moderadores
Mensagens : 154 Data de inscrição : 26/08/2007 Idade : 32 Localização : Aqui mesmo
| Assunto: [Script] AMS - Face nos Dialogos. Dom Ago 26, 2007 9:16 pm | |
| Muito bem, aqui éo Keko enxendo o Forum de coisa Boa^^ Abaixo segue minhas instruções + o Script 1- coloque a imagem com a face do Personagem na pasta Pictures. 2- coloque o script ( DÃR ). 3. o escrever uma mensagem coloque \f[face]. onde [face] seria [o nome da face que esta na pasta pictures. Exemplo, a imagem se xama Keko, voce colocaria \f[Keko], e o Dialogo. Se nao intenderem, podem enviar Pm ou perguntar aqui, que assim que possivel respondo. Segue abaixo o Script: - Citação :
#==================================================== # AMS - Advanced Message Script - R4 [Atualização #2] #==================================================== # Para maiores informações e atualizações, visite: # www.dubealex.com (Creation Asylum - Site Oficial) # www.castelorpg.net (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!(/\\[Oo]\[([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
Última edição por em Seg Ago 27, 2007 8:36 pm, editado 1 vez(es) | |
|
Machine Admistrador
Mensagens : 156 Data de inscrição : 19/08/2007 Idade : 31 Localização : Brasil
| Assunto: Re: [Script] AMS - Face nos Dialogos. Dom Ago 26, 2007 9:31 pm | |
| Este script é ótimo...é um dos meus preferidos. Ele não pode faltar em um jogo. o AMS é muito mais potente do que apenas colocar faces...ele faz de tudo. Vlw por disponibiliza-lo Keko. | |
|
Keko Moderadores
Mensagens : 154 Data de inscrição : 26/08/2007 Idade : 32 Localização : Aqui mesmo
| Assunto: Re: [Script] AMS - Face nos Dialogos. Dom Ago 26, 2007 9:35 pm | |
| Voce que editou minha msg ?
é que sou novo em foruns, num mexo muito entao nao sei colocar esse treco de citação^^
mas agradeço por isso e se puder ensinar, melhor para os 2 pq pretendor por outros scripts e tutoriais^^ | |
|
FantasyX2 Admistrador
Mensagens : 112 Data de inscrição : 19/08/2007 Idade : 32
| Assunto: Re: [Script] AMS - Face nos Dialogos. Dom Ago 26, 2007 9:35 pm | |
| não, deve ter sido algum Adm ou MOD. | |
|
Lucas Novato
Mensagens : 18 Data de inscrição : 26/08/2007 Idade : 33
| Assunto: Re: [Script] AMS - Face nos Dialogos. Seg Ago 27, 2007 2:22 am | |
| Esse scrip eh bom eu uso ele obrigado por mostrar aqui keko. falous...
Lucas... | |
|
Machine Admistrador
Mensagens : 156 Data de inscrição : 19/08/2007 Idade : 31 Localização : Brasil
| Assunto: Re: [Script] AMS - Face nos Dialogos. Seg Ago 27, 2007 2:27 am | |
| Sim...foi eu que formatei seu tópico...coloquei o código corretamente...dentro dakelas "caixas" ^^ Da proxima vez use QUOTE e/ou CODE. Flw's e vlw's | |
|
Conteúdo patrocinado
| Assunto: Re: [Script] AMS - Face nos Dialogos. | |
| |
|