Partagez
Aller en bas
DantonSlip
DantonSlip
Membre

Nombre de messages : 408
Age : 28
Distinction : 1er membre de la communauté Curse
Date d'inscription : 31/05/2013
http://www.dantonslip.com

Menu sauvegarde par MOGHUNTER Empty Menu sauvegarde par MOGHUNTER

le Lun 9 Sep 2013 - 19:24

Menu Sauvegarde


Auteur : Moghunter

Graphismes : Red Rusty Raven

Version du script : V. 1.0

Principe du script : Il réagence votre menu de sauvegarde pour faire quelque chose de plus sympa à la vue.

Instructions : Copiez le script et collez le au dessus de "MAIN". Les images "Win_File", "Lay_File" et "MN_BK" sont à mettre dans le dossier "picture". Les ressources sont à la fin de ce topic.

Screens :
Voir l'image:
Menu sauvegarde par MOGHUNTER Scenesaveyl3
Voir l'image:
Menu sauvegarde par MOGHUNTER 16i8as8

Script :

Voir le script:

Code:
#_________________________________________________
# 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("Egan_Fm")
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 = "Sauvegarde#{@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 = "Trajan Pro"
    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 "Sauvegarde#{file_index + 1}.rxdata"
  end
end

Ressources :
Toutes les ressources nécessaires sont dans le fichier suivant. Décompressez le zip pour y avoir accès. Il y a des fichiers en .PSD entièrement personnalisables pour les possesseurs de Photoshop (toute version) et SAI (il me semble qu'on peut ouvrir les PSD avec). Pour ceux ayant d'autres logiciels, j'ai mis des .PNG assemblables facilement. Une notice est fournie avec le tout. Wink

Télécharger les ressources


Heaven
Heaven
Staffeux retraité

Nombre de messages : 2451
Age : 18
Localisation : Alpes-Maritimes VIRILITÉ OLALA
Distinction : Aucune
Date d'inscription : 18/10/2012

Menu sauvegarde par MOGHUNTER Empty Re: Menu sauvegarde par MOGHUNTER

le Lun 9 Sep 2013 - 20:28
Dommage que je n'utilise pas XP, les images sont vraiment très belles (:
Merci du partage Raven ^^

N.B => Tu as mis le script dans le forum "Combats" c'normal ? Menu sauvegarde par MOGHUNTER 844836


Heav'n
DantonSlip
DantonSlip
Membre

Nombre de messages : 408
Age : 28
Distinction : 1er membre de la communauté Curse
Date d'inscription : 31/05/2013
http://www.dantonslip.com

Menu sauvegarde par MOGHUNTER Empty Re: Menu sauvegarde par MOGHUNTER

le Lun 9 Sep 2013 - 20:43
Non c'est pas normal. Je lag tellement que j'ai du mal à cliquer sur les bons liens. x)

Merci pour le compliment sinon !
Elisa'
Elisa'
Staffeux retraité

Nombre de messages : 2924
Age : 21
Localisation : Par là-bas !
Distinction : Mon héritière que je chéris Menu sauvegarde par MOGHUNTER 344805Menu sauvegarde par MOGHUNTER 344805
[Coco' Smile]
Plus que 2 ans avant d'épouser Coco' ! Compte à rebours lancé !
[Auto-distinction]

Adepte du "Je le savais" alors qu'elle le savait pas.
Date d'inscription : 30/05/2009

Menu sauvegarde par MOGHUNTER Empty Re: Menu sauvegarde par MOGHUNTER

le Lun 9 Sep 2013 - 21:52
Je déplace, +5 points de participation !

_________________


Cliquez ici pour voter pour la commu'
Menu sauvegarde par MOGHUNTER Banner
az3rtY
az3rtY
Membre

Nombre de messages : 436
Age : 18
Localisation : Sûrement, devant mon pc ^^
Distinction : aucune
Date d'inscription : 16/04/2013
http://kwang.webobo.biz

Menu sauvegarde par MOGHUNTER Empty Re: Menu sauvegarde par MOGHUNTER

le Mer 11 Sep 2013 - 23:38
Pareil que Heaven, dommage que je n'utilise pas RMXP, néanmoins, même si je l'utiliserais, je suis sur un projet pokémon, donc inutil pour moi, mais utile pour d'autre personne.. Smile
Contenu sponsorisé

Menu sauvegarde par MOGHUNTER Empty Re: Menu sauvegarde par MOGHUNTER

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum