Partagez
Aller en bas
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

LN - SaveEx Empty LN - SaveEx

le Ven 5 Oct 2012 - 11:19
LN - SaveEx


Auteur : LightNox
Ne pas difuser sans ma permission !

Version du script :
V 1.0
V 1.1 : Refonte graphique du script + nouvelle image

Principe du script : Ce script remplace le menu de sauvegarde de base de RPG Maker Vx Ace.

Instructions :
image a mettre dans le dossier Picture : a nommer "savemenu"
LN - SaveEx Saveme10
dans les commentaires au début du script il y a des modification a faire.
Et pour afficher le nom de la map dans la sauvegarde, penser a mettre le nom de la map dans les propriétés de la map.

Screens :
LN - SaveEx Saveex10

Script : à placer en dessous de matériels :
1er script : LN - SaveEx
Code:
#-------------------------------------------------------------------------------
# * LN - SaveEx V 1.1
#-------------------------------------------------------------------------------
# Dans DataManager ligne 199 remplacer par ceci :
#  def self.make_save_header
#    header = {}
#    header[:characters] = $game_party.characters_for_savefile
#    header[:playtime_s] = $game_system.playtime_s
#    header[:localisation] = $game_map.display_name
#    header
#  end
#
#  et a la ligne 124 remplacer par ceci :
#  def self.savefile_max
#    return 3
#  end
#
# Si vous voulez faire un appel de script sur un event pour la sauvegarde mettez ceci :
# SceneManager.call(Scene_File)
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
class Window_SaveFile < Window_Base
#-------------------------------------------------------------------------------
  attr_reader  :selected
#-------------------------------------------------------------------------------
  def initialize(height, index)
    super(70, index * height, Graphics.width, height)
    self.opacity = 0
    @file_index = index
    refresh
    @selected = false
  end
#-------------------------------------------------------------------------------
  def refresh
    contents.clear
    change_color(normal_color)
    name = Vocab::File + " #{@file_index + 1}"
    draw_text(0, 0, 200, line_height, name)
    @name_width = text_size(name).width
    draw_party_characters(210, 60)
    draw_playtime(0, contents.height - line_height, contents.width - 4, 2)
    draw_timereal(0, 0, @file_index)
    draw_localisation(x ,y)
  end
#-------------------------------------------------------------------------------
  def draw_party_characters(x, y)
    header = DataManager.load_header(@file_index)
    return unless header
    header[:characters].each_with_index do |data, i|
    draw_character(data[0], data[1], x + i * 48, y)
    end
  end
#-------------------------------------------------------------------------------
  def draw_playtime(x, y, width, align)
    header = DataManager.load_header(@file_index)
    return unless header
    draw_text(-235, 60, width, line_height, header[:playtime_s], 2)
  end
#-------------------------------------------------------------------------------
  def draw_timereal(x, y, index)
    header = DataManager.load_header(@file_index)
    return unless header
    timereal = DataManager.savefile_time_stamp(index).strftime("%d-%m-%Y")
    draw_text(x, 54, width, 40, timereal)
  end
#-------------------------------------------------------------------------------
  def draw_localisation(x ,y)
    header = DataManager.load_header(@file_index)
    return unless header
    draw_text(0, 35, 200, 30, header[:localisation])
  end
#-------------------------------------------------------------------------------
  def selected=(selected)
    @selected = selected
    update_cursor
  end
#-------------------------------------------------------------------------------
  def update_cursor
    if @selected
      cursor_rect.set(0, 0, @name_width + 8, line_height)
    else
      cursor_rect.empty
    end
  end
end
#-------------------------------------------------------------------------------
#///////////////////////////////////////////////////////////////////////////////
#-------------------------------------------------------------------------------
class Scene_File < Scene_MenuBase
#-------------------------------------------------------------------------------
  def start
    super
    create_background
    create_help_window
    create_savefile_viewport
    create_savefile_windows
    init_selection
  end
#-------------------------------------------------------------------------------
  def terminate
    super
    @savefile_viewport.dispose
    @savefile_windows.each {|window| window.dispose }
  end
#-------------------------------------------------------------------------------
  def update
    super
    @savefile_windows.each {|window| window.update }
    update_savefile_selection
  end
#-------------------------------------------------------------------------------
  def create_help_window
    @help_window = Window_Help.new(1)
    @help_window.set_text(help_window_text)
    @help_window.opacity = 0
  end
