| Roi |
 |
 |
Inscrit le: 08 Mai 2005, 15:00 Messages: 2960 Localisation: Lyon Niveau RPG Maker: Expert Logiciel(s) préféré(s): RMXP ; IGM Point(s) Fort(s): HTML5, PHP, Javascript, Ruby Sexe: Masculin Points d'aide: Illimité
Créations :
- RPG JS : Votre RPG en ligne sur votre navigateur
Voir ses créations
|
Menu de sauvegarde Suite à la demande : viewtopic.php?f=92&t=102518Auteur : Samarium Logiciel : RPG Maker XP Date : 18/10/09 Fonction : Un autre type de menu de sauvegarde Site du l'auteur : http://www.rpgcreative.netUtilisation : Mettez ce script au dessus du script Main. Créez un dossier "Faces" dans "Graphics" et insérez les Facesets des héros en mettant le même nom que l'image correspondante dans le dossier "Characters". Par exemple, si vous voulez avoir le visage du héros "Arshes" (par défaut), nommez le Facesets "001-Fighter01" Image :- Code: Tout sélectionner
#----------------------------------------------------------------- # Menu de sauvegarde # RMXP # # Auteur : Samarium
# Date : 18/10/09
# Fonction : Un autre type de menu de sauvegarde
# Site du l'auteur : www.rpgcreative.net
# Utilisation : Mettez ce script au dessus du script Main. Créez un dossier # "Faces" dans "Graphics" et insérez les Facesets des héros en # mettant le même nom que l'image correspondante dans le dossier # "Characters". # Par exemple, si vous voulez avoir le visage du héros "Arshes" # (par défaut), nommez le Facesets "001-Fighter01" # # Modifiez les constantes ci-dessous pour changer le fond, le # son ou/et la couleur du texte
# Libre à la diffusion et modification. #-----------------------------------------------------------------
# CONSTANTES pouvant être modifiées BACKGROUND = "menusa11" # => L'image du fond placée dans le dossier Graphics/Pictures SON = "001-System01" # => Le son lorsqu'on change de slot (Audio/SE) NAME_TEXT = "Arial" # = Police du texte COLOR_TEXT = Color.new(0,0,0) #=> Couleur RVB du texte # | | | # | | \--> Intensité de bleu entre 0 et 255 # | \--> Intensité de vert entre 0 et 255 # \--> Intensité de rouge entre 0 et 255
class Scene_File def main @savefile = [] for i in 0..3 @savefile.push([i, make_filename(i)]) end @save_window = Window_SaveFile.new(@savefile[0][0], @savefile[0][1]) @save_window.back_opacity = 0 @index = $game_temp.last_file_index @sprite = Sprite.new @sprite.bitmap = RPG::Cache.picture(BACKGROUND) Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @save_window.dispose @sprite.dispose @sprite.bitmap.dispose end def update @save_window.update if Input.trigger?(Input::C) on_decision(make_filename(@index)) $game_temp.last_file_index = @index return end if Input.trigger?(Input::B) on_cancel return end if Input.trigger?(Input::RIGHT) @index += 1 if @index >= @savefile.size @index = 0 end @save_window.data_file(@savefile[@index][0], @savefile[@index][1]) @save_window.refresh Audio.se_play("Audio/SE/" + SON) elsif Input.trigger?(Input::LEFT) @index -= 1 if @index < 0 @index = @savefile.size-1 end @save_window.data_file(@savefile[@index][0], @savefile[@index][1]) @save_window.refresh Audio.se_play("Audio/SE/" + SON) end end def make_filename(file_index) return "Save#{file_index + 1}.rxdata" end end
class Window_SaveFile < Window_Base attr_reader :filename
def initialize(file_index, filename) super(0, 0, 640, 480) self.contents = Bitmap.new(width - 32, height - 32) data_file(file_index, filename) refresh end def data_file(file_index, filename) @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) Marshal.load(file) Marshal.load(file) @actors = Marshal.load(file) Marshal.load(file) Marshal.load(file) Marshal.load(file) Marshal.load(file) @game_map_name = Marshal.load(file) @total_sec = @frame_count / Graphics.frame_rate file.close end end def refresh self.contents.clear self.contents.font.color = COLOR_TEXT self.contents.font.name = NAME_TEXT name = "Sauvegarde #{@file_index + 1}:" self.contents.draw_text(55, 170, 600, 32, name) @name_width = contents.text_size(name).width case @characters.size when 1 d_picture = 200 d_cadre = 180 when 2 d_picture = 100 d_cadre = 80 when 3 d_picture = 50 d_cadre = 30 when 4 d_picture = 10 d_cadre = 10 end if @file_exist for i in 0...@characters.size bitmap = Bitmap.new("Graphics/Faces/" + @characters[i][0]) w = bitmap.rect.width h = bitmap.rect.height src_rect = Rect.new(0, 0, w, h) y = h + d_picture
self.contents.draw_text(337, y * i + d_cadre, 600, 32, @characters[i][2]) self.contents.draw_text(337, i * y+20 + d_cadre, 600, 32, "Niveau : " + @characters[i][3].to_s) self.contents.blt(470, y * i + d_cadre, bitmap, src_rect) end hour = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 time_string = sprintf("Temps du jeu %02d: %02d", hour, min) self.contents.draw_text(55, 220, 600, 32, time_string) self.contents.draw_text(55, 260, 600, 32, @game_map_name) end end end
class Scene_Save def write_save_data(file) characters = [] for i in 0...$game_party.actors.size actor = $game_party.actors[i] characters.push([actor.character_name, actor.character_hue, actor.name, actor.level]) end Marshal.dump(characters, file) Marshal.dump(Graphics.frame_count, file) $game_system.save_count += 1 $game_system.magic_number = $data_system.magic_number Marshal.dump($game_system, file) Marshal.dump($game_switches, file) Marshal.dump($game_variables, file) Marshal.dump($game_self_switches, file) Marshal.dump($game_screen, file) Marshal.dump($game_actors, file) Marshal.dump($game_party, file) Marshal.dump($game_troop, file) Marshal.dump($game_map, file) Marshal.dump($game_player, file) Marshal.dump($game_map.name, file) end end
class Game_Map def name @map_infos = load_data("Data/MapInfos.rxdata") return @map_infos[map_id].name end end
|
|