RMRK is retiring.
Server is paid up for the rest of 2026, but the forum may go after that. See here for more information. Please archive or save anything you would like to keep before 2027.
Main Menu
  • Welcome to The RPG Maker Resource Kit.

Metroid Text Sound Script

Started by Constance, January 03, 2006, 10:25:51 PM

0 Members and 1 Guest are viewing this topic.

Constance

The original script was made by Kaitos.

I've edited some things to make a sound go with the text.

Kinda lame but who cares right?

Try it.

First put this sound in your BGS folder (background sound).

http://www.invisionplus.net/forums/index.php?mforum=rmxp&act=Attach&type=post&id=2670

Next create a new script and paste this junk in there.

Enjoy.

~Constance

#==================================
# 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
Would you like to support a new rmxp community? If so then you should join:


SiR_VaIlHoR

impressive but very difficult...to understand
I'm the Alpha and the Omega, the First and the Last, the Beginning and the End.

http://qualquek.miniville.fr/
http://www.dailymotion.com/bookmarks/ojah/video/x27l78_jake-simpson-stevie-wonder-isnt-she_music

My padawan (Tsunokiette) and me :p
http://www.team-aaa.com/root/profile.php?enter_id=614556
http://www.esl.eu/fr/player/2609080/
I'm French so forgive my bad english!

Constance

lol what do you mean?

The syntax of the script?
Would you like to support a new rmxp community? If so then you should join: