Inscrit le: 06 Mar 2007, 01:00 Messages: 541 Points d'aide: 14/60
Créations :
Voir ses créations
|
Me revoici me revoila avec un menu interessant il s'agit ici du menu sauvegarder dans le style MOGHUNTER.... super partage encore une fois je vais espliquer certain trucs par contre parce que ce menu fait des merveilles voila a quoi ca ressemble :  Bon creez un nouveau script au dessus de main nommez le MOG Scene_File Ayumi(Par respect pour l'auteur) Inserez ces ligne de code dans le script : - Code: Tout sélectionner
#_________________________________________________ # MOG_Scene File Ayumi V1.0 #_________________________________________________ # By Moghunter #_________________________________________________ module MOG #Temps de transition MSVT = 30 #Type de transition MSVTT = "006-Stripe02" end ############### # Window_Base # ############### class Window_Base < Window def drw_win_file(x,y) dwf = RPG::Cache.picture("Win_File") cw = dwf.width ch = dwf.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x , y - ch, dwf, src_rect) end def nada face = RPG::Cache.picture("") end def draw_heroface3(actor,x,y) face = RPG::Cache.picture(actor.name + "_fc3") rescue nada cw = face.width ch = face.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x , y - ch, face, src_rect) end def draw_actor_level6(actor, x, y) self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 1, y + 1, 32, 32, "Lv") self.contents.font.color = system_color self.contents.draw_text(x, y, 32, 32, "Lv") self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 17, y + 1, 24, 32, actor.level.to_s, 2) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 16, y, 24, 32, actor.level.to_s, 2) end def draw_actor_name6(actor, x, y) self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 1, y + 1, 100, 32, actor.name,1) self.contents.font.color = normal_color self.contents.draw_text(x, y, 100, 32, actor.name,1) end end ############ # Game_Map # ############ class Game_Map def map_name @mapinfo = load_data("Data/MapInfos.rxdata") if @mapinfo == nil return @mapinfo[@map_id].name end end ################### # Window_SaveFile # ################### class Window_SaveFile < Window_Base attr_reader :filename attr_reader :selected def initialize(file_index, filename) super(0, 64 + file_index * 138, 640, 240) self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 0 @file_index = file_index @filename = "Save#{@file_index + 1}.rxdata" @time_stamp = Time.at(0) @file_exist = FileTest.exist?(@filename) if @file_exist file = File.open(@filename, "r") @time_stamp = file.mtime @characters = Marshal.load(file) @frame_count = Marshal.load(file) @game_system = Marshal.load(file) @game_switches = Marshal.load(file) @game_variables = Marshal.load(file) @game_self_switches = Marshal.load(file) @game_screen = Marshal.load(file) @game_actors = Marshal.load(file) @game_party = Marshal.load(file) @game_troop = Marshal.load(file) @game_map = Marshal.load(file) @total_sec = @frame_count / Graphics.frame_rate file.close end @wiref = 0 refresh @selected = false end def refresh self.contents.clear self.contents.font.name = "Georgia" drw_win_file(0,190) name = "#{@file_index + 1}" self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(161, 41, 600, 32, name) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(160, 40, 600, 32, name) @name_width = contents.text_size(name).width if @file_exist for i in 0...@characters.size bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1]) cw = bitmap.rect.width / 4 ch = bitmap.rect.height / 4 src_rect = Rect.new(cw * @wiref + 1 , 0, cw, ch) x = 300 - @characters.size + i * 64 - cw / 4 self.contents.blt(x - 10, 150 - ch, bitmap, src_rect) x = 116 actors = @game_party.actors for i in 0...[actors.size, 4].min x = i * 60 actor = actors[i] self.contents.font.size = 20 draw_actor_level6(actor, x + 280, 140) actor = actors[0] draw_heroface3(actor,160,180) draw_actor_name6(actor, 160, 155) self.contents.font.size = 22 end end hour = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 time_string = sprintf("%02d:%02d:%02d", hour, min, sec) self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(5, 41, 450, 32, time_string, 2) self.contents.draw_text(41 , 141, 120 , 32, @game_map.map_name.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(40 , 140, 120 , 32, @game_map.map_name.to_s) self.contents.draw_text(4, 40, 450, 32, time_string, 2) end end def selected=(selected) @selected = selected end end ############## # Scene_File # ############## class Scene_File def initialize(help_text) @help_text = help_text end def main @mnback = Plane.new @mnback.bitmap = RPG::Cache.picture("MN_BK") @mnback.z = 1 @mnlay = Sprite.new @mnlay.bitmap = RPG::Cache.picture("Lay_File.PNG") @mnlay.z = 2 @help_window = Window_Help.new @help_window.set_text(@help_text) @help_window.opacity = 0 @savefile_windows = [] for i in 0..2 @savefile_windows.push(Window_SaveFile.new(i, make_filename(i))) end @savefile_windows[0] @file_index = $game_temp.last_file_index @savefile_windows[@file_index].selected = true @savefile_windows[0].y = 40 @savefile_windows[1].y= 140 @savefile_windows[2].y= 240 @win_move_time = 0 @win_move = 0 @win_dire = 0 @win_opac = 255 @win1_y = 0 @win2_y = 0 @win3_y = 0 Graphics.transition(MOG::MSVT, "Graphics/Transitions/" + MOG::MSVTT) loop do Graphics.update Input.update update if $scene != self break end end for i in 0..50 @mnback.ox += 1 @savefile_windows[0].x += 10 @savefile_windows[1].x -= 10 @savefile_windows[2].x += 10 for i in @savefile_windows i.contents_opacity -= 5 end Graphics.update end Graphics.freeze @help_window.dispose @mnback.dispose @mnlay.dispose for i in @savefile_windows i.dispose end end def update @mnback.ox += 1 @win_opac += 3 @win_move_time += 1 if @win_opac > 254 @win_opac = 150 end if @win_move_time > 60 @win_dire += 1 @win_move_time = 0 end if @win_dire > 1 @win_dire = 0 end if @win_dire == 0 @win_move += 1 else @win_move -= 1 end if @file_index == 0 @savefile_windows[0].z = 2 @savefile_windows[1].z = 1 @savefile_windows[2].z = 0 @savefile_windows[0].x = @win_move @savefile_windows[1].x = 0 @savefile_windows[1].x= 0 @savefile_windows[2].x = 0 @savefile_windows[0].contents_opacity = @win_opac @savefile_windows[1].contents_opacity = 130 @savefile_windows[2].contents_opacity = 130 elsif @file_index == 1 @savefile_windows[0].z = 1 @savefile_windows[1].z = 2 @savefile_windows[2].z = 1 @savefile_windows[0].x = 0 @savefile_windows[1].x = @win_move @savefile_windows[2].x = 0 @savefile_windows[0].contents_opacity = 130 @savefile_windows[1].contents_opacity = @win_opac @savefile_windows[2].contents_opacity = 130 else @savefile_windows[0].z = 0 @savefile_windows[1].z = 1 @savefile_windows[2].z = 2 @savefile_windows[0].x = 0 @savefile_windows[1].x = 0 @savefile_windows[2].x = @win_move @savefile_windows[0].contents_opacity = 130 @savefile_windows[1].contents_opacity = 130 @savefile_windows[2].contents_opacity = @win_opac end @help_window.update for i in @savefile_windows i.update end if Input.trigger?(Input::C) on_decision(make_filename(@file_index)) $game_temp.last_file_index = @file_index return end if Input.trigger?(Input::B) on_cancel return end if Input.repeat?(Input::DOWN) if Input.trigger?(Input::DOWN) or @file_index < 3 $game_system.se_play($data_system.cursor_se) @savefile_windows[@file_index].selected = false @file_index = (@file_index + 1) % 3 @savefile_windows[@file_index].selected = true return end end if Input.repeat?(Input::UP) if Input.trigger?(Input::UP) or @file_index > 0 $game_system.se_play($data_system.cursor_se) @savefile_windows[@file_index].selected = false @file_index = (@file_index - 1) % 3 @savefile_windows[@file_index].selected = true return end end end def make_filename(file_index) return "Save#{file_index + 1}.rxdata" end end
Bon voici les images : http://www.fileden.com/files/2007/2/1/723707/Picture_scene%20file.rarVous devez renomez l'image "aluxes_fc3" en fontion du nom de votre heros si son nom est Arshes renomez la"Arshes_fc3" Si vous avez installez les autres scripts MOGHUNTER lorsque vous copierez les images certaines image seront deja presente et on vous demandera d'ecraser n'ayez pas peur faite le ! Les scripts sont totalement compatible entre eux.... Vous remarquerez sur l'image a gauche du fichier selectionnez il y a ecrit place et "map01" ca veut dire ce que ca veut dire !!!! Nomez vos map ! Enfin les images sont en Anglais je ferais une Edit avec le meme layout en Francais... en attendant vous pouvez toujours modifier les images vous meme et creer VOTRE menu sauvegarder. bonne chance Makenshi,
|
|