#------------------------------------------------------------------------------- 
  def create_background
    super
    @sprite1 = Sprite.new
    @sprite1.bitmap = Cache::picture("savemenu")
  end
#-------------------------------------------------------------------------------
  def dispose_background
    super
    @sprite1.bitmap.dispose
    @sprite1.dispose
  end
#-------------------------------------------------------------------------------
  def help_window_text
    return ""
  end
#-------------------------------------------------------------------------------
  def create_savefile_viewport
    @savefile_viewport = Viewport.new
    @savefile_viewport.rect.y = @help_window.height
    @savefile_viewport.rect.height -= @help_window.height
  end
#-------------------------------------------------------------------------------
  def create_savefile_windows
    @savefile_windows = Array.new(item_max) do |i|
      Window_SaveFile.new(savefile_height, i)
    end
    @savefile_windows.each {|window| window.viewport = @savefile_viewport }
  end
#-------------------------------------------------------------------------------
  def init_selection
    @index = first_savefile_index
    @savefile_windows[@index].selected = true
    self.top_index = @index - visible_max / 2
    ensure_cursor_visible
  end
#-------------------------------------------------------------------------------
  def item_max
    DataManager.savefile_max
  end
#-------------------------------------------------------------------------------
  def visible_max
    return 3
  end
#-------------------------------------------------------------------------------
  def savefile_height
    @savefile_viewport.rect.height / visible_max
  end
#-------------------------------------------------------------------------------
  def first_savefile_index
    return 0
  end
#-------------------------------------------------------------------------------
  def index
    @index
  end
#-------------------------------------------------------------------------------
  def top_index
    @savefile_viewport.oy / savefile_height
  end
#-------------------------------------------------------------------------------
  def top_index=(index)
    index = 0 if index < 0
    index = item_max - visible_max if index > item_max - visible_max
    @savefile_viewport.oy = index * savefile_height
  end
#-------------------------------------------------------------------------------
  def bottom_index
    top_index + visible_max - 1
  end
#-------------------------------------------------------------------------------
  def bottom_index=(index)
    self.top_index = index - (visible_max - 1)
  end
#-------------------------------------------------------------------------------
  def update_savefile_selection
    return on_savefile_ok    if Input.trigger?(:C)
    return on_savefile_cancel if Input.trigger?(:B)
    update_cursor
  end
#-------------------------------------------------------------------------------
  def on_savefile_ok
  end
#-------------------------------------------------------------------------------
  def on_savefile_cancel
    Sound.play_cancel
    return_scene
  end
#-------------------------------------------------------------------------------
  def update_cursor
    last_index = @index
    cursor_down (Input.trigger?(:DOWN))  if Input.repeat?(:DOWN)
    cursor_up  (Input.trigger?(:UP))    if Input.repeat?(:UP)
    cursor_pagedown  if Input.trigger?(:R)
    cursor_pageup    if Input.trigger?(:L)
    if @index != last_index
      Sound.play_cursor
      @savefile_windows[last_index].selected = false
      @savefile_windows[@index].selected = true
    end
  end
#-------------------------------------------------------------------------------
  def cursor_down(wrap)
    @index = (@index + 1) % item_max if @index < item_max - 1 || wrap
    ensure_cursor_visible
  end
#-------------------------------------------------------------------------------
  def cursor_up(wrap)
    @index = (@index - 1 + item_max) % item_max if @index > 0 || wrap
    ensure_cursor_visible
  end
#-------------------------------------------------------------------------------
  def cursor_pagedown
    if top_index + visible_max < item_max
      self.top_index += visible_max
      @index = [@index + visible_max, item_max - 1].min
    end
  end
#-------------------------------------------------------------------------------
  def cursor_pageup
    if top_index > 0
      self.top_index -= visible_max
      @index = [@index - visible_max, 0].max
    end
  end
#-------------------------------------------------------------------------------
  def ensure_cursor_visible
    self.top_index = index if index < top_index
    self.bottom_index = index if index > bottom_index
  end
end
#-------------------------------------------------------------------------------
# * END LN - SaveEx
#-------------------------------------------------------------------------------

+5pts de participations


Dernière édition par LightNox le Sam 27 Oct 2012 - 20:11, édité 1 fois
Devil131
Devil131
Membre

