Partagez
Aller en bas
Azuma-01
Azuma-01
Membre

Nombre de messages : 94
Age : 27
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009

[Résolu]charger une variable au menu titre Empty [Résolu]charger une variable au menu titre

le Lun 9 Nov 2009 - 18:28
Ceci est plus une question d'écriture que d'une demande de script...
Comment fait-on pour charger une variable provenant de la sauvegarde la plus récente dans le menu titre?
Merci à l'avance.
Azuma-01

EDIT: Si il est impossible (ou trop compliquer) d'utiliser la sauvegarde la plus récente vous pouvez faire charger la variable via la sauvegarde 1 (c'est mon auto save).


Dernière édition par Azuma-01 le Lun 18 Jan 2010 - 17:24, édité 3 fois
Azuma-01
Azuma-01
Membre

Nombre de messages : 94
Age : 27
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009

[Résolu]charger une variable au menu titre Empty Re: [Résolu]charger une variable au menu titre

le Lun 18 Jan 2010 - 17:25
Je profite de ce petit 🆙 pour redire ma question dans un contexte plus claire (du moins, je l'espère... )

Quand on lance le jeux, je veux que le systeme loadcharge la variable provenant de la sauvegarde la plus récente. je crois que c'eat la ligne 193 de Scene_Title qui est à modifier, mais je ne sais quoi écrire...
Cette ligne est:
Code:
$game_variables    = Game_Variables.new
j'ai essayer ça (voir le spolier ci-dessous), mais c'est un mauvais argument.
Spoiler:
Code:
$game_variables    = Game_Variables.new ("Save/Saveslot1.rvdata") if ("Save/Saveslot1.rvdata") != nil
j'ai aussi essayer ceci (voir le spolier ci-dessous), mais j'ai comme réponce cette erreur : private'load_deta'called for Game_Variables:Class.
Spoiler:
Code:
$game_variables    = Game_Variables.load_data("Save/Saveslot1.rvdata") if ("Save/Saveslot1.rvdata") != nil

Donc, ma question est: Quel est la commande qu'il faut utiliser pour charger une variable provenant de la sauvegarde la plus récente (ou la sauvegarde 1) à l'écran titre?





Je profite de ce petit re 🆙 pour y montrer mes progrès.

Mes recherche: j'ai trouver ce script de Woratana permettant de changer l'écran titre selon le niveau le plus élevé du héros.
Spoiler:
Code:
class Scene_Title < Scene_Base

MAX_SAVEFILE = 4

# Quel nombre de sauvegarde a votre jeu ? Par défaut 4.
# Changer la variable MAX_SAVEFILE en fonction du nombre de sauvegarde maximum que votre jeu a.

Title_lv = Array.new
Title_lv = [10,25,50,80]

# Title_lv = (Utilisez Nouveau titre pour le niveau ..) [.., ... (autant que vous le voulez)]
# Le nom du Nouveau Titre Fichier doit être dans le répertoire "System"
# me Nouveau Titre Fichier doit être: "Title(Vérifier le niveau dans Title_lv)"

# FPour example, Title_lv = [10,20]
# Si le niveau le plus haut du personnage dans toutes les sauvegardes est compris entre 0 et 9: Le Titre du Fichier est "Title"
# Si le plus haut niveau est compris entre 10 et 19: Le Titre du Fichier est "Title10"
# Si le niveau le plus haut est supérieur à 20: Le Titre du Fichier est "Title20"

alias wor_title_start start
def start
wor_find_max_level
wor_title_start
end

def create_title_graphic
@title_lv = 0
@sprite = Sprite.new
(0..(Title_lv.size - 1)).each do |i|
@title_lv = Title_lv if Title_lv <= @max_lv
end
@title_lv = nil if @title_lv == 0
@sprite.bitmap = Cache.system("Title#{@title_lv}")
end

def wor_find_max_level
@max_lv = 0
(1..MAX_SAVEFILE).each do |id|
next if not FileTest.exist?("Save#{id}.rvdata")
file = File.open("Save#{id}.rvdata", "rb")
(1..9).each do
trash = Marshal.load(file)
end
$game_actors = Marshal.load(file)
$game_party = Marshal.load(file)
(0..($game_party.members.size - 1)).each do |mem|
@max_lv = $game_party.members[mem].level if $game_party.members[mem].level > @max_lv
end
file.close
end
trash = nil
end

end
Jusqu'a présent mes tentatives de le modifier pour pouvoir extraire la variable x de la sauvegarde 1 sont vain et je doit avouer que je suis confused en manque d'idée

Merci à celui qui m'aidera

EDIT2: résolu
Code:
def load_variable(file_index, id_var)
      File.open("Save/Saveslot#{file_index}.rvdata") { |file|
    # On ouvre le fichier auquel on applique la procédure qui suit.
      7.times { Marshal.load(file) }
      # La marshalisation fonctionne "en curseur". Un premier
      # Marshal.load va lire la première instance mrshalisé un
      # second la seconde etc. On veut recuperer la 8eme
      # instance celle de Game_Variables on réalise donc 7
      # Marshal.load préalable pour déplacer le curseur.
      return Marshal.load(file)[id_var]
      # On renvoi maintenant la valeur de la variable d'id "id_var"
    } rescue return 0
    # Fin de la procedure
    # Le rescue placé ici permet de recuperer une eventuelle exception
    # levée par File.open dans le cas ou le fichier n'existerait pas.
    # Si donc l'exception est levée, c'est qu'il n'y a pas de sauvegarde
    # on renvoi dans ce cas 0, valeur par défaut d'une variable.
  end
 
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum