Tutoriel: Les sauvegardes

Voir le sujet précédent Voir le sujet suivant Aller en bas

Tutoriel Tutoriel: Les sauvegardes

Message par Moutarde le Mer 19 Fév - 16:49

Bonjour,

Intro: Si vous êtes ici c'est que vous voulez en apprendre plus sur les sauvegardes dans script. Nous verrons ici comment sauvegarder des valeurs dans un fichier, comment crypter ce fichier et comment charger ces valeurs.

Version de Script: 0.64
DLLs utilisés: UltraCrypt
Difficulté: Moyenne
Compétences nécessaires:
Spoiler:
Exemple

Nous allons voir 2 méthodes, l'une fonctionne parfaitement mais n'est pas optimisée, l'autre a des chances d'avoir des bugs fonctionnalités très fonctionnelles et est beaucoup plus longue mais permet de choisir quelles variables sauvegarder (ce que ne permet pas la première).

1ère méthode:

Cette méthode est très simple, et très rapide:
Code:
game_save("save.sav");
Voila pour la sauvegarde (Le nom du fichier peut être n'importe quoi, idem pour l'extension).

Si vous voulez crypter le fichier, c'est possible:
Code:
encrypt_file("save.sav","");
Le second argument est la clef de cryptage, si vous ne mettez rien une clef de cryptage extrêmement complexe est utilisée.

Pour charger le fichier, c'est très simple. Si vous avez crypter le fichier:
Code:
encrypt_file("save.sav","");
game_load("save.sav");
On décrypte le fichier, avec la même clef de cryptage, et on charge le fichier.

Sinon utilisez uniquement:
Code:
game_load("save.sav");

2e méthode (Recommandée):

On commence par créer deux fonctions juste pour le rangement, sinon vous vous perdrez dans vos .script Wink
Donc on crée "fonction_save.script" et "fonction_load.script" et.. on les ouvres !

Dans "fonction_save.script" on va commencer par ouvrir le fichier de sauvegarde:
Code:
ini_open("save.sav");
ini_open: permet d'ouvrir un fichier pour sauvegarder des valeurs dedans (Ce n'est pas adapté pour écrire comme dans un bloc note)
("save.sav"): le nom du fichier de sauvegarde (Vous pouvez le nommer comme vous voulez, avec l'extension que vous voulez)

Ensuite on écrit les valeurs à enregistrer:
Code:
ini_write_real("cat01","var01",var01);
ini_write_real("cat01","var02",var02);
ini_write_string("cat01","var03",var03);
ini_write_real: permet d'enregistrer un nombre
ini_write_string: permet d'enregistrer une chaîne de caractère
("cat01",: la "catégorie" de la valeur, vous pouvez ranger vos données en plusieurs catégories, cela servira pour le chargement
"var01"/"var02"/"var03",: Le nom de la valeur, ici un chiffre, cela servira pour le chargement aussi (Deux valeur ayant le même nom dans la même catégorie s'écraseront, seul la dernière valeur sera gardée).
var01/var02/var03: les variables à sauvegarder.

Puis on ferme le fichier ini par:
Code:
ini_close();
Et enfin on crypt le fichier entier avec un petit message sympathique:
Code:
encrypt_file("save.sav","");
show_message("Partie sauvegardée avec succès");
encrypt_file("save.sav",: Permet de crypter le fichier "save.sav"
""): Ici est la clef de cryptage, si vous ne mettez rien une clef de cryptage extrêmement complexe est utilisée.

Pour charger ces valeurs, c'est très simple. Comme on a fait pour la fonction de sauvegarde, on va effectuer les mêmes actions mais au lieu d'écrire des valeurs, on va les lire.

Dans "fonction_load.script":

Décryptage du fichier:
Code:
encrypt_file("save.sav","");
Utilisez la même clef de cryptage que lors de la première étape.

Ouverture du fichier de sauvegarde:
Code:
ini_open("save.sav");
Remplacez "save.sav" par le nom du fichier que vous lui avez donné lors de la première étape.

Puis on récupère les valeurs
Code:
var01=ini_read_real("cat01","var01","Defaut");
var02=ini_read_real("cat01","var02","Defaut");
var03=ini_read_string("cat01","var03","Defaut");
On stock les valeurs dans une variable pour pouvoir les utiliser plus tard dans votre application.
Le troisième argument est la valeur par défaut si rien n'est trouvé dans le fichier de sauvegarde.

Et on referme le fichier tout en le réencryptant:
Code:
ini_close();
encrypt_file("save.sav","");

Je vous conseille de faire une vérification pour savoir si la valeur est trouvée:
Code:
if(var01 == "Defaut") { erreur("Erreur lors du chargement de var01"); }
if(var02 == "Defaut") { erreur("Erreur lors du chargement de var02"); }
if(var03 == "Defaut") { erreur("Erreur lors du chargement de var03"); }

Pour utiliser ces fonctions, il faut que vous les appeliez dans votre code au moment de la sauvegarde, dans "program.script" :
Code:
//Sauvegarde
fonction("fonction_save");
//Chargement
fonction("fonction_load");

Et voila, fin du tutoriel, si vous avez une question n'hésitez pas à me contacter:
Contacter Moutarde a écrit:Skype: Moutarde31270
Twitter: http://twitter.com/Moutard3
Ou à la suite de ce post...
avatar
Moutarde
Expert de Script (2D, Multi, Web, DLL)
Expert de Script (2D, Multi, Web, DLL)

Messages : 105
Date d'inscription : 02/06/2013
Localisation : Toulouse

Projet(s)
Niveau de connaissances dans Script: Professionnel
Spécialité: Programmeur

Voir le profil de l'utilisateur http://moutarde.fr.nf/

Revenir en haut Aller en bas

Tutoriel Re: Tutoriel: Les sauvegardes

Message par UltraBill le Mar 8 Juil - 20:39

Très bon tutoriel , qui explique bien 2 méthode à suivre pour faire des sauvegardes simple et efficace Smile
petit préférence pour la 2eme quand même ,c'est celle que j'utilise dans mon jeu "asteroid"
avatar
UltraBill
Expert de Script (2D, IA et DLL)
Expert de Script (2D, IA et DLL)

Messages : 45
Date d'inscription : 29/06/2013
Age : 19
Localisation : pas loin de Fort Boyard

Projet(s)
Niveau de connaissances dans Script: Professionnel
Spécialité: Programmeur

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Tutoriel Re: Tutoriel: Les sauvegardes

Message par Moutarde le Mar 8 Juil - 20:42

UltraBill a écrit:Très bon tutoriel , qui explique bien 2 méthode à suivre pour faire des sauvegardes simple et efficace Smile
petit préférence pour la 2eme quand même ,c'est celle que j'utilise dans mon jeu "asteroid"

Merci, moi aussi je préfère la seconde méthode Wink
avatar
Moutarde
Expert de Script (2D, Multi, Web, DLL)
Expert de Script (2D, Multi, Web, DLL)

Messages : 105
Date d'inscription : 02/06/2013
Localisation : Toulouse

Projet(s)
Niveau de connaissances dans Script: Professionnel
Spécialité: Programmeur

Voir le profil de l'utilisateur http://moutarde.fr.nf/

Revenir en haut Aller en bas

Tutoriel Re: Tutoriel: Les sauvegardes

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

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