Nombre de messages : 199
Age : 22
Localisation : Sur Dead Rising 2 ou entrain de regarder The Walking Dead
Distinction : aucune
Date d'inscription : 17/05/2009
http://devil-projet.wifeo.com/

LN - SaveEx Empty Re: LN - SaveEx

le Ven 5 Oct 2012 - 13:06
Wow, j'adore tes menu de base que l'on peut modifier très facilement Very Happy
Je pense l'utiliser d'ici peu, il n'y à pas de script de save qui m'intéressait mais celui-là m'intéresse beaucoup, continue comme ça Smile
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

LN - SaveEx Empty Re: LN - SaveEx

le Ven 5 Oct 2012 - 14:26
Merci du compliment Devil ^^

Mais je vais surement refaire mes autres menu en respectant une charte graphique comme ça au moins il seront associé pour celui qui voudrais tous les avoir Wink
Anonymous
Invité
Invité

LN - SaveEx Empty Re: LN - SaveEx

le Ven 5 Oct 2012 - 19:31
Ton script a l'air super, mais j'ai une question ... Lorsqu'on voit afficher les 4 membres de l'équipe, si ils sont 5 par exemples on voit donc 5 membres ou c'est limiter à 4 ? ^^'
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

LN - SaveEx Empty Re: LN - SaveEx

le Ven 5 Oct 2012 - 19:52
ben... en fait j'ai fait la fenetre de sauvegarde pour 4 personnages, une équipe basique en fait.
donc si il y a 5 personnages le 5eme risque d'être couper x)
Grimimi
Grimimi
Membre

Nombre de messages : 32
Age : 22
Localisation : Belgique
Distinction : aucune
Date d'inscription : 30/08/2012
http://www.biloucorp.com/BCW/Grim/

LN - SaveEx Empty Re: LN - SaveEx

le Sam 6 Oct 2012 - 1:06
*monkeypatching...monkeypatching...monkeypatching* Smile
Balbereith
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 26
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires LN - SaveEx 522164 ) [Coco' Smile]
Date d'inscription : 13/05/2009

LN - SaveEx Empty Re: LN - SaveEx

le Sam 6 Oct 2012 - 13:09
Merci pour le script, +5pts de participations.
Brandobscure
Brandobscure
Membre

Nombre de messages : 531
Age : 23
Localisation : Belgique
Distinction : aucune
Date d'inscription : 03/01/2011

LN - SaveEx Empty Re: LN - SaveEx

le Sam 6 Oct 2012 - 19:34
Encore une fois ton script est exellent !
Bonne continuations. Very Happy
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

LN - SaveEx Empty Re: LN - SaveEx

le Sam 6 Oct 2012 - 20:28
Merci encore pour tous vos compliments ^^

sa m'encourage à m'améliorer pour en faire d'autre encore plus complexe Smile

en ce moment je bosse sur un script de téléportation bien compliquer et si j'arrive a me sortir d'un petit problème que je rencontre actuellement je le sortirais d'ici peu de temps x)

en attendant merci pour vos encouragements Wink
Brandobscure
Brandobscure
Membre

Nombre de messages : 531
Age : 23
Localisation : Belgique
Distinction : aucune
Date d'inscription : 03/01/2011

LN - SaveEx Empty Re: LN - SaveEx

le Sam 6 Oct 2012 - 20:56
Il sera génial aussi car j'en cherche un justement.
Merci. Very Happy
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

LN - SaveEx Empty Re: LN - SaveEx

le Sam 6 Oct 2012 - 21:22
il sera surement génial, ça sera a vous de me le dire x)
et il sera personnalisable ^^

car dans mon système de téléportation il y aura en background une world map avec des coordoonées bien précise suivant le nombres de ville que vous avez dans votre jeu et un sprite cursor qui permettra de sélectionner la coordonnée ou se téléporter Wink

en attendant je me remet à mon script car je suis toujours bloquer sur un truc de Me.... surement et je m'en rend même pas compte x)
Anonymous
Invité
Invité

LN - SaveEx Empty Re: LN - SaveEx

le Sam 6 Oct 2012 - 22:36
xO' J'attend avec impatience ton script de téléportation =)
Pharazon
Pharazon
Staffeux retraité

Nombre de messages : 1700
Age : 33
Localisation : Au Pays des Bisounours
Distinction : Super distinction!
[Coco' LN - SaveEx 522164]
Date d'inscription : 14/04/2010

LN - SaveEx Empty Re: LN - SaveEx

le Dim 7 Oct 2012 - 21:50
Super ce script, il existe pour VX ou bien ?
Et héro => héros prend toujours un "S"
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

LN - SaveEx Empty Re: LN - SaveEx

le Dim 7 Oct 2012 - 23:37
Ah oui x) effectivement petit erreur d'orthographe de ma part Wink

et non il n'existe pas sous vx car je développe que sur VX Ace ^^
Terral
Terral
Membre

Nombre de messages : 160
Age : 26
Localisation : Dans la Matrice
Distinction : aucune
Date d'inscription : 15/09/2012

LN - SaveEx Empty Re: LN - SaveEx

le Mer 24 Oct 2012 - 14:34
Salut j'ai une ch'tite question moi aussi, tu dit qu'il faut mettre le nom de la map pour qu'elle apparaisse dans
Code:
  header[:localisation] = $game_map.display_name

Mais je doit le mettre où le nom ? Car le nom de la map ne s'affiche pas ^^'
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

LN - SaveEx Empty Re: LN - SaveEx

le Mer 24 Oct 2012 - 15:27
Non le nom de la map doit être mis dans les propriétés de la map ^^ pas dans le script Smile
Terral
Terral
Membre

Nombre de messages : 160
Age : 26
Localisation : Dans la Matrice
Distinction : aucune
Date d'inscription : 15/09/2012

LN - SaveEx Empty Re: LN - SaveEx

le Mer 24 Oct 2012 - 15:58
Ah ? Car le nom y est déjà mais il ne s'affiche pas dans la sauvegarde, même quand je fait nouvelle partie Suspect
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

LN - SaveEx Empty Re: LN - SaveEx

le Mer 24 Oct 2012 - 16:16
il faut le mettre dans "Nom affiché" et pas simplement "Nom" ^^
Terral
Terral
Membre

Nombre de messages : 160
Age : 26
Localisation : Dans la Matrice
Distinction : aucune
Date d'inscription : 15/09/2012

LN - SaveEx Empty Re: LN - SaveEx

le Mer 24 Oct 2012 - 16:28
Je sais c'est ça mon prob :/
J'ai p'téte fait une boulette :x
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

LN - SaveEx Empty Re: LN - SaveEx

le Mer 24 Oct 2012 - 19:01
Oo alors là c'est la meilleure xD
tu as toujours ce problème, même si tu met en "Nom Affiché" ?

Je ne comprend pas je n'ai pas ce problème moi et je n'ai eu aucun retour de problème sur ce script a part celui la confused

essaye de le faire sur un projet vierge et donne moi des nouvelle Wink
Terral
Terral
Membre

Nombre de messages : 160
Age : 26
Localisation : Dans la Matrice
Distinction : aucune
Date d'inscription : 15/09/2012

LN - SaveEx Empty Re: LN - SaveEx

le Mer 24 Oct 2012 - 19:22
CHuis désoler mais cela ne marche toujours pas :/
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

LN - SaveEx Empty Re: LN - SaveEx

le Mer 24 Oct 2012 - 19:34
Oo apparemment les script ne t'aime pas a toi x)

Je suis désolé mais je ne vois pas ou ça peut buger vue que chez moi sa ne bug pas et a part toi il n'y a eu aucun retour de bug.
Terral
Terral
Membre

Nombre de messages : 160
Age : 26
Localisation : Dans la Matrice
Distinction : aucune
Date d'inscription : 15/09/2012

LN - SaveEx Empty Re: LN - SaveEx

le Mer 24 Oct 2012 - 19:41
arf

Bas tant pis alors, je me passerais du lieu de sauvegarde alors x')
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

LN - SaveEx Empty Re: LN - SaveEx

le Sam 27 Oct 2012 - 20:11
*V 1.1 : Refonte graphique du script + nouvelle image
Brandobscure
Brandobscure
Membre

Nombre de messages : 531
Age : 23
Localisation : Belgique
Distinction : aucune
Date d'inscription : 03/01/2011

LN - SaveEx Empty Re: LN - SaveEx

le Sam 27 Oct 2012 - 20:30
Merveilleux encore une fois ! Very Happy
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum