Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilRechercherS'enregistrerConnexion
Le deal à ne pas rater :
Fnac : 15% de réduction sur toutes les TV de 55″ est plus
Voir le deal

 

 Sauvegardes d'un jeu à l'autre ?

Aller en bas 
+2
valoulef
Shai-la
6 participants
AuteurMessage
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 5909

Age : 43

Localisation : Montpellier

Date d'inscription : 17/04/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptySam 17 Juil 2021 - 14:05

Hello les amis sourire

Je me demandais s'il existait un moyen de récupérer certaines infos d'une sauvegarde d'un jeu, depuis un autre jeu ?

Exemple : j'ai fait un jeu, je programme la suite, et je voudrais que le personnage puisse récupérer l'inventaire qu'il a récolté dans le jeu précédent. Y'a moyen ou je rêve éveillée ?.. langue

_________________
Mon profil Facebook!
Mon site avec tous mes jeux, vidéos, illustrations etc
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
valoulef


Nombre de messages : 1762

Age : 32

Localisation : Condate

Date d'inscription : 01/08/2011


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptySam 17 Juil 2021 - 16:38

Alors je n'ai pas beaucoup expérimenté cet aspect, mais est-ce que ça ne serait pas réalisable sous la forme d'un fichier texte où le premier jeu entrerait les infos à récupérer, puis le second jeu lirait ces informations si elles sont présentes ?
Bon par contre ça veut dire qu'il faut adapter le premier jeu et c'est pas rétrocompatible. confus

La solution d'utiliser les sauvegardes n'est sûrement pas impossible dans l'absolu, mais nécessiterait au minimum la création d'un plugin adapté j'imagine ? En tout cas ça dépasse de loin mes compétences.

_________________
"Et certes j'ai des raisons de vouloir aujourd'hui de le vouloir demain, mais, demain, j'aurais beau savoir qu'hier j'avais des raisons de vouloir que je le veuille aujourd'hui, ça ne m'aidera pas plus que ça à vouloir ce que je n'ai plus de raison de vouloir maintenant."
https://www.youtube.com/watch?v=3g7cN3Rsi-w
Revenir en haut Aller en bas
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 5909

Age : 43

Localisation : Montpellier

Date d'inscription : 17/04/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptySam 17 Juil 2021 - 17:56

L'idée du fichier texte est intéressante effectivement... A étudier ! sourire

_________________
Mon profil Facebook!
Mon site avec tous mes jeux, vidéos, illustrations etc
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2852

Date d'inscription : 01/08/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptySam 17 Juil 2021 - 19:25

@valoulef a écrit:
La solution d'utiliser les sauvegardes n'est sûrement pas impossible dans l'absolu, mais nécessiterait au minimum la création d'un plugin adapté j'imagine ? En tout cas ça dépasse de loin mes compétences.

Le code source d'AGS est ouvertement accessible pour qui est motivé clin d'oeil

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
inteur72
Grand Cliqueur Royal
Grand Cliqueur Royal
inteur72


Nombre de messages : 1945

Age : 32

Localisation : Seine et marne (77)

Date d'inscription : 22/05/2007


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyMar 27 Juil 2021 - 10:24

J'avais essayé le fichier txt, je me suis cassé les dents dessus mais cette idée est à mon sens la plus simple (dans l'idée)
À vos notepad!
Revenir en haut Aller en bas
http://inteur.fr/hub
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 5909

Age : 43

Localisation : Montpellier

Date d'inscription : 17/04/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyMar 27 Juil 2021 - 14:58

Merci Inteur ! sourire

_________________
Mon profil Facebook!
Mon site avec tous mes jeux, vidéos, illustrations etc
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
valoulef


Nombre de messages : 1762

Age : 32

Localisation : Condate

Date d'inscription : 01/08/2011


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyJeu 29 Juil 2021 - 13:36

J'ai vu hier qu'on pouvait vaguement accéder à quelques variables quand on ouvrait un fichier de sauvegarde avec un bloc notes, mais bon courage pour arriver à t'en servir ^^

_________________
"Et certes j'ai des raisons de vouloir aujourd'hui de le vouloir demain, mais, demain, j'aurais beau savoir qu'hier j'avais des raisons de vouloir que je le veuille aujourd'hui, ça ne m'aidera pas plus que ça à vouloir ce que je n'ai plus de raison de vouloir maintenant."
https://www.youtube.com/watch?v=3g7cN3Rsi-w
Revenir en haut Aller en bas
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 5909

Age : 43

Localisation : Montpellier

Date d'inscription : 17/04/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyVen 30 Juil 2021 - 7:24

Lol merci, je regarderai ça le moment venu, au moins je sais que j'ai quelques pistes langue

_________________
Mon profil Facebook!
Mon site avec tous mes jeux, vidéos, illustrations etc
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
valoulef


Nombre de messages : 1762

Age : 32

Localisation : Condate

Date d'inscription : 01/08/2011


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyVen 30 Juil 2021 - 16:30

@Shai-la a écrit:
Lol merci, je regarderai ça le moment venu, au moins je sais que j'ai quelques pistes langue
Surtout ne privilégie pas cette dernière ^^
Je voulais le signaler par souci d'exhaustivité mais c'est un truc à y laisser des plumes à mon avis.

_________________
"Et certes j'ai des raisons de vouloir aujourd'hui de le vouloir demain, mais, demain, j'aurais beau savoir qu'hier j'avais des raisons de vouloir que je le veuille aujourd'hui, ça ne m'aidera pas plus que ça à vouloir ce que je n'ai plus de raison de vouloir maintenant."
https://www.youtube.com/watch?v=3g7cN3Rsi-w
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2852

Date d'inscription : 01/08/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyVen 30 Juil 2021 - 17:30

Histoire de donner plus de détails, et comme on peut le deviner en suivant le lien que j'ai donné plus haut, les fichiers de sauvegarde d'AGS sont principalement constitués d'une succession d'entiers 32 bits signés, écrits et lus via WriteInt32 et ReadInt32 dans le code source en C++.
Malheureusement je pense pas qu'il y ait une documentation à propos de la structure du fichier. J'ai vite fait essayé de l'extraire du code source en remontant les appels des différentes fonctions, mais je m'y suis cassé les dents

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 5909

Age : 43

Localisation : Montpellier

Date d'inscription : 17/04/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptySam 31 Juil 2021 - 5:59

Ce n'est pas grave, je chercherai une autre solution au pire. Merci d'avoir essayé ♥

_________________
Mon profil Facebook!
Mon site avec tous mes jeux, vidéos, illustrations etc
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Asraroth


Nombre de messages : 1447

Age : 46

Date d'inscription : 20/10/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyLun 2 Aoû 2021 - 17:43

@Kitai a écrit:
Histoire de donner plus de détails, et comme on peut le deviner en suivant le lien que j'ai donné plus haut, les fichiers de sauvegarde d'AGS sont principalement constitués d'une succession d'entiers 32 bits signés, écrits et lus via WriteInt32 et ReadInt32 dans le code source en C++.
Malheureusement je pense pas qu'il y ait une documentation à propos de la structure du fichier. J'ai vite fait essayé de l'extraire du code source en remontant les appels des différentes fonctions, mais je m'y suis cassé les dents

Kitai, pour une même version d'un jeu, la structure du fichier de sauvegarde n'est-elle pas fixe ? Si c'est fixe on doit pouvoir repérer, avec un éditeur héxa, la position de la valeur qui change en fonction de la présence ou non d'un objet dans l'inventaire. Par contre, ça oblige le joueur à manipuler le fichier de sauvegarde pour le mettre dans le dossier du jeu "suite".

Shai-la, une autre solution (si tu touches au jeu d'origine) serait de générer un code à la fin du jeu, fabriqué en fonction des objets de l'inventaire (+ une clé de vérif comme pour le numéro de sécu, pour éviter la triche). Le joueur note le code et le saisie dans le 2ème jeu qui n'a plus qu'à l'analyser pour placer les bons objets dans l'inventaire.

_________________
Ma vie, mon œuvre
Sauvegardes d'un jeu à l'autre ? Banner10
Revenir en haut Aller en bas
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 5909

Age : 43

Localisation : Montpellier

Date d'inscription : 17/04/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyMar 3 Aoû 2021 - 6:27

Ah oui ! C'est pas bête ça !! Merci sourire

_________________
Mon profil Facebook!
Mon site avec tous mes jeux, vidéos, illustrations etc
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 221

Date d'inscription : 21/05/2020


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyMar 7 Sep 2021 - 13:21

Hello !

Shai-La, ça peut aussi se faire grâce au Module de Kitai, qui permet de récupérer des données dans un fichier txt.

A la fin du jeu 1, tu écris dans le txt tout ce que tu as besoin, puis tu dis au joueur de copier/coller ce fichier txt à l'endroit désiré pour que le jeu 2 le lise et fasse ce qu'il faut !

J'en rofite au passage pour poser ma question (pas spécialement en lien avec ce que cherche Shai-la, mais un peu tout de même) : concernant ce module de Kitai, j'ai l'impression que la lecture/écriture dans le fichier txt (grâce aux fonctions implantées dans AGS, je pense que c'est WriteRawLine ou quelque chose du genre ?) est plutôt lente. Dans mon jeu, j'utilise ce procédé pour enregistrer des informations spécifiques : j'ai créé un menu pour que les joueurs puissent créer leurs propres personnages pour les jouer ! Mais du coup, il y a pas mal d'infos à stocker pour chaque perso, du coup, ça prend quelques petites secondes car j'ai pour l'instant 12 "slots" de personnages créables. Et j'ai peur si j'ai envie d'en faire davantage...

Il y aurait une solution ?

(ça pourrait aider Shai-la que le jeu ne prenne pas 10 minutes à lire les infos de la fin du jeu 1 clin d'oeil )
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2852

Date d'inscription : 01/08/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyJeu 9 Sep 2021 - 18:43

Peut-être que c'est parce que mon module ouvre et ferme le fichier à chaque fois qu'on écrit et à chaque fois qu'on lit un paramètre, ce qui est clairement pas optimal. Mon conseil serait de se passer de ce module, gérer ces données directement dans AGS, et seulement lire/écrire lorsque la partie est chargée/sauvée, afin de minimiser l'accès au fichier

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 221

Date d'inscription : 21/05/2020


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyJeu 9 Sep 2021 - 19:01

Hmm, mais ça ne semble pas très optimal, car j'aimerai que les choses soient initialisées au lancement du jeu, et non pas lorsqu'une partie est chargée. Par exemple, les personnages créés sont initialisés au lancement du jeu, or au lancement du jeu, les variables ont forcément une valeur "par défaut" (celle du lancement du jeu ^^ ), du coup, ton module me sert de "sauvegarde" pour ces valeurs.

A moins que je n'aie raté quelque chose ?
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2852

Date d'inscription : 01/08/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyLun 13 Sep 2021 - 15:37

C'est pour ça que j'ai parlé de lire le fichier au chargement, et l'écrire à la sauvegarde. Après tu peux le faire à d'autres moments si tu préfères, mais l'idée c'est de lire et écrire toutes les valeurs en une seule fois, et ainsi ouvrir le fichier une seule fois, plutôt que d'écrire/lire chaque valeur séparément, et devoir ouvrir le fichier autant de fois

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 221

Date d'inscription : 21/05/2020


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyLun 13 Sep 2021 - 16:13

Voici mon code (qui se lance en Room 1, donc après le démarrage du jeu), ce qui éclaircira peut-être le problème :

Code:
config.Open("$SAVEGAMEDIR$/config.txt", "->");
  // On enlève les exclusivités si elles sont pas encore débloquées
  for (int i=LIMITE_EXCLUS ; i<TOTAL_SURVIVANTS ; i++)
  {
    if (config.GetInt(GetTranslation(personnage[i].Nom))==0)
    {
      config.SetInt(personnage[i].Nom, -1);
    }
    if (config.GetInt(GetTranslation(personnage[i].Nom))==-1) personnage[i].Acteur.ChangeRoom(11);
    else personnage[i].Acteur.ChangeRoom(8);
  }
  
  // On fait de même pour les persos à créer
  for (int i=LIMITE_PERSOSCREES ; i<LIMITE_EXCLUS ; i++)
  {
    int n=i-LIMITE_PERSOSCREES+1;
    String s=String.Format("Personnage_Custom_%d", n);
    
    if (config.GetInt(s)==0)
    {
      config.SetInt(s, -1);
      config.SetParam(s.Append("_nom"), String.Format("Perso%d", n));
      config.SetParam(s.Append("_surnom"), String.Format("Surnom de Perso%d", n));
      config.SetParam(s.Append("_citation"), String.Format("Citation de Perso%d", n));
      config.SetParam(s.Append("_bio"), String.Format("Histoire de Perso%d", n));
      config.SetParam(s.Append("_sprite"), "null");
      config.SetParam(s.Append("_spriteavatar"), "null");
      config.SetParam(s.Append("_spritezombivant"), "null");
      config.SetParam(s.Append("_spriteavatarzombivant"), "null");
      config.SetParam(s.Append("_attribut1"), "AUCUN");
      config.SetParam(s.Append("_attribut2"), "AUCUN");
      config.SetParam(s.Append("_attribut3"), "AUCUN");
      config.SetParam(s.Append("_cauchemardjaune"), String.Format("Compétence Jaune de la version Cauchemar Égaré de Perso%d", n));
      config.SetParam(s.Append("_cauchemardorange"), String.Format("Compétence Orange de la version Cauchemar Égaré de Perso%d", n));
      config.SetParam(s.Append("_cauchemardrouge"), String.Format("Compétence Rouge de la version Cauchemar Égaré de Perso%d", n));
      config.SetParam(s.Append("_competenceadv"), String.Format("Compétence de la version Chuchotteur de Personnage%d", n));
      config.SetParam(s.Append("_cauchemardnom"), String.Format("Nom de Cauch%d", n));
      config.SetParam(s.Append("_cauchemardsurnom"), String.Format("Surnom de Cauch%d", n));
      config.SetInt(s.Append("_cauchemardfamille"), 0);
      config.SetInt(s.Append("_cauchemardtype"), 0);
      config.SetInt(s.Append("_statportee1min"), -1);
      config.SetInt(s.Append("_statportee1max"), -1);
      config.SetInt(s.Append("_statportee2min"), -1);
      config.SetInt(s.Append("_statportee2max"), -1);
      config.SetInt(s.Append("_statdes1"), 0);
      config.SetInt(s.Append("_statdes2"), 0);
      config.SetInt(s.Append("_statprecision1"), 0);
      config.SetInt(s.Append("_statprecision2"), 0);
      config.SetInt(s.Append("_statdegat1"), 0);
      config.SetInt(s.Append("_statdegat2"), 0);
      config.SetParam(s.Append("_sexe"), "H");
    }
    if (config.GetInt(s)==-1) personnage[i].Acteur.ChangeRoom(11);
    else
    {
      personnage[i].Acteur.ChangeRoom(8);
    }
  }

ça par exemple, vu qu'il y a pas mal de "données" à écrire, et pas mal de personnages (une douzaine je dirais), ça prend quelques secondes.

C'est normal, ou alors je m'y prends mal ?


Dernière édition par Kitai le Lun 13 Sep 2021 - 21:16, édité 2 fois (Raison : mauvaise manipe -- pas de edit)
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2852

Date d'inscription : 01/08/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyLun 13 Sep 2021 - 16:46

Ma suggestion c'est, par exemple, d'écrire un module dont l'en-tête aurait quelque chose comme ça (non-testé) :

Code:
struct CustomPerso {
  int n;
  String nom;
  String surnom;
  String citation;
  String bio;
  String sprite;
  String spriteavatar;
  String spritezombivant;
  String spriteavatarzombivant;
  String attribut1;
  String attribut2;
  String attribut3;
  String cauchemardjaune;
  String cauchemardorange;
  String cauchemardrouge;
  String competenceadv;
  String cauchemardnom;
  String cauchemardsurnom;
  int cauchemardfamille;
  int cauchemardtype;
  int statportee1min;
  int statportee1max;
  int statportee2min;
  int statportee2max;
  int statdes1;
  int statdes2;
  int statprecision1;
  int statprecision2;
  int statdegat1;
  int statdegat2;
  String sexe;
  
  import function Ecrit();
  import function Lit();
}

Et le corps (là encore, non-testé) :

Code:
function CustomPerso::Ecrit() {
  File* fichier = File.Open(String.Format("custom_perso_%d", this.n), eFileRead);
  fichier.WriteString(this.nom);
  fichier.WriteString(this.surnom);
  fichier.WriteString(this.citation);
  fichier.WriteString(this.bio);
  fichier.WriteString(this.sprite);
  fichier.WriteString(this.spriteavatar);
  fichier.WriteString(this.spritezombivant);
  fichier.WriteString(this.spriteavatarzombivant);
  fichier.WriteString(this.attribut1);
  fichier.WriteString(this.attribut2);
  fichier.WriteString(this.attribut3);
  fichier.WriteString(this.cauchemardjaune);
  fichier.WriteString(this.cauchemardorange);
  fichier.WriteString(this.cauchemardrouge);
  fichier.WriteString(this.competenceadv);
  fichier.WriteString(this.cauchemardnom);
  fichier.WriteString(this.cauchemardsurnom);
  fichier.WriteInt(this.cauchemardfamille);
  fichier.WriteInt(this.cauchemardtype);
  fichier.WriteInt(this.statportee1min);
  fichier.WriteInt(this.statportee1max);
  fichier.WriteInt(this.statportee2min);
  fichier.WriteInt(this.statportee2max);
  fichier.WriteInt(this.statdes1);
  fichier.WriteInt(this.statdes2);
  fichier.WriteInt(this.statprecision1);
  fichier.WriteInt(this.statprecision2);
  fichier.WriteInt(this.statdegat1);
  fichier.WriteInt(this.statdegat2);
  fichier.WriteString(this.sexe);
  fichier.Close();
}
function CustomPerso::Lit() {
  File* fichier = File.Open(String.Format("custom_perso_%d", this.n), eFileWrite);
  this.nom = fichier.ReadStringBack();
  this.surnom = fichier.ReadStringBack();
  this.citation = fichier.ReadStringBack();
  this.bio = fichier.ReadStringBack();
  this.sprite = fichier.ReadStringBack();
  this.spriteavatar = fichier.ReadStringBack();
  this.spritezombivant = fichier.ReadStringBack();
  this.spriteavatarzombivant = fichier.ReadStringBack();
  this.attribut1 = fichier.ReadStringBack();
  this.attribut2 = fichier.ReadStringBack();
  this.attribut3 = fichier.ReadStringBack();
  this.cauchemardjaune = fichier.ReadStringBack();
  this.cauchemardorange = fichier.ReadStringBack();
  this.cauchemardrouge = fichier.ReadStringBack();
  this.competenceadv = fichier.ReadStringBack();
  this.cauchemardnom = fichier.ReadStringBack();
  this.cauchemardsurnom = fichier.ReadStringBack();
  this.cauchemardfamille = fichier.ReadInt();
  this.cauchemardtype = fichier.ReadInt();
  this.statportee1min = fichier.ReadInt();
  this.statportee1max = fichier.ReadInt();
  this.statportee2min = fichier.ReadInt();
  this.statportee2max = fichier.ReadInt();
  this.statdes1 = fichier.ReadInt();
  this.statdes2 = fichier.ReadInt();
  this.statprecision1 = fichier.ReadInt();
  this.statprecision2 = fichier.ReadInt();
  this.statdegat1 = fichier.ReadInt();
  this.statdegat2 = fichier.ReadInt();
  this.sexe = fichier.ReadStringBack();
  fichier.Close();
}

Ensuite tu l'utilises comme ça :

Code:
// Lecture
CustomPerso monpersolit;
monpersolit.n = 2;
monpersolit.Lit();
Display("Surnom perso %d : %s", monpersolit.n, monpersolit.surnom);

// Ecriture
CustomPerso monpersoecrit;
monpersoecrit.n = 3;
monpersoecrit.nom = "Robert";
monpersoecrit.surnom = "Bobby";
// etc.
monpersoecrit.Ecrit();

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !


Dernière édition par Kitai le Lun 13 Sep 2021 - 21:17, édité 3 fois (Raison : pas de new pour les struct)
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 221

Date d'inscription : 21/05/2020


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyLun 13 Sep 2021 - 18:22

Ah, ok je vois ! Mais du coup, les fonctions WriteString et ReadStringBack sont plus rapides que ton module ?

Et est-on sûr que SreadStringBack ou ReadInt lisent bien la bonne valeur dans le fichier ? Je vois nulle part de paramètre pour lui dire de quelle ligne il s'agit. Bon, peut-être parce que je connais pas ces fonctions en fait ! clin d'oeil
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2852

Date d'inscription : 01/08/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyLun 13 Sep 2021 - 20:56

@Baguettator a écrit:
Ah, ok je vois ! Mais du coup, les fonctions WriteString et ReadStringBack sont plus rapides que ton module ?
Comme je disais plus haut, mon module ouvre et ferme le fichier à l'écriture/lecture de chaque paramètre. Dans le code que je viens de donner, j'ouvre le fichier une seule fois et j'écris/lis tous les paramètres d'un coup

@Baguettator a écrit:
Et est-on sûr que SreadStringBack ou ReadInt lisent bien la bonne valeur dans le fichier ? Je vois nulle part de paramètre pour lui dire de quelle ligne il s'agit. Bon, peut-être parce que je connais pas ces fonctions en fait ! clin d'oeil
Je les lis dans le même ordre que je les écris (note que je crée un fichier différent par perso)

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 221

Date d'inscription : 21/05/2020


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyMar 14 Sep 2021 - 6:52

Bien bien ! Je comprends mieux ! Mais du coup, n'y aurait-il pas un moyen de faire tous les personnages dans le même fichier ? Avec un moyen qu'AGS sache à quel personnage appartient quel paramètre ?
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2852

Date d'inscription : 01/08/2006


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyMar 14 Sep 2021 - 14:51

Tu pourrais tout faire dans le même fichier, mais dans ce cas il faudrait parcourir le ficher depuis le début jusqu'au point où se trouve les données du personnage voulu (et donc implémenter une façon de se repérer dans ce ficher, ce que fait mon module, mais de façon sous-optimale).

Pour la lecture c'est pas trop compliqué, il suffirait d'ouvrir le fichier une fois et lire les données par bloc N fois, mais pour l'écriture c'est moins facile, puisque eFileAppend se contente d'ajouter des données à la fin (mais tu voudrais pouvoir remplacer des données) tandis que eFileWrite écrase toutes les données du fichier. L'option qui me vient en tête serait de lire N-1 blocs depuis le ficher ainsi que les blocs qui viennent après N, réécrire les N-1 blocs dans le fichier, écrire le bloc du personnage que tu cherches à modifiers, et enfin écrire les blocs qui suivent N. Un peu compliqué et un peu long, mais je vois pas trop d'autre solution (et c'est déjà la méthode employée par mon module de toute façon)

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 221

Date d'inscription : 21/05/2020


Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? EmptyMar 14 Sep 2021 - 15:31

Mouais, effectivement, c'est pas fou... Disons que je trouve dommage d'avoir 1 fichier par personnage, parce que si le but est de pouvoir en créer disons 50... grand sourire

Néanmoins, je garde en mémoire cette solution, je verrai à l'avenir !

Pour le moment, je dois juste patienter quelques secondes (3-4 maxi) au lancement de l'appli, c'est pas si dramatique sourire

Merci pour l'aide Kitai !
Revenir en haut Aller en bas
Contenu sponsorisé





Sauvegardes d'un jeu à l'autre ? Empty
MessageSujet: Re: Sauvegardes d'un jeu à l'autre ?   Sauvegardes d'un jeu à l'autre ? Empty

Revenir en haut Aller en bas
 
Sauvegardes d'un jeu à l'autre ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Transfers de perso vers un autre serveur, enfin !
» [Blog] La Poésie, une autre réalité est possible
» 30/04 Tournoi Legacy : Liège à L'Autre Monde
» [Débat] Une autre forme de vie...
» [Réalisé] Il faut bien craquer un moment donné ou un autre !

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: