The Guardian 21 Posted May 30, 2014 Hey all, I've been looking and looking and come to find out there are only 2 usable instrument scripts for vxa. Both of them would work and look great for an upcoming project im working on, however: Meph's Instrument Script http://www.rpgmakervxace.net/topic/1453-rgss3-mephs-ocarina/ & Mistribe's Ocarina Edit of Meph's Instrument Script http://www.rpgmakervxace.net/topic/12768-ocarina-of-time-script/?hl=mephistox Meph's does not a working download link Mistribes does have one, however, no matter what I do my computer will not extract the file from the archive correctly. At first I thought it may be my computer, so after downloading a couple more scripts to test it out, it didnt seem to be the issue. My question is does anyone happen to have the script on hand, and could you possibly send it to me as it is a bit pivotal to my non combat game. Thanks! Share this post Link to post Share on other sites
Britannia Angel 8 Posted May 31, 2014 I have Misttribe's demo on hand so here you go! Instrument Script: #============================================================================== # ** Meph's Playable Instrument (A.K.A Ocarina Script) #------------------------------------------------------------------------------ # MephistoX (Meph's Labs) # Version 1.5 # 27/02/2012 # RPGMaker VXAce #------------------------------------------------------------------------------ # * Version History : # # Version 1 ---------------------------------------------------- (26/02/2012) # - First Released Version # Version 1.1 -------------------------------------------------(26/02/2012) # - Added Common Event Trigger (Thanks Patrick, you're clever) # Version 1.2 -------------------------------------------------(26/02/2012) # - Simplified System, removed switch and teleport. # Version 1.5 -------------------------------------------------(27/02/2012) # - Added Tetragram Style and Song List, little fix on Tetratram Y.pos #------------------------------------------------------------------------------ # * Description : # # As no need for a big introduction this instrument system allows you to # create an instrument and play it, like the ocarina system in the Zelda's # Ocarina of Time or whatever that includes an ocarina. # # When you play a correct song, a common event will be activated. #------------------------------------------------------------------------------ # * Instructions : # # Place The Script in the Materiales Section of your Script List #------------------------------------------------------------------------------ # * Syntax : # # Refer to the module to see how to configure every aspect of the system. # also use: # # - $game_party.get_song(song_id) => Learn a song and you can activate it. # # This code allow you to learn a song, otherwise even if you play the correct # notes nothing will happen. #------------------------------------------------------------------------------ # * Notes : # # - Any other Thing, see the demo to see how to configure. #============================================================================== #============================================================================== # ** Game_Instrument #============================================================================== module Game_Instrument #-------------------------------------------------------------------------- # * KeyNotes : The Input button and the assigned note # - Keynotes = {Button => Note, ...} both as symbols #-------------------------------------------------------------------------- KeyNotes = {:UP => :A, :DOWN => :B, :LEFT => :C, :RIGHT => , :X => :E} #-------------------------------------------------------------------------- # * Notes : Parameters for the different playable Notes # Notes = {NoteSymbol => [SE, Icon, index]} # - Note Symbol => The Note Symbol defined at KeyNotes # - SE => Special Effect when playing a note # - Icon => Icon of the note to be shown at Tetragram # - Index => Index of the Note in the Tetragram (wich line to put it) #-------------------------------------------------------------------------- Notes = {:A => ['Ocarina-Key-Up', 529, 0], :B => ['Ocarina-Key-Down', 531, 3], :C => ['Ocarina-Key-Left', 532, 1], => ['Ocarina-Key-Right', 530, 2], :E => ['Ocarina-Key-A', 528, 3] } #-------------------------------------------------------------------------- # * Songs : The Playable Songs and their configuration # Songs = {id => {:name => '', :notes => [], :common_event => id} # - id => ID of the Song (don't repeat) # - name => Name of The song # - icon => Icon of the song (for Songlist) # - notes => List of Notes that create the Song # - common_event => Activate a common event #-------------------------------------------------------------------------- Songs = {} Songs[:saraissong] = {:name => 'Sairias Song', :icon => 344, :notes => [:B, , :C, :B, , :C], :common_event => 5} Songs[:zeldaslullaby] = {:name => 'Zeldas Lullaby', :icon => 344, :notes => [:C, :A, , :C, :A, ], :common_event => 6} Songs[:sunssong] = {:name => 'Suns Song', :icon => 248, :notes => [, :B, :A, , :B, :A], :common_event => 7} Songs[:songofstorms] = {:name => 'Song of Storms', :icon => 328, :notes => [:E, :B, :A, :E, :B, :A], :common_event => 8} Songs[:songoftime] = {:name => 'Song of Time', :icon => 328, :notes => [, :E, :B, , :E, :B], :common_event => 9} Songs[:eponassong] = {:name => 'Eponas Song', :icon => 328, :notes => [:A, :C, , :A, :C, ], :common_event => 10} Songs[:minuetofforest] = {:name => 'Minuet of Forest', :icon => 344, :notes => [:E, :A, :C, , :C, ], :common_event => 11} Songs[:bolerooffire] = {:name => 'Bolero of Fire', :icon => 344, :notes => [:B, :E, :B, :E, , :B, , :B], :common_event => 12} Songs[:serenadeofwater] = {:name => 'Serenade of Water', :icon => 248, :notes => [:E, :B, , , :C], :common_event => 13} Songs[:nocturneofshadow] = {:name => 'Nocturne of Shadow', :icon => 328, :notes => [:C, , , :E, :C, , :B], :common_event => 14} Songs[:requiemofspirit] = {:name => 'Requiem of Spirit', :icon => 328, :notes => [:E, :B, :E, , :B, :E], :common_event => 15} Songs[:songofhealing] = {:name => 'Song of Healing', :icon => 328, :notes => [:C, , :B, :C, , :B], :common_event => 16} #-------------------------------------------------------------------------- # * MaxNotes : The Number of Max Notes in the Tetragram # - Consider 10 as the Maximum, according to the width of the tetragram #-------------------------------------------------------------------------- MaxNotes = 8 #-------------------------------------------------------------------------- # * WaitNote : The frames to wait before play another note #-------------------------------------------------------------------------- WaitNote = 15 #-------------------------------------------------------------------------- # * Success SE : SE that will play when play a correct song #-------------------------------------------------------------------------- SuccessSE = 'Ocarina-SongisCorrect' #-------------------------------------------------------------------------- # * WindowStyle : Style of the Tetragram # 0 => Classic Style | 1 => Window Style #-------------------------------------------------------------------------- WindowStyle = 0 end #============================================================================== # ** Game_Party #============================================================================== class Game_Party #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :songs #-------------------------------------------------------------------------- # * Alias Listing #-------------------------------------------------------------------------- alias_method :meph_gplayinstrum_gparty_inaltems, :init_all_items #-------------------------------------------------------------------------- # * Initialize all Items #-------------------------------------------------------------------------- def init_all_items # The Usual meph_gplayinstrum_gparty_inaltems # Song List @songs = [] end #-------------------------------------------------------------------------- # * Get Song : Get a Song #-------------------------------------------------------------------------- def get_song(song_id) # Return if Song Doesn't Exist return unless Game_Instrument::Songs.keys.include?(song_id) # Return if song already known return if @songs.include?(song_id) # Push Song into the list @songs << song_id end #-------------------------------------------------------------------------- # * has_song? : Check if Party has song #-------------------------------------------------------------------------- def has_song?(song_id) @songs.include?(song_id) end end #============================================================================== # ** Window_Tetragram #============================================================================== class Window_Tetragram < Window_Base #-------------------------------------------------------------------------- # * Window Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 400, 100) # Create Note List @notes = [] # Refresh refresh end #-------------------------------------------------------------------------- # * Set Standard Padding #-------------------------------------------------------------------------- def standard_padding 0 # 0 to match in case of dim background end #-------------------------------------------------------------------------- # * Create Window BackGround #-------------------------------------------------------------------------- def create_back_bitmap color = Color.new(0, 0, 0) color.alpha = 160 contents.fill_rect(0, 0, width + 10, height + 10, color) end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh contents.clear # If WindowStyle is 0 if Game_Instrument::WindowStyle == 0 # Draw BackGround create_back_bitmap # Set Opacity self.opacity = 0 end # Draw Tetragram 4.times do |i| contents.fill_rect(12, 20 + (i * 20), 376, 2, text_color(10)) end # Draw Musical Key (Occidental Key of Sol) keybitmap = Cache.system('MusicKey') contents.blt(25, 8, keybitmap, keybitmap.rect) # Draw Played Notes draw_played_notes end #-------------------------------------------------------------------------- # * Draw Played Notes : Draw the Played Notes in the Tetragram #-------------------------------------------------------------------------- def draw_played_notes # Pass Through each note by index @notes.each_index do |i| # Draw Icon at position in the Tetragram draw_icon(@notes[i][0], (i * 26) + 80, (@notes[i][1] * 20) + 9) end end #-------------------------------------------------------------------------- # * Add Note : Add Note to Note List #-------------------------------------------------------------------------- def add_note(note) # Add Note to Note List @notes << note # Refresh refresh end #-------------------------------------------------------------------------- # * Add Note : Add Note to Note List #-------------------------------------------------------------------------- def clear_notes # Clear Note List @notes.clear # Refresh refresh end end #============================================================================== # ** Scene_Instruments #============================================================================== class Scene_Instrument < Scene_MenuBase #-------------------------------------------------------------------------- # * Mixin Game_Instrument #-------------------------------------------------------------------------- include Game_Instrument #-------------------------------------------------------------------------- # * Start #-------------------------------------------------------------------------- def start # Create Played Notes Handler @played_notes = [] # Created Played song handler @played_song = nil # Set BGM to last BattleManager.save_bgm_and_bgs # FadeOut Music fadeout_all(0) # SuperClass Method super # Create Tetragram create_tetragram end #-------------------------------------------------------------------------- # * Create BackGround #-------------------------------------------------------------------------- def create_background @background_sprite = Sprite.new @background_sprite.bitmap = SceneManager.background_bitmap end #-------------------------------------------------------------------------- # * Create Tetragram : Create the Tetragram #-------------------------------------------------------------------------- def create_tetragram @tetragram = Window_Tetragram.new # Center at X @tetragram.x = (Graphics.width - @tetragram.width) / 2 # Position at Bottom @tetragram.y = (Graphics.height - @tetragram.height) - 20 end #-------------------------------------------------------------------------- # * Main Update #-------------------------------------------------------------------------- def update super # Check Played Note check_played_note # Update Classic Input update_classic_input end #-------------------------------------------------------------------------- # * Update Classic Input #-------------------------------------------------------------------------- def update_classic_input if Input.trigger?(: # Play Cancel Se Sound.play_cancel # Replay BGMs BattleManager.replay_bgm_and_bgs # Return to Scene SceneManager.return end # Clear notes if input C if Input.trigger?(:C) && @played_notes.size > 0 # Play Clear SE Audio.se_play('Audio/SE/Cancel1', 80) # Clear Notes return clear_notes end end #-------------------------------------------------------------------------- # * Check Played Note : Check if a Note was Played (by input) #-------------------------------------------------------------------------- def check_played_note # Pass Through each Keynote Input Key KeyNotes.keys.each do |knote| # If Inputted trigger is a Note if Input.trigger?(knote) # Go to Play Note return play_note(knote) end end end #-------------------------------------------------------------------------- # * Play Note : Play a note #-------------------------------------------------------------------------- def play_note(note) # Clear Notes if Currently played notes is more than MaxNotes if @played_notes.size > MaxNotes # Play Buzzer Sound.play_buzzer # Clear Notes return clear_notes end # Get Parameters pars = Notes[KeyNotes[note]] # Play Note SE Audio.se_play('Audio/SE/' + pars[0], 80) # Add Note to the Tetragram @tetragram.add_note([pars[1], pars[2]]) # Add Played note to Played Notes List @played_notes << KeyNotes[note] # Wait for Next Note Graphics.wait(WaitNote) # Check if notes form a song check_song unless @played_notes.size < 4 end #-------------------------------------------------------------------------- # * Check Song : Check if Notes Form a Defined Song #-------------------------------------------------------------------------- def check_song # Pass Through Each Song Songs.each do |song| # If Song Notes match with played notes if song[1][:notes] == @played_notes && $game_party.has_song?(song[0]) # Set played Song as song id @played_song = song[0] # Go to Play Song return success_song end end end #-------------------------------------------------------------------------- # * Terminate Playing #-------------------------------------------------------------------------- def success_song # Play Success SE Audio.se_play('Audio/SE/' + SuccessSE, 80) # Wait Graphics.wait(50) # Return to Scene SceneManager.return # Replay BGMs BattleManager.replay_bgm_and_bgs # Do Common Event $game_temp.reserve_common_event(Songs[@played_song][:common_event]) end #-------------------------------------------------------------------------- # * Clear Notes : Clear Played Notes #-------------------------------------------------------------------------- def clear_notes # Clear Tetragram (Window) Notes @tetragram.clear_notes # Clear Main Variable (Played Notes for Scene) @played_notes.clear end end and Song List script: #============================================================================== # ** Meph's SongList : To be Used with Meph's Game Instruments #------------------------------------------------------------------------------ # MephistoX (Meph's Labs) # Version 1.5 # 27/02/2012 # RPGMaker VXAce #------------------------------------------------------------------------------ # * Description : # # This Little Plugin adds a simple Song list that shows you the notes that # compose the differents songs of the main system. #============================================================================== #============================================================================== # ** Window_SongInfo #============================================================================== class Window_SongInfo < Window_Base #-------------------------------------------------------------------------- # * Mixin Game_Instrument #-------------------------------------------------------------------------- include Game_Instrument #-------------------------------------------------------------------------- # * Window Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 336, 48) # Refresh refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh contents.clear end #-------------------------------------------------------------------------- # * Update Song : Update Shown Song Info #-------------------------------------------------------------------------- def update_song(song) # refresh refresh # Draw Nil if Song is Nil return draw_nil if song.nil? # Get Notes notes = Songs[song][:notes] # Get Center Position center_x = ((notes.size * 30) - (contents_width)) / 2 # Pass Through each index of notes notes.each_index do |i| # Draw Note Icon draw_icon(Notes[notes[i]][1], (i * 30) - center_x, 0) end end #-------------------------------------------------------------------------- # * Draw Nil : Draw a Text to Show there are not songs selected or at all #-------------------------------------------------------------------------- def draw_nil # Draw Text indicating there are no Songs draw_text(0, 0, contents_width, line_height, 'No Songs!', 1) end end #============================================================================== # ** Window_SongList #============================================================================== class Window_SongList < Window_Selectable #-------------------------------------------------------------------------- # * Mixin Game_Instrument #-------------------------------------------------------------------------- include Game_Instrument #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize super(0, 0, 336, 96) refresh select(0) activate end #-------------------------------------------------------------------------- # * Item Max #-------------------------------------------------------------------------- def item_max $game_party.songs.size end #-------------------------------------------------------------------------- # * Song #-------------------------------------------------------------------------- def song $game_party.songs[index] end #-------------------------------------------------------------------------- # * Draw Item #-------------------------------------------------------------------------- def draw_item(index) # Get Song song = Songs[$game_party.songs[index]] # Get Rect rect = item_rect(index) rect.width -= 4 # Draw Default Partiture Icon draw_icon(song[:icon], rect.x, rect.y) # Draw Song Name draw_text_ex(rect.x + 26, rect.y, song[:name]) end #-------------------------------------------------------------------------- # * Update Help #-------------------------------------------------------------------------- def update_help # Update Song Info @help_window.update_song(song) end end #============================================================================== # ** Scene_SongList #============================================================================== class Scene_SongList < Scene_MenuBase #-------------------------------------------------------------------------- # * Start #-------------------------------------------------------------------------- def start super # Create Song Info create_songinfo_window # Create Song List create_song_list end #-------------------------------------------------------------------------- # * Create Song Info Window #-------------------------------------------------------------------------- def create_songinfo_window @song_info_window = Window_SongInfo.new @song_info_window.x = (Graphics.width - @song_info_window.width) / 2 @song_info_window.y = (Graphics.height - 144) / 2 end #-------------------------------------------------------------------------- # * Create Song List #-------------------------------------------------------------------------- def create_song_list @song_list_window = Window_SongList.new @song_list_window.x = @song_info_window.x @song_list_window.y = @song_info_window.y + @song_info_window.height @song_list_window.set_handler(:cancel, method(:return_scene)) @song_list_window.help_window = @song_info_window end end Share this post Link to post Share on other sites
The Guardian 21 Posted May 31, 2014 I have Misttribe's demo on hand so here you go! Instrument Script: #============================================================================== # ** Meph's Playable Instrument (A.K.A Ocarina Script) #------------------------------------------------------------------------------ # MephistoX (Meph's Labs) # Version 1.5 # 27/02/2012 # RPGMaker VXAce #------------------------------------------------------------------------------ # * Version History : # # Version 1 ---------------------------------------------------- (26/02/2012) # - First Released Version # Version 1.1 -------------------------------------------------(26/02/2012) # - Added Common Event Trigger (Thanks Patrick, you're clever) # Version 1.2 -------------------------------------------------(26/02/2012) # - Simplified System, removed switch and teleport. # Version 1.5 -------------------------------------------------(27/02/2012) # - Added Tetragram Style and Song List, little fix on Tetratram Y.pos #------------------------------------------------------------------------------ # * Description : # # As no need for a big introduction this instrument system allows you to # create an instrument and play it, like the ocarina system in the Zelda's # Ocarina of Time or whatever that includes an ocarina. # # When you play a correct song, a common event will be activated. #------------------------------------------------------------------------------ # * Instructions : # # Place The Script in the Materiales Section of your Script List #------------------------------------------------------------------------------ # * Syntax : # # Refer to the module to see how to configure every aspect of the system. # also use: # # - $game_party.get_song(song_id) => Learn a song and you can activate it. # # This code allow you to learn a song, otherwise even if you play the correct # notes nothing will happen. #------------------------------------------------------------------------------ # * Notes : # # - Any other Thing, see the demo to see how to configure. #============================================================================== #============================================================================== # ** Game_Instrument #============================================================================== module Game_Instrument #-------------------------------------------------------------------------- # * KeyNotes : The Input button and the assigned note # - Keynotes = {Button => Note, ...} both as symbols #-------------------------------------------------------------------------- KeyNotes = {:UP => :A, :DOWN => :B, :LEFT => :C, :RIGHT => , :X => :E} #-------------------------------------------------------------------------- # * Notes : Parameters for the different playable Notes # Notes = {NoteSymbol => [SE, Icon, index]} # - Note Symbol => The Note Symbol defined at KeyNotes # - SE => Special Effect when playing a note # - Icon => Icon of the note to be shown at Tetragram # - Index => Index of the Note in the Tetragram (wich line to put it) #-------------------------------------------------------------------------- Notes = {:A => ['Ocarina-Key-Up', 529, 0], :B => ['Ocarina-Key-Down', 531, 3], :C => ['Ocarina-Key-Left', 532, 1], => ['Ocarina-Key-Right', 530, 2], :E => ['Ocarina-Key-A', 528, 3] } #-------------------------------------------------------------------------- # * Songs : The Playable Songs and their configuration # Songs = {id => {:name => '', :notes => [], :common_event => id} # - id => ID of the Song (don't repeat) # - name => Name of The song # - icon => Icon of the song (for Songlist) # - notes => List of Notes that create the Song # - common_event => Activate a common event #-------------------------------------------------------------------------- Songs = {} Songs[:saraissong] = {:name => 'Sairias Song', :icon => 344, :notes => [:B, , :C, :B, , :C], :common_event => 5} Songs[:zeldaslullaby] = {:name => 'Zeldas Lullaby', :icon => 344, :notes => [:C, :A, , :C, :A, ], :common_event => 6} Songs[:sunssong] = {:name => 'Suns Song', :icon => 248, :notes => [, :B, :A, , :B, :A], :common_event => 7} Songs[:songofstorms] = {:name => 'Song of Storms', :icon => 328, :notes => [:E, :B, :A, :E, :B, :A], :common_event => 8} Songs[:songoftime] = {:name => 'Song of Time', :icon => 328, :notes => [, :E, :B, , :E, :B], :common_event => 9} Songs[:eponassong] = {:name => 'Eponas Song', :icon => 328, :notes => [:A, :C, , :A, :C, ], :common_event => 10} Songs[:minuetofforest] = {:name => 'Minuet of Forest', :icon => 344, :notes => [:E, :A, :C, , :C, ], :common_event => 11} Songs[:bolerooffire] = {:name => 'Bolero of Fire', :icon => 344, :notes => [:B, :E, :B, :E, , :B, , :B], :common_event => 12} Songs[:serenadeofwater] = {:name => 'Serenade of Water', :icon => 248, :notes => [:E, :B, , , :C], :common_event => 13} Songs[:nocturneofshadow] = {:name => 'Nocturne of Shadow', :icon => 328, :notes => [:C, , , :E, :C, , :B], :common_event => 14} Songs[:requiemofspirit] = {:name => 'Requiem of Spirit', :icon => 328, :notes => [:E, :B, :E, , :B, :E], :common_event => 15} Songs[:songofhealing] = {:name => 'Song of Healing', :icon => 328, :notes => [:C, , :B, :C, , :B], :common_event => 16} #-------------------------------------------------------------------------- # * MaxNotes : The Number of Max Notes in the Tetragram # - Consider 10 as the Maximum, according to the width of the tetragram #-------------------------------------------------------------------------- MaxNotes = 8 #-------------------------------------------------------------------------- # * WaitNote : The frames to wait before play another note #-------------------------------------------------------------------------- WaitNote = 15 #-------------------------------------------------------------------------- # * Success SE : SE that will play when play a correct song #-------------------------------------------------------------------------- SuccessSE = 'Ocarina-SongisCorrect' #-------------------------------------------------------------------------- # * WindowStyle : Style of the Tetragram # 0 => Classic Style | 1 => Window Style #-------------------------------------------------------------------------- WindowStyle = 0 end #============================================================================== # ** Game_Party #============================================================================== class Game_Party #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :songs #-------------------------------------------------------------------------- # * Alias Listing #-------------------------------------------------------------------------- alias_method :meph_gplayinstrum_gparty_inaltems, :init_all_items #-------------------------------------------------------------------------- # * Initialize all Items #-------------------------------------------------------------------------- def init_all_items # The Usual meph_gplayinstrum_gparty_inaltems # Song List @songs = [] end #-------------------------------------------------------------------------- # * Get Song : Get a Song #-------------------------------------------------------------------------- def get_song(song_id) # Return if Song Doesn't Exist return unless Game_Instrument::Songs.keys.include?(song_id) # Return if song already known return if @songs.include?(song_id) # Push Song into the list @songs << song_id end #-------------------------------------------------------------------------- # * has_song? : Check if Party has song #-------------------------------------------------------------------------- def has_song?(song_id) @songs.include?(song_id) end end #============================================================================== # ** Window_Tetragram #============================================================================== class Window_Tetragram < Window_Base #-------------------------------------------------------------------------- # * Window Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 400, 100) # Create Note List @notes = [] # Refresh refresh end #-------------------------------------------------------------------------- # * Set Standard Padding #-------------------------------------------------------------------------- def standard_padding 0 # 0 to match in case of dim background end #-------------------------------------------------------------------------- # * Create Window BackGround #-------------------------------------------------------------------------- def create_back_bitmap color = Color.new(0, 0, 0) color.alpha = 160 contents.fill_rect(0, 0, width + 10, height + 10, color) end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh contents.clear # If WindowStyle is 0 if Game_Instrument::WindowStyle == 0 # Draw BackGround create_back_bitmap # Set Opacity self.opacity = 0 end # Draw Tetragram 4.times do |i| contents.fill_rect(12, 20 + (i * 20), 376, 2, text_color(10)) end # Draw Musical Key (Occidental Key of Sol) keybitmap = Cache.system('MusicKey') contents.blt(25, 8, keybitmap, keybitmap.rect) # Draw Played Notes draw_played_notes end #-------------------------------------------------------------------------- # * Draw Played Notes : Draw the Played Notes in the Tetragram #-------------------------------------------------------------------------- def draw_played_notes # Pass Through each note by index @notes.each_index do |i| # Draw Icon at position in the Tetragram draw_icon(@notes[i][0], (i * 26) + 80, (@notes[i][1] * 20) + 9) end end #-------------------------------------------------------------------------- # * Add Note : Add Note to Note List #-------------------------------------------------------------------------- def add_note(note) # Add Note to Note List @notes << note # Refresh refresh end #-------------------------------------------------------------------------- # * Add Note : Add Note to Note List #-------------------------------------------------------------------------- def clear_notes # Clear Note List @notes.clear # Refresh refresh end end #============================================================================== # ** Scene_Instruments #============================================================================== class Scene_Instrument < Scene_MenuBase #-------------------------------------------------------------------------- # * Mixin Game_Instrument #-------------------------------------------------------------------------- include Game_Instrument #-------------------------------------------------------------------------- # * Start #-------------------------------------------------------------------------- def start # Create Played Notes Handler @played_notes = [] # Created Played song handler @played_song = nil # Set BGM to last BattleManager.save_bgm_and_bgs # FadeOut Music fadeout_all(0) # SuperClass Method super # Create Tetragram create_tetragram end #-------------------------------------------------------------------------- # * Create BackGround #-------------------------------------------------------------------------- def create_background @background_sprite = Sprite.new @background_sprite.bitmap = SceneManager.background_bitmap end #-------------------------------------------------------------------------- # * Create Tetragram : Create the Tetragram #-------------------------------------------------------------------------- def create_tetragram @tetragram = Window_Tetragram.new # Center at X @tetragram.x = (Graphics.width - @tetragram.width) / 2 # Position at Bottom @tetragram.y = (Graphics.height - @tetragram.height) - 20 end #-------------------------------------------------------------------------- # * Main Update #-------------------------------------------------------------------------- def update super # Check Played Note check_played_note # Update Classic Input update_classic_input end #-------------------------------------------------------------------------- # * Update Classic Input #-------------------------------------------------------------------------- def update_classic_input if Input.trigger?(: # Play Cancel Se Sound.play_cancel # Replay BGMs BattleManager.replay_bgm_and_bgs # Return to Scene SceneManager.return end # Clear notes if input C if Input.trigger?(:C) && @played_notes.size > 0 # Play Clear SE Audio.se_play('Audio/SE/Cancel1', 80) # Clear Notes return clear_notes end end #-------------------------------------------------------------------------- # * Check Played Note : Check if a Note was Played (by input) #-------------------------------------------------------------------------- def check_played_note # Pass Through each Keynote Input Key KeyNotes.keys.each do |knote| # If Inputted trigger is a Note if Input.trigger?(knote) # Go to Play Note return play_note(knote) end end end #-------------------------------------------------------------------------- # * Play Note : Play a note #-------------------------------------------------------------------------- def play_note(note) # Clear Notes if Currently played notes is more than MaxNotes if @played_notes.size > MaxNotes # Play Buzzer Sound.play_buzzer # Clear Notes return clear_notes end # Get Parameters pars = Notes[KeyNotes[note]] # Play Note SE Audio.se_play('Audio/SE/' + pars[0], 80) # Add Note to the Tetragram @tetragram.add_note([pars[1], pars[2]]) # Add Played note to Played Notes List @played_notes << KeyNotes[note] # Wait for Next Note Graphics.wait(WaitNote) # Check if notes form a song check_song unless @played_notes.size < 4 end #-------------------------------------------------------------------------- # * Check Song : Check if Notes Form a Defined Song #-------------------------------------------------------------------------- def check_song # Pass Through Each Song Songs.each do |song| # If Song Notes match with played notes if song[1][:notes] == @played_notes && $game_party.has_song?(song[0]) # Set played Song as song id @played_song = song[0] # Go to Play Song return success_song end end end #-------------------------------------------------------------------------- # * Terminate Playing #-------------------------------------------------------------------------- def success_song # Play Success SE Audio.se_play('Audio/SE/' + SuccessSE, 80) # Wait Graphics.wait(50) # Return to Scene SceneManager.return # Replay BGMs BattleManager.replay_bgm_and_bgs # Do Common Event $game_temp.reserve_common_event(Songs[@played_song][:common_event]) end #-------------------------------------------------------------------------- # * Clear Notes : Clear Played Notes #-------------------------------------------------------------------------- def clear_notes # Clear Tetragram (Window) Notes @tetragram.clear_notes # Clear Main Variable (Played Notes for Scene) @played_notes.clear end end and Song List script: #============================================================================== # ** Meph's SongList : To be Used with Meph's Game Instruments #------------------------------------------------------------------------------ # MephistoX (Meph's Labs) # Version 1.5 # 27/02/2012 # RPGMaker VXAce #------------------------------------------------------------------------------ # * Description : # # This Little Plugin adds a simple Song list that shows you the notes that # compose the differents songs of the main system. #============================================================================== #============================================================================== # ** Window_SongInfo #============================================================================== class Window_SongInfo < Window_Base #-------------------------------------------------------------------------- # * Mixin Game_Instrument #-------------------------------------------------------------------------- include Game_Instrument #-------------------------------------------------------------------------- # * Window Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 336, 48) # Refresh refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh contents.clear end #-------------------------------------------------------------------------- # * Update Song : Update Shown Song Info #-------------------------------------------------------------------------- def update_song(song) # refresh refresh # Draw Nil if Song is Nil return draw_nil if song.nil? # Get Notes notes = Songs[song][:notes] # Get Center Position center_x = ((notes.size * 30) - (contents_width)) / 2 # Pass Through each index of notes notes.each_index do |i| # Draw Note Icon draw_icon(Notes[notes[i]][1], (i * 30) - center_x, 0) end end #-------------------------------------------------------------------------- # * Draw Nil : Draw a Text to Show there are not songs selected or at all #-------------------------------------------------------------------------- def draw_nil # Draw Text indicating there are no Songs draw_text(0, 0, contents_width, line_height, 'No Songs!', 1) end end #============================================================================== # ** Window_SongList #============================================================================== class Window_SongList < Window_Selectable #-------------------------------------------------------------------------- # * Mixin Game_Instrument #-------------------------------------------------------------------------- include Game_Instrument #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize super(0, 0, 336, 96) refresh select(0) activate end #-------------------------------------------------------------------------- # * Item Max #-------------------------------------------------------------------------- def item_max $game_party.songs.size end #-------------------------------------------------------------------------- # * Song #-------------------------------------------------------------------------- def song $game_party.songs[index] end #-------------------------------------------------------------------------- # * Draw Item #-------------------------------------------------------------------------- def draw_item(index) # Get Song song = Songs[$game_party.songs[index]] # Get Rect rect = item_rect(index) rect.width -= 4 # Draw Default Partiture Icon draw_icon(song[:icon], rect.x, rect.y) # Draw Song Name draw_text_ex(rect.x + 26, rect.y, song[:name]) end #-------------------------------------------------------------------------- # * Update Help #-------------------------------------------------------------------------- def update_help # Update Song Info @help_window.update_song(song) end end #============================================================================== # ** Scene_SongList #============================================================================== class Scene_SongList < Scene_MenuBase #-------------------------------------------------------------------------- # * Start #-------------------------------------------------------------------------- def start super # Create Song Info create_songinfo_window # Create Song List create_song_list end #-------------------------------------------------------------------------- # * Create Song Info Window #-------------------------------------------------------------------------- def create_songinfo_window @song_info_window = Window_SongInfo.new @song_info_window.x = (Graphics.width - @song_info_window.width) / 2 @song_info_window.y = (Graphics.height - 144) / 2 end #-------------------------------------------------------------------------- # * Create Song List #-------------------------------------------------------------------------- def create_song_list @song_list_window = Window_SongList.new @song_list_window.x = @song_info_window.x @song_list_window.y = @song_info_window.y + @song_info_window.height @song_list_window.set_handler(:cancel, method(:return_scene)) @song_list_window.help_window = @song_info_window end end Thank you so much! I truly appreciate it! I after looking at it for a bit I was also wondering if there were materials that came with the demo? Or if it's possible to get the demo itself from you? I would really appreciate it, but either way this is incredibly helpful ^.^ Share this post Link to post Share on other sites
Britannia Angel 8 Posted May 31, 2014 You mentioned having problems extracting the demo, so I thought it might help if I just put the folder itself into a zip file. Here you go~ Share this post Link to post Share on other sites
The Guardian 21 Posted May 31, 2014 Thank you SO MUCH! After getting to play test it, its exactly what I need for my project. Gunna go get to work on that right now actually ^.^ Your a Boss my good Sir/Madam (Profile won't tell me >.<) Share this post Link to post Share on other sites
TheoAllen 830 Posted May 31, 2014 Moved to Ace Script Request ~ and Closed since solved ~ Share this post Link to post Share on other sites