Metroid Text Sound Script
#1
This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.


Very simple. No effort was required.

I took a message script created by RPG and ccoa (I think...) and added two lines and a metroid sound to go along with the text.

To try this out replace your Window_Message Script with this script:

Code:
#==================================
# Window_Message
#-------------------------------
#  The message window.
#==================================
class Window_Message < Window_Selectable
attr_accessor :autoclosetime
attr_accessor :op
#-------------------------------  
# Object Initialization
#-------------------------------  
def initialize
super(80+64, 336, 480, 128)#(80, 304, 480, 160)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = $fontsize
self.contents.font.name = $fontface
self.visible = false
self.z = 9998
@fade_in = false
@fade_out = false
@contents_showing = false
@cursor_width = 0
@autoclosetime = -1
@op = 255
@refreshflag = false
self.active = false
self.index = -1
@update_text = true
self.windowskin = nil
end
#-------------------------------
# Garbage Collection
#-------------------------------  
def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end
#-------------------------------  
# Message Termination Process
#-------------------------------  
def terminate_message
self.active = false
self.pause = false
self.index = -1
self.contents.clear
@contents_showing = false
if $game_temp.message_proc != nil
$game_temp.message_proc.call
end
$game_temp.message_text = nil
$game_temp.message_proc = nil
$game_temp.choice_start = 99
$game_temp.choice_max = 0
$game_temp.choice_cancel_type = 0
$game_temp.choice_proc = nil
$game_temp.num_input_start = 99
$game_temp.num_input_variable_id = 0
$game_temp.num_input_digits_max = 0
if @gold_window != nil
@gold_window.dispose
@gold_window = nil
end
# ***ccoa***
#if there was a face showing, make it invisible
if $message_showing != nil
  @message.dispose
@message = nil
end
if $face_showing != nil
@face.dispose
@face =nil
end
end
#-------------------------------  
# Refresh
#-------------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.font.name = "Arial"
self.contents.font.size = 18
self.windowskin = nil
@x = @y = 0
@cursor_width = 0
@autoclosetime = -1
@refreshflag = true
@lineheight = 32
@active = ""
@a = ""
@centerflag = false
@rightflag = false
@bannerflag = false
@update_text = true
@text_skip = false
# ***ccoa***
# face for the message box
@face = Sprite.new
@face.visible = true
@message = Sprite.new
@message.visible = true
if $game_temp.choice_start == 0
@x = 8
end
if $game_temp.message_text != nil
@text = $game_temp.message_text
begin
last_text = @text.clone
@text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
end until @text == last_text
@text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end
@text.gsub!(/\\\\/) { "\000" }
@text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
@text.gsub!(/\\[Gg]/) { "\002" }
@text.gsub!(/\\[Ii]\[([0-9]+)\]/) { "\003[#{$1}]" }
@text.gsub!(/\\[Ff]\[([0-9]+)\]/) { "\004[#{$1}]" }
@text.gsub!(/\\[Aa]\[([0-9]+)\]/) { "\005[#{$1}]" }
@text.gsub!(/\\[Xx]/) { "\006" }
@text.gsub!(/\\[Rr]/) { "\007" }
@text.gsub!(/\\[Dd]/) { "\011" }
@text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\023[#{$1}]" }
@text.gsub!(/\\[Bb]/) { "\017" }
@text.gsub!(/\\[Ww]\[([0-9]+)\]/) { "\014[#{$1}]" }
@text.gsub!(/\\[Mm]\[([0-9]+)\]/) { "\015[#{$1}]" }
@text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "\016[#{$1}]" }
@text.gsub!(/\\[Jj]\[([0-9]+)\]/) { "\013[#{$1}]" }
@text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "\021[#{$1}]" }
@text.gsub!(/\\[Kk]\[([0-9]+)\]/) { "\022[#{$1}]" }
end
def update_text
if @text != nil
          Audio.bgs_play("Audio/BGS/metroid", 100, 100)
  while ((c = @text.slice!(/./m)) != nil)
  if c == "\000"
    c = "\\"
  end
  if c == "\001"
    @text.sub!(/\[([0-9]+)\]/, "")
    color = $1.to_i
    if color >= 0 and color <= 7
      self.contents.font.color = text_color(color)
    end
    next
  end
  if c == "\002"
    if @gold_window == nil
      @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
    next
  end
    if c == "\003"
    @text.sub!(/\[([0-9]+)\]/, "")
    item_sub = $1.to_i
    c = $data_items[item_sub].name
    l = self.contents.text_size( c ).width
    draw_item_name($data_items[item_sub], @x, @y * 32 + 1)
    @x = @x + l + 24
    next
  end
   if c == "\004"
    @text.sub!(/\[([0-9]+)\]/, "")
    fontize = $1.to_i
    case fontize
      when 1
        self.contents.font.name = "Arial"
      when 2
        self.contents.font.name = "High Tower Text"
      when 3
        self.contents.font.name = "Tw Cen MT"
      when 4
        self.contents.font.name = "Tahoma"
    end
    next
  end
   if c == "\005"
    @text.sub!(/\[([0-9]+)\]/, "")
    @autoclosetime = $1.to_i
    next
  end
  if c == "\006"
    @centerflag = true
    next
  end
  if c == "\007"
    @rightflag = true
    next
  end
  if c == "\011"
    self.contents.font.name = "Arial"
    self.contents.font.size = 18
    self.contents.font.color = normal_color
    @lineheight = 32
    next
  end
  if c == "\014"
    @text.sub!(/\[([0-9]+)\]/, "")
    w_sub = $1.to_i
    c = $data_weapons[w_sub].name
    l = self.contents.text_size( c ).width
    bitmap = RPG::Cache.icon($data_weapons[w_sub].icon_name)
    self.contents.blt(@x+4, @y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
    @x += 28
    self.contents.draw_text(@x+4, 32 * @y, l+32, @lineheight, c)
    @x = @x + l
    next
  end
    if c == "\015"
    @text.sub!(/\[([0-9]+)\]/, "")
    a_sub = $1.to_i
    c = $data_armors[a_sub].name
    l = self.contents.text_size( c ).width
    bitmap = RPG::Cache.icon($data_armors[a_sub].icon_name)
    self.contents.blt(@x+4, @y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
    @x += 28
    self.contents.draw_text(@x+4, 32 * @y, l+32, @lineheight, c)
    @x = @x + l
    next
  end
    if c == "\016"
    @text.sub!(/\[([0-9]+)\]/, "")
    @op = $1.to_i
    next
  end
   if c == "\017"
    @bannerflag = true
    next
  end
  if c == "\018"
    @text.sub!(/\[([0-9]+)\]/, "")
    jump = $1.to_i
    @x += jump
    next
  end
    if c == "\021"
    @text.sub!(/\[([0-9]+)\]/, "")
    @lineheight = $1.to_i
    next
  end
  if c == "\022"
    @text.sub!(/\[([0-9]+)\]/, "")
    skill_sub = $1.to_i
    c = $data_skills[skill_sub].name
    l = self.contents.text_size( c ).width
    bitmap = RPG::Cache.icon($data_skills[skill_sub].icon_name)  
    self.contents.blt(@x+4, @y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
    @x += 28
    self.contents.draw_text(@x+4, 32 * @y, l+32, @lineheight, c)
    @x = @x + l
    next
  end
   if c == "\023"
    @text.sub!(/\[([0-9]+)\]/, "")
    bigness = $1.to_i
    self.contents.font.size = bigness
    next
  end
  if c == "\n"
    if @centerflag == true
      @x = 448 - @x
      @x = @x / 2
      self.contents.draw_text(@x, 32 * @y, 448-@x, @lineheight, @a)
    end
    if @rightflag == true
      @x = 448 - @x
      self.contents.draw_text(@x, 32 * @y, 448-@x, @lineheight, @a)
    end
    if @bannerflag == true
      @x = 448 - @x
      @x = @x / 2
      self.contents.draw_text(@x, 44, 448-@x, @lineheight, @a)
    end
    @a = ""
    @centerflag = false
    @rightflag = false
    @bannerflag = false
    if @y >= $game_temp.choice_start
      @cursor_width = [@cursor_width, @x].max
    end
    @y += 1
    @x = 0
    if @y >= $game_temp.choice_start
      @x = 8
    end
    next
  end
# ***ccoa***
#display face?
  if $message_showing != nil
   #draw the face, then add the text to one side of it
    @message.bitmap= RPG::Cache.picture($message_showing)
    @message.x = 18
    @message.y = 340
   @message.z = 9998
   @message.visible = true
else
    @message.bitmap= nil
    @message.x = 18
    @message.y = 340
   @message.z = 9998
   @message.visible = false
end
   #draw the face, then add the text to one side of it
   if $face_showing != nil
   @face.bitmap = RPG::Cache.picture($face_showing)
   @face.x = 20
   @face.y = 344
   @face.z = 9999
   @face.opacity = 255
   @face.visible = true
   if @centerflag == false && @rightflag == false && @bannerflag == false
     self.contents.draw_text(4 + @x, 32 * @y, 40, @lineheight, c)
     @x += self.contents.text_size( c ).width
   else
     @a += c
     @x += self.contents.text_size( c ).width
   end
   if !@text_skip
   #$game_system.se_play($data_system.decision_se)
   return
   end
else
   @face.bitmap = nil
   @face.x = 20
   @face.y = 344
   @face.z = 9999
   @face.visible = false
    # just put in the text
    if @centerflag == false && @rightflag == false && @bannerflag == false
      self.contents.draw_text(4 + @x, 32 * @y, 40, @lineheight, c)
      @x += self.contents.text_size( c ).width
    else
      @a += c
      @x += self.contents.text_size( c ).width
    end
    if !@text_skip
    return
    end
  end
end
end
self.opacity = 0
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
@update_text = false
end
end
#-------------------------------  
# Reset the window in response to changes in the position or
# transparency
#-------------------------------  
def reset_window
if $game_temp.in_battle
self.y = 16
else
case $game_system.message_position      
when 0  # ?
    self.y = 16
  when 1  # ?
    self.y = 160
  when 2  # ?#?????? ????
    self.y = 336    
    end
    end
if $game_system.message_frame == 0
self.opacity = 255
else
self.opacity = 0
end
self.back_opacity = 160
end
#-------------------------------  
# Frame Update
#-------------------------------  
def update
super
if @refreshflag && @fade_in == false
self.contents_opacity = @op
end
if @autoclosetime == 0
@autoclosetime = -1
terminate_message
end
if @autoclosetime >= 1
@autoclosetime -= 1
end
if @fade_in
self.contents_opacity += 24
if @input_number_window != nil
  @input_number_window.contents_opacity += 24
end
if self.contents_opacity >= @op
  @fade_in = false
end
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
        Audio.bgs_stop
  self.pause = true
end
if @update_text
  if Input.trigger?(Input::C)
    @text_skip = true
  end
  update_text
  return
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_can  cel_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
  @op = 255
  terminate_message
end
return
end
if @fade_out == false and $game_temp.message_text != nil
@contents_showing = true
$game_temp.message_window_showing = true
reset_window
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
#-------------------------------  
# Updates the cursor rectangle.
#-------------------------------
def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
# ***ccoa***
# make sure the cursor appears in the correct spot for choice messages
if $message_showing != nil
  self.cursor_rect.set(8, n * 32, @cursor_width, 32)
  self.windowskin= RPG::Cache.windowskin("001-Blue01")
end
else
self.cursor_rect.empty
end
end
end



Next put this sound in your BGS folder.

http://www.invisionplus.net/forums/index.p...pe=post&id=2261

That's it.

~Constance
}


Possibly Related Threads…
Thread Author Replies Views Last Post
  Change character script jaigai 0 3,187 11-19-2006, 01:00 PM
Last Post: jaigai
  Just a modification of Abyssos' facs script lumina... 0 2,958 11-01-2006, 01:00 PM
Last Post: lumina...
  Credit Script 1.1 acoole 0 2,838 10-24-2006, 01:00 PM
Last Post: acoole
  Script Dev Kit Nick 0 3,227 10-15-2006, 01:00 PM
Last Post: Nick
  Text over allies with AMS (SBABS v3 required) shado 0 2,660 08-23-2006, 01:00 PM
Last Post: shado
  Opening Image script sasuke89 0 2,360 07-24-2006, 01:00 PM
Last Post: sasuke89
  Change Color of The diferent Status Script MASTERLOKI 0 2,631 07-18-2006, 01:00 PM
Last Post: MASTERLOKI
  Event Name and ID Search Script Hadriel 0 2,417 06-21-2006, 01:00 PM
Last Post: Hadriel
  Currency Script Split 0 2,658 05-18-2006, 01:00 PM
Last Post: Split
  Book Script and Utility Bruth 0 2,606 05-07-2006, 01:00 PM
Last Post: Bruth



Users browsing this thread: 1 Guest(s)