Seigneur Lv.18
Age : 31 Inscrit le : 06/06/2008 Messages : 2005
| Sujet: Sauvegarde à la Heroes of Mana Mar 22 Sep 2009 - 19:57 | |
| Save Heroes of Mana By: Master IVoici un script de sauvegarde à la Heroes of Mana (sauvegarde très complet), j'ai traduit ce que a dis Master I pour que ce script marche, j'ai traduit à 90% à peu prêt. Commençons. A propos du Script : Ceci est le fichier de sauvegarde comme celui de Heroes of Mana (Nintendo DS), Cette sauvegarde vous montre que quand vous save/load votre fichier, il vous montre un texte avec la description de votre chapitre, où vous en étiez, exemple : Vous êtes dans le chapitre 1 et vous vous trouvez à Story of Ferolia. Cela vous montre vos précédents actions sur le chapitre où vous en étiez. Script : - Spoiler:
- Code:
-
[center]#==============================================================================# # ::. Save Heroes of Mana # # by: Master I # #==============================================================================#
module Pernalonga Capitulo = []
#==============================================================================# # Settings of Script # # ID of Variable, Music, Font, Name of File, Transition, Time,Texts # #Save_Show(true = Show False = Don't Show),Music,Transition, Percentage,Place # #------------------------------------------------------------------------------# Save_Variavel = 1 Save_Musica = "Save" Save_Fonte = ["HabanoST", 16] Save_Name = "Pernalonga" Save_Transition = ["Save",180] Save_Texto = ["No Data","Place: ","%"] Save_Show = [true,true,true,true]
#==============================================================================# # Settings pictures # #Name of Pictures,Logo[Load,Save,POS_X,POS_Y],Botons[Load,Save],Back[PanX,PanY]# #------------------------------------------------------------------------------# Save_Data = "Save_File" Save_Logo = ["Logo_Load","Salvar_Logo",200,260]#(190,320) Save_Botão = ["Load_Botão","Save_Botão"] Save_Fundo = ["Fundo_Save", 0, 0]
#==============================================================================# # Settings Chapters # # Capitulo[ID] ["Chapter name", "name of the picture"] # # For call de chapter, call the script $capitulos = ID. # #------------------------------------------------------------------------------# Capitulo[0] = ["Capitulo 1: Night Raid", "Cap.1"] Capitulo[1] = ["Capitulo 2: O Chamado dos escolhidos.", "Cap.2"] end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # End of Config. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $Pernalonga_Save_Heroes_of_Mana = true class Window_SaveFile < Window_Base include Pernalonga def initialize(file_index, filename) super(0, 230 + file_index % 4 * 55, 544, 90) @file_index = file_index @filename = filename load_gamedata @textos = [] carregar_dados refresh @selected = false self.opacity = 0 end
def carregar_dados @variavel = [] @nome_mapa = [] @capitulos = [] @dinheiro = [] @imagens = [] $capitulos_imagens =[]
if File.exist?("#{Pernalonga::Save_Name}_1.rvdata") arquivo = File.open("#{Pernalonga::Save_Name}_1.rvdata","rb") @variavel[0] = Marshal.load(arquivo) @nome_mapa[0] = Marshal.load(arquivo) @capitulos[0] = Marshal.load(arquivo) $capitulos_imagens[0] = Marshal.load(arquivo) arquivo.close end
if File.exist?("#{Pernalonga::Save_Name}_2.rvdata") file2 = File.open("#{Pernalonga::Save_Name}_2.rvdata","rb") @variavel[1] = Marshal.load(file2) @nome_mapa[1] = Marshal.load(file2) @capitulos[1] = Marshal.load(file2) $capitulos_imagens[1] = Marshal.load(file2) file2.close end
if File.exist?("#{Pernalonga::Save_Name}_3.rvdata") file3 = File.open("#{Pernalonga::Save_Name}_3.rvdata","rb") @variavel[2] = Marshal.load(file3) @nome_mapa[2] = Marshal.load(file3) @capitulos[2] = Marshal.load(file3) $capitulos_imagens[2] = Marshal.load(file3) file3.close end
if File.exist?("#{Pernalonga::Save_Name}_4.rvdata") file4 = File.open("#{Pernalonga::Save_Name}_4.rvdata","rb") @variavel[3] = Marshal.load(file4) @nome_mapa[3] = Marshal.load(file4) @capitulos[3] = Marshal.load(file4) $capitulos_imagens[3] = Marshal.load(file4) file4.close end end def refresh self.contents.clear self.contents.font.name = Save_Fonte[0] self.contents.font.size = Save_Fonte[1] self.contents.font.color = normal_color if @file_exist draw_playtime(- 80, 5, contents.width - 4, 2) self.contents.draw_text(350, 24, 450, WLH, @variavel[@file_index].to_s + Save_Texto[2]) if Save_Show[2] self.contents.draw_text(200, 4, 250, WLH, @capitulos[@file_index].to_s) self.contents.draw_text(200, 24, 250, WLH, Save_Texto[1] + @nome_mapa[@file_index].to_s) if Save_Show[3] else self.contents.draw_text(300, 20, 450, WLH, Save_Texto[0]) end end def update_cursor if @selected self.cursor_rect.set(0, 0, 0, 0) else self.cursor_rect.empty end end end
#=============================================================================== class Scene_File < Scene_Base include Pernalonga def initialize(saving, from_title, from_event) @saving = saving @from_title = from_title @from_event = from_event end def perform_transition if Save_Show[1] Graphics.transition(Save_Transition[1], "Graphics/Transitions/" + Save_Transition[0]) else Graphics.transition(10) end end
alias pernalonga_scene_file_start start def start super pernalonga_scene_file_start @help_window.visible = false $capitulos == nil ? $capitulos = 0 : nil Audio.bgm_play("Audio/BGM/" + Save_Musica) if Save_Show[0] @fundo = Plane.new @fundo.bitmap = Cache.parallax(Save_Fundo[0]) @sprites = [] desenhar_save_load(190,320) desenhar_data(0,300) desenhar_pictures end def pre_terminate unless @from_title RPG::BGM.fade(1500) Graphics.fadeout(60) Graphics.wait(40) @last_bgm.play @last_bgs.play end end
alias pernalonga_scene_file_terminate terminate def terminate super pernalonga_scene_file_terminate @fundo.dispose for i in 0...@sprites.size @bitmap[i].dispose @sprites[i].dispose end @logo.dispose end
def desenhar_data(x,y) @bitmap = [] for i in 0...4 @bitmap[i] = Sprite.new @bitmap[i].bitmap = Cache.picture(Save_Data) end @bitmap[0].x = x @bitmap[0].y = y @bitmap[1].x = x @bitmap[1].y = y + 50 @bitmap[2].x = x + 280 @bitmap[2].y = y @bitmap[3].x = x + 280 @bitmap[3].y = y + 50 end
def desenhar_save_load(x,y) @logo = Sprite.new for i in 0...4 @sprites[i] = Sprite.new @from_title == true ? @sprites[i].bitmap = Cache.picture(Save_Botão[0]) : @sprites[i].bitmap = Cache.picture(Save_Botão[1]) @sprites[i].visible = false end @from_title == true ? @logo.bitmap = Cache.picture(Save_Logo[0]) : @logo.bitmap = Cache.picture(Save_Logo[1]) @logo.x = Save_Logo[2] @logo.y = Save_Logo[3] @sprites[0].visible = true if File.exist?(@savefile_windows[0].filename) @sprites[1].visible = true if File.exist?(@savefile_windows[1].filename) @sprites[2].visible = true if File.exist?(@savefile_windows[2].filename) @sprites[3].visible = true if File.exist?(@savefile_windows[3].filename) @sprites[0].x = x @sprites[0].y = y @sprites[1].x = x @sprites[1].y = y + 50 @sprites[2].x = x + 280 @sprites[2].y = y @sprites[3].x = x + 280 @sprites[3].y = y + 50 end def desenhar_pictures @desenhos = [] for i in 0...$capitulos_imagens.size @desenhos[i] = Sprite.new @desenhos[i].bitmap = Cache.picture($capitulos_imagens[i].to_s) @desenhos[i].visible = false end end def update super @fundo.ox += Save_Fundo[1] @fundo.oy += Save_Fundo[2] @desenhos[@index] == nil ? nil : @desenhos[@index].visible = true case @index when 0 @bitmap[0].opacity = 255 @bitmap[1].opacity = 150 @bitmap[2].opacity = 150 @bitmap[3].opacity = 150 @desenhos[1]== nil ? nil : @desenhos[1].visible = false @desenhos[2]== nil ? nil : @desenhos[2].visible = false @desenhos[3]== nil ? nil : @desenhos[3].visible = false @desenhos[4]== nil ? nil : @desenhos[4].visible = false when 1 @bitmap[1].opacity = 255 @bitmap[0].opacity = 150 @bitmap[2].opacity = 150 @bitmap[3].opacity = 150 @desenhos[0]== nil ? nil : @desenhos[0].visible = false @desenhos[2]== nil ? nil : @desenhos[2].visible = false @desenhos[3]== nil ? nil : @desenhos[3].visible = false @desenhos[4]== nil ? nil : @desenhos[4].visible = false when 2 @bitmap[2].opacity = 255 @bitmap[1].opacity = 150 @bitmap[0].opacity = 150 @bitmap[3].opacity = 150 @desenhos[0]== nil ? nil : @desenhos[0].visible = false @desenhos[3]== nil ? nil : @desenhos[3].visible = false @desenhos[1]== nil ? nil : @desenhos[1].visible = false @desenhos[4]== nil ? nil : @desenhos[4].visible = false when 3 @bitmap[3].opacity = 255 @bitmap[1].opacity = 150 @bitmap[2].opacity = 150 @bitmap[0].opacity = 150 @desenhos[0]== nil ? nil : @desenhos[0].visible = false @desenhos[2]== nil ? nil : @desenhos[2].visible = false @desenhos[1]== nil ? nil : @desenhos[1].visible = false @desenhos[4]== nil ? nil : @desenhos[4].visible = false end update_menu_background update_savefile_windows save_seleção end
def save_seleção if Input.trigger?(Input::C) determine_savefile elsif Input.trigger?(Input::B) Sound.play_cancel return_scene elsif Input.trigger?(Input::DOWN) or Input.trigger?(Input::UP) Sound.play_cursor cursor_baixo_cima elsif Input.trigger?(Input::RIGHT) or Input.trigger?(Input::LEFT) Sound.play_cursor cursor_direita_esquerda end end
def cursor_baixo_cima if @index == 0 or @index == 1 @index == 1 ? @index = 0 : @index = 1 elsif @index == 2 or @index == 3 @index == 3 ? @index = 2 : @index = 3 end end def cursor_direita_esquerda if @index == 0 or @index == 2 @index == 2 ? @index = 0 : @index = 2 elsif @index == 3 or @index = 1 @index == 1 ? @index = 3 : @index = 1 end end def create_savefile_windows @savefile_windows = [] for i in 0..3 @savefile_windows.push(Window_SaveFile.new(i, make_filename(i))) end @savefile_windows[0].x = - 200 @savefile_windows[0].y = 280 @savefile_windows[1].x = - 200 @savefile_windows[1].y = 330 @savefile_windows[2].x = 80 @savefile_windows[2].y = 280 @savefile_windows[3].x = 80 @savefile_windows[3].y = 330 end alias pernalonga_scene_file_do_save do_save def do_save pernalonga_scene_file_do_save salvar_arquivo end
def salvar_arquivo variavel = [] nome_mapa = [] capitulo = [] imagens = [] for i in 0..3 variavel[i] = $game_variables[Save_Variavel] nome_mapa[i] = load_data("Data/MapInfos.rvdata")[$game_map.map_id].name capitulo[i] = Capitulo[$capitulos][0] imagens[i] = Capitulo[$capitulos][1] variavel[i].to_i nome_mapa[i].to_i capitulo[i].to_i imagens[i].to_i end case @index when 0 file = File.open("#{Save_Name}_1.rvdata", "wb") Marshal.dump(variavel[0], file) Marshal.dump(nome_mapa[0], file) Marshal.dump(capitulo[0], file) Marshal.dump(imagens[0], file) file.close when 1 file = File.open("#{Save_Name}_2.rvdata", "wb") Marshal.dump(variavel[1], file) Marshal.dump(nome_mapa[1], file) Marshal.dump(capitulo[1], file) Marshal.dump(imagens[1], file) file.close when 2 file = File.open("#{Save_Name}_3.rvdata", "wb") Marshal.dump(variavel[2], file) Marshal.dump(nome_mapa[2], file) Marshal.dump(capitulo[2], file) Marshal.dump(imagens[2], file) file.close when 3 file = File.open("#{Save_Name}_4.rvdata", "wb") Marshal.dump(variavel[3], file) Marshal.dump(nome_mapa[3], file) Marshal.dump(capitulo[3], file) Marshal.dump(imagens[3], file) file.close end end end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Fim do Script!!! #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Instructions : Ligne 14: Tapez l'ID de la variable qui permet de mettre la valeur du pourcentage. Ligne 15: Le nom du fond de la musique BGM de la sauvegarde. Vous pouvez ajouter les chapitres que vous voulez, si vous suivez la séquence si-dessous : Ligne 36 : Capitulo[ID] ["Nom du chapitre", "Nom de l'image"] EXEMPLE : Capitulo[1] = ["Chp 2:The Call of Chosen", "Cap.2"] Pour changer de chapitre, appelez le script $capitulos = IDImage : Si vous n'avez pas tout compris, je vous fais part de la Démo : Ici. Attention : vous devez téléchargez cette police d'écriture (Heroes of Mana) ICI ainsi la placer dans C:Windows/Fonts. |
|
Poulet trizo Lv.3
Inscrit le : 27/07/2009 Messages : 42
| Sujet: Re: Sauvegarde à la Heroes of Mana Mer 23 Sep 2009 - 13:01 | |
| Waw sérieusement sa a l'air cool je vais peut être l'utiliser pour my game |
|
Age : 30 Inscrit le : 22/11/2008 Messages : 3382
| Sujet: Re: Sauvegarde à la Heroes of Mana Sam 19 Nov 2011 - 12:54 | |
| Vu qu'un lien vers ce topic a été donné y a pas longtemps, j'en profite pour dire que chez moi, ce script fait planter le jeu si l'on quitte le menu de sauvegarde sans avoir sauvegardé. Je pense pas que ça le fasse que chez moi donc, forcément, je déconseille x) |
|