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: