ComediaMaker
Faça Login e conecte-se!!!

Ainda nao é membro?
Registre-se logo e faça parte
dessa Bagaça!!



Ams (coloque faces nas mensagens) Banercm


Participe do fórum, é rápido e fácil

ComediaMaker
Faça Login e conecte-se!!!

Ainda nao é membro?
Registre-se logo e faça parte
dessa Bagaça!!



Ams (coloque faces nas mensagens) Banercm
ComediaMaker
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ams (coloque faces nas mensagens)

4 participantes

Ir para baixo

Dispondo Ams (coloque faces nas mensagens)

Mensagem por Diogo Pegasus Sex Jun 18, 2010 10:02 am

Autor : Dubealex



script:

Código:
#====================================================
# 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

    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
#===================================================



Utilização:

Spoiler:
Diogo Pegasus
Diogo Pegasus
Marechal do CM
Marechal do CM

Ams (coloque faces nas mensagens) Admy
Mensagens : 1141
Comédia Grana : 7199
Créditos : 20
Humor : O Google é meu pastor e nada me faltará

https://comediamaker.forumeiro.com

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por naur Sex Jun 18, 2010 1:31 pm

esse script num foi aki n
peguei esse outro de um site ai e foi aki
Código:
#====================================================
# 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

    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
#===================================================
o q vc botou ai tava dando erro numas linhas esse q eu achei de um site ta funcionando aki
vlws,flws
naur
naur
Soldado do CM
Soldado do CM

Mensagens : 26
Comédia Grana : 5107
Créditos : 1

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por Diogo Pegasus Sex Jun 18, 2010 1:35 pm

Valeu por avisar , corrigirei o post mais tarde
Diogo Pegasus
Diogo Pegasus
Marechal do CM
Marechal do CM

Ams (coloque faces nas mensagens) Admy
Mensagens : 1141
Comédia Grana : 7199
Créditos : 20
Humor : O Google é meu pastor e nada me faltará

https://comediamaker.forumeiro.com

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por naur Sex Jun 18, 2010 1:44 pm

quer o site de onde eu peguei o script?

edit:esqueci ja tem os creditos no codigo XD
naur
naur
Soldado do CM
Soldado do CM

Mensagens : 26
Comédia Grana : 5107
Créditos : 1

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por Diogo Pegasus Sex Jun 18, 2010 2:47 pm

Quero , Passa ae entao
Diogo Pegasus
Diogo Pegasus
Marechal do CM
Marechal do CM

Ams (coloque faces nas mensagens) Admy
Mensagens : 1141
Comédia Grana : 7199
Créditos : 20
Humor : O Google é meu pastor e nada me faltará

https://comediamaker.forumeiro.com

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por naur Sex Jun 18, 2010 5:01 pm

http://www.reinorpg.com/forum/index.php?topic=55.0

ta ae
naur
naur
Soldado do CM
Soldado do CM

Mensagens : 26
Comédia Grana : 5107
Créditos : 1

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por Diogo Pegasus Dom Jun 20, 2010 12:56 pm

Eu testei o que tinha postado e está funcionando corretamente Shocked
Diogo Pegasus
Diogo Pegasus
Marechal do CM
Marechal do CM

Ams (coloque faces nas mensagens) Admy
Mensagens : 1141
Comédia Grana : 7199
Créditos : 20
Humor : O Google é meu pastor e nada me faltará

https://comediamaker.forumeiro.com

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por naur Dom Jun 20, 2010 5:18 pm

aki num funcionou n o_O
naur
naur
Soldado do CM
Soldado do CM

Mensagens : 26
Comédia Grana : 5107
Créditos : 1

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por Cocatrique Ter Dez 06, 2011 3:53 pm

neim akie ò.ó

Bye
Cocatrique
Cocatrique
General do CM
General do CM

Ams (coloque faces nas mensagens) 1SignNoob Noob do momento

Ams (coloque faces nas mensagens) Modmt
Mensagens : 676
Comédia Grana : 5531
Créditos : 60
Maker : RPG Maker VXA
Humor : Oi

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por Darkkyn Ter Dez 06, 2011 7:22 pm

Nem aqui manolo (uahsuahs faz tempo que num falo "Akie" O.o vou recomeçar...Talvez)




FLWS
Darkkyn
Darkkyn
General do CM
General do CM

Mensagens : 1553
Comédia Grana : 6983
Créditos : 135
Maker : RPG Maker XP

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por Diogo Pegasus Ter Dez 06, 2011 10:08 pm

Uai, como assim? aqui funfou de boa.
Diogo Pegasus
Diogo Pegasus
Marechal do CM
Marechal do CM

Ams (coloque faces nas mensagens) Admy
Mensagens : 1141
Comédia Grana : 7199
Créditos : 20
Humor : O Google é meu pastor e nada me faltará

https://comediamaker.forumeiro.com

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por Cocatrique Ter Dez 06, 2011 11:20 pm

aki num diogo

Bye
Cocatrique
Cocatrique
General do CM
General do CM

Ams (coloque faces nas mensagens) 1SignNoob Noob do momento

Ams (coloque faces nas mensagens) Modmt
Mensagens : 676
Comédia Grana : 5531
Créditos : 60
Maker : RPG Maker VXA
Humor : Oi

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por Darkkyn Qua Dez 07, 2011 11:42 am

É nem aqui! Vou testar dnv




FLWS
Darkkyn
Darkkyn
General do CM
General do CM

Mensagens : 1553
Comédia Grana : 6983
Créditos : 135
Maker : RPG Maker XP

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por Cocatrique Qui Dez 08, 2011 1:53 pm

Coca não gostar deste script,contem nele erros ò.ó

Bye

PS:Mim falar como Yoda daqui em diante jovem padawan
Cocatrique
Cocatrique
General do CM
General do CM

Ams (coloque faces nas mensagens) 1SignNoob Noob do momento

Ams (coloque faces nas mensagens) Modmt
Mensagens : 676
Comédia Grana : 5531
Créditos : 60
Maker : RPG Maker VXA
Humor : Oi

Ir para o topo Ir para baixo

Dispondo Re: Ams (coloque faces nas mensagens)

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos