[Tuto] éditer son fichier de sauvegarde

Postez ici vos tutoriels, vos impressions, etc... Retrouvez aussi les vidéos tutoriels de Youtube!
Avatar de l’utilisateur
skypop
Messages : 65
Inscription : 07 février 2014, 05:36
Contact :

[Tuto] éditer son fichier de sauvegarde

Message par skypop » 02 août 2015, 13:37

Cette astuce peut aussi bien servir à tricher, réparer une injustice ou palier à une fonctionnalité manquante du jeu (à vous de voir)
En tout cas ça peut rendre bien des services.

Il s'agit de modifier des valeurs dans son fichier de sauvegarde.
Pour cela vous aurez besoin d'un éditeur "texte brut", comme notepad (windows) ou simpletext (mac). Cependant, je vous recommande Notepad++ (gratuit, sous licence libre), qui est plus agréable à utiliser.
N'utilisez pas Word, Wordpad, OpenOffice ou autre logiciels de traitement de texte : ils sont à base d'un format de texte enrichi (on peut mettre le texte en gras, choisir la police etc.). Le risque étant de corrompre votre sauvegarde, en plus d'être très peu pratique et approprié.

Autre outil potentiellement utile, notamment si vous dépassez du cadre de ce tutoriel : Winmerge (gratuit, licence libre) ou autre logiciel semblable : il permet d'ouvrir deux fichiers texte-brut (ou deux versions d'un même fichier) et de comparer facilement ce qui est identique, de ce qui diffère.

Vous devrez aussi, bien identifier vos fichiers de sauvegarde.
Où : Trouver le dossier du jeu. Si vous êtes sur Steam : C:\Program Files\Steam\ :arrow: dossier SteamApps :arrow: dossier common :arrow: dossier Kerbal Space Program
Si vous y êtes, identifiez l'emplacement des sauvegardes : dossier saves :arrow: Là se trouve un dossier pour chacune des parties que vous avez lancé. Ouvrez celui correspondant à la partie que vous souhaitez éditer

Quoi : Le fichier principal est nommé persistent.sfs qui correspond aux sauvegardes automatiques
Il y a également le ficher quicksave.sfs qui correspond aux sauvegardes rapides (Quicksave quand vous appuyez sur la touche F5 en jeu)
Ainsi qu'autant de fichier au nom référant aux différentes sauvegardes que vous aurez créé.

Avertissement :
Par précaution, faites toujours une copie originale d'un fichier avant d'aller trifouiller dedans. Comme ça, en cas d'erreur, supprimez le fichier et remplacez-le par cette copie de sécurité.


Tutoriels déjà dispo dans le forum sur ce thème : Pour éviter de m'éparpiller, je vais faire un sommaire par cas de figure.
Sommaire : (chaque lien vous mènera à un post du topic, traitant ce sujet) (note: je pourrais en rajouter au fur et à mesure. car je ne peux pas remplir un topic exhaustif d'une traite...)
Dernière modification par skypop le 03 août 2015, 20:29, modifié 7 fois.

Avatar de l’utilisateur
skypop
Messages : 65
Inscription : 07 février 2014, 05:36
Contact :

Re: [Tuto] éditer son fichier de sauvegarde

Message par skypop » 02 août 2015, 14:38

Ravitailler un vaisseau
Par exemple, approvisionner 100 unités de monopropellant.
  • Bien noter le nom du vaisseau (de façon à le pas risquer de le confondre)
  • Bien noter le nom d'un des réservoirs de monopropellant dans lequel on compte injecter les 100 unité, et s'assurer qu'il peut effectivement contenir cette quantité.
  • Faire une copie du fichier "persistent.sfs" et la garder de côté (au cas où, pour réparer une bêtise de faite)
  • Ouvrir le fichier persistent.sfs avec Notepad++ (ou lancer Notepadd++ et glisser le fichier dedans)
Tout d'abord il s'agira de retrouver la portion correspondant au vaisseau que vous comptez ravitailler.
Pour ne pas perdre de temps, utilisez la fonction de recherche : Menu Recherche :arrow: Rechercher (Ctrl + F)
Dans le champs de recherche inscrivez VESSEL
Si cette option est disponible, cochez "Respecter la casse" (ce qui veut dire que la recherche tiendra compte des lettres en majuscules/minuscules)

Cliquez sur le bouton Suivant
Et vous verrez défiler chacun de vos vaisseaux en cours de vol.
Dans le code, cherchez la mention suivante :

Code : Tout sélectionner

			name = Minmus SkyCrane
Elle indique le nom que vous avez donné au vaisseau (ici : Minmus SkyCrane)
Image

Maintenant il s'agit de parcourir le contenu de ce vaisseau, trouver un réservoir approprié, et y injecter la quantité de carburant souhaité.
Pour que ce soit plus pratique, je vous invite à cliquer sur l'accolade qui se trouve juste en dessous du mot VESSEL (de placer le curseur du texte à cet endroit)
Image
Cela a pour effet de surligner en rouge le cran de tabulation jusqu'à ce que cette accolade soit refermée. Comme ça vous ne manquerez pas de remarquer si vous passez à un autre vaisseau.

Entre ces deux accolade, vous ne tarderez pas à trouver un bon nombre de sous-parties intitulées PART. Ces sous-parties sont également ouvertes puis refermées par des accolades. Ces sous-parties définissent chaque pièce de votre vaisseau, en partant (à priori) du haut vers le bas.
Faites défiler le fichier en restant attentif, jusqu'à trouver une sous-partie PART correspondant à un réservoir.

Encore une fois, fiez-vous à la propriété name = qui désigne le nom de code de la pièce.
En principe, le nom de code reste assez explicite. Voici le premier réservoir que j'ai trouvé :
Image

"RCSTank1-2" comme ça, je ne sais pas trop à quel type de réservoir il correspond.
Il faut être malin :
  • soit trouver sur internet une liste des pièces avec leur nom de code (peut-être dans une documention des créateurs de mods)
  • soit se remémorer l'ordre et la construction de son vaisseau (quitte à retourner en jeu vérifier)
  • soit deviner, en examinant le code à la recherche d'indices
Là par exemple, vers la fin de la sous-partie PART je découvre un très bon indice :

Code : Tout sélectionner

				RESOURCE
				{
					name = MonoPropellant
					amount = 293.116581885469
					maxAmount = 750
					flowState = False
					isTweakable = True
					hideFlow = False
					flowMode = Both
				}
La propriété maxAmount indique la contenance maximale, elle est de 750. Je comprend qu'il s'agit du FL-R1 RCS Fuel Tank (le gros réservoir de monopropellant)
ça tombe bien, c'est celui que je comptais ravitailler.

Pour ça, il suffit de modifier la valeur assignée à la propriété amount qui correspond à la quantité de carburant actuellement dans le réservoir.
Je peux remplacer le nombre 293.116581885469 par 750, comme ça le réservoir sera plein. Mais mon projet était juste de rajouter 100 unités, je peux aussi bien inscrire 393.116581885469 (la même quantité +100)

Je sauvegarde le fichier.
Plus qu'à relancer le jeu, et vérifier que tout est OK.
Si ce n'est pas le cas : supprimez le fichier persistent.sfs pour le remplacer par la copie de sécurité que vous aviez fait au préalable.

Dans le cas où vous souhaiteriez ravitailler autre chose que du monopropellant :
Procédez de la même façon pour identifier la pièce à ravitailler, et inspectez la sous-sous-partie RESOURCE
Par exemple :

Cas particulier pour le carburant qui combine Liquid fuel et Oxidizer : la sous-partie PART contiendra deux sous-sous-parties RESOURCE. C'est à dire une pour chaque fluide. Songez donc à ravitailler les deux, à égales proportions.

Code : Tout sélectionner

				RESOURCE
				{
					name = LiquidFuel
					amount = 0
					maxAmount = 360
					flowState = True
					isTweakable = True
					hideFlow = False
					flowMode = Both
				}
				RESOURCE
				{
					name = Oxidizer
					amount = 0
					maxAmount = 440
					flowState = True
					isTweakable = True
					hideFlow = False
					flowMode = Both
				}
Ravitaillement en électricité

Code : Tout sélectionner

			RESOURCE
				{
					name = ElectricCharge
					amount = 34.7751339269755
					maxAmount = 120
					flowState = True
					isTweakable = True
					hideFlow = False
					flowMode = Both
				}
Minerais

Code : Tout sélectionner

				RESOURCE
				{
					name = Ore
					amount = 1500
					maxAmount = 1500
					flowState = True
					isTweakable = True
					hideFlow = False
					flowMode = Both
				}
Je n'ai pas dans ma sauvegarde de vaisseau utilisant le carburant pour avions, mais je suppose qu'il s'agira simplement de LiquidFuel.
Je n'ai pas non plus de vaisseau équipés de propulseurs ioniques, mais je crois que ces quelques exemples suffiront à vous aider à identifier ce carburant.

Avatar de l’utilisateur
Lingerchef
Messages : 192
Inscription : 04 juin 2015, 21:25
Localisation : s'est encore perdu en cherchant Duna
Contact :

Re: [Tuto] éditer son fichier de sauvegarde

Message par Lingerchef » 02 août 2015, 16:34

Merci
En faite j'essayais d'ouvrir le fichier persistent avec Word pour profiter de la fonction recherche de Word. ( Je savais pas que le bloc-note en avait une).
Bref, trop de caractère ou trop de page, mon Word plantait systématiquement.
"Rien ne se perd, rien ne se crée, tout se transforme" Lavoisier, 1777
"Ça sert à rien d'être écolo, vaut mieux être raisonnable" Moi, 2010

Avatar de l’utilisateur
skypop
Messages : 65
Inscription : 07 février 2014, 05:36
Contact :

Re: [Tuto] éditer son fichier de sauvegarde

Message par skypop » 02 août 2015, 17:03

Word n'est pas un éditeur de texte brut, mais un éditeur de texte enrichi (ce qui signifie qu'on peut mettre le texte en gras, choisir la police, etc.)
C'est complètement inapproprié pour ce genre de chose : il faut que le fichier soit et reste en texte brut (c'est à dire du texte point barre), au risque de corrompre ta sauvegarde, car le format de fichier est différent.
Les meilleurs outils sont les éditeurs conçu pour les codeurs. Notepad++ est le compromis idéal entre le bloc note de base et les éditeurs blindés de fonctionnalités des codeurs.

Du coups j'ai édité le premier post pour insister sur ce point.

Avatar de l’utilisateur
Slift
Messages : 143
Inscription : 18 juillet 2015, 12:04
Contact :

Re: [Tuto] éditer son fichier de sauvegarde

Message par Slift » 03 août 2015, 16:03

Je rencontre un problème avec cette edition de sauvegarde justement..

je voudrais renommer quelques Kerbals..

Et je le fais dans le fichier de sauvegarde via notepad (paragraphe "ROSTER").

Je comprend pas quand je lance le jeu les kerbals sont bien renommés mais changent de classe (passent de pilot à enginer ,de enginer à scientifique etc..)

Comment se fait il qu'ils changent de métier comme ca ??


edit..

Ok je viens de voir sur le net que leurs professions sont en fonction de leurs noms..et que c'est un peu au petit bonheur la chance ..^^
https://steamcommunity.com/app/220200/d ... 252639390/

Désolé de vous dire que si c'est ça ...c'est du Grand N'importe Quoi..

Redit (qui pourrait servir à ce tuto.)

la team Alpha (jebedhia ...et compagnie) ont des rôles assignés et fixes..

les autres c'est que du Random , donc chaque changement de nom sur un Kerbal lui réassignera une classe au pif..
--La route est longue...Mais la voie est libre--

Avatar de l’utilisateur
skypop
Messages : 65
Inscription : 07 février 2014, 05:36
Contact :

Re: [Tuto] éditer son fichier de sauvegarde

Message par skypop » 03 août 2015, 19:16

OK, en effet, j'avais remarqué que la profession ne figurait pas dans les données.
Merci pour en avoir démystifié les conséquences. J'ajoute ça au sommaire. ;)

Je complète.

Donc les Kerbals sont définis dans le bloc ROSTER, situé à la fin du fichier.
Voici un exemple :

Code : Tout sélectionner

		KERBAL
		{
			name = Jebediah Kerman
			gender = Male
			type = Crew
			brave = 0.5
			dumb = 0.5
			badS = True
			tour = False
			state = Available
			ToD = 0
			idx = 0
			CAREER_LOG
			{
				flight = 35
				0 = Recover
				1 = ExitVessel,Kerbin
				1 = Land,Kerbin
				1 = Flight,Kerbin
				1 = BoardVessel,Kerbin
				1 = Recover
				2 = Flight,Kerbin
				2 = Land,Kerbin
				2 = ExitVessel,Kerbin
				2 = BoardVessel,Kerbin
				2 = Recover
				3 = Flight,Kerbin
				3 = Land,Kerbin
				3 = Recover
				4 = Flight,Kerbin
				4 = Suborbit,Kerbin
				4 = Land,Kerbin
				4 = Recover
				5 = Flight,Kerbin
				5 = Suborbit,Kerbin
				5 = Orbit,Kerbin
				5 = Land,Kerbin
				5 = Recover
				6 = Land,Kerbin
				6 = Flight,Kerbin
				6 = Suborbit,Kerbin
				6 = Recover
				7 = Land,Kerbin
				7 = Flight,Kerbin
				7 = Suborbit,Kerbin
				7 = Orbit,Kerbin
				7 = Recover
				8 = Recover
				9 = Land,Kerbin
				9 = Flight,Kerbin
				9 = Suborbit,Kerbin
				9 = Orbit,Kerbin
				9 = ExitVessel,Kerbin
				9 = BoardVessel,Kerbin
				9 = Recover
				10 = Flight,Kerbin
				10 = Suborbit,Kerbin
				10 = Land,Kerbin
				10 = Recover
				11 = Flight,Kerbin
				11 = Suborbit,Kerbin
				11 = Orbit,Kerbin
				11 = Land,Kerbin
				11 = Recover
				12 = Flight,Kerbin
				12 = Suborbit,Kerbin
				12 = Orbit,Kerbin
				12 = Land,Kerbin
				12 = Recover
				13 = Flight,Kerbin
				13 = Suborbit,Kerbin
				13 = Orbit,Kerbin
				13 = ExitVessel,Kerbin
				13 = BoardVessel,Kerbin
				13 = Flyby,Mun
				13 = Escape,Mun
				13 = Flyby,Kerbin
				13 = Land,Kerbin
				13 = Recover
				14 = Flight,Kerbin
				14 = Suborbit,Kerbin
				14 = Orbit,Kerbin
				14 = Land,Kerbin
				14 = ExitVessel,Kerbin
				14 = BoardVessel,Kerbin
				14 = Recover
				15 = ExitVessel,Kerbin
				15 = Land,Kerbin
				15 = Flight,Kerbin
				15 = BoardVessel,Kerbin
				15 = Recover
				16 = Flight,Kerbin
				16 = Suborbit,Kerbin
				16 = Orbit,Kerbin
				16 = Land,Kerbin
				16 = Recover
				17 = Flight,Kerbin
				17 = Suborbit,Kerbin
				17 = Orbit,Kerbin
				17 = Flyby,Mun
				17 = Escape,Mun
				17 = Flyby,Kerbin
				17 = Land,Kerbin
				17 = ExitVessel,Kerbin
				17 = BoardVessel,Kerbin
				17 = Recover
				18 = Land,Kerbin
				18 = Recover
				19 = Flight,Kerbin
				19 = Suborbit,Kerbin
				19 = Orbit,Kerbin
				19 = Land,Kerbin
				19 = Recover
				20 = Flight,Kerbin
				20 = Suborbit,Kerbin
				20 = Orbit,Kerbin
				20 = Land,Kerbin
				20 = Recover
				21 = Flight,Kerbin
				21 = Suborbit,Kerbin
				21 = Orbit,Kerbin
				21 = Flyby,Minmus
				21 = Escape,Minmus
				21 = ExitVessel,Minmus
				21 = BoardVessel,Minmus
				21 = Flyby,Kerbin
				21 = Land,Kerbin
				21 = Recover
				22 = Flight,Kerbin
				22 = Suborbit,Kerbin
				22 = Orbit,Kerbin
				22 = Flyby,Mun
				22 = Escape,Mun
				22 = Orbit,Mun
				22 = Suborbit,Mun
				22 = Land,Mun
				22 = ExitVessel,Mun
				22 = PlantFlag,Mun
				22 = BoardVessel,Mun
				22 = Flyby,Kerbin
				22 = Land,Kerbin
				22 = Recover
				23 = Flight,Kerbin
				23 = Suborbit,Kerbin
				23 = Orbit,Kerbin
				23 = ExitVessel,Kerbin
				23 = BoardVessel,Kerbin
				23 = Flyby,Minmus
				23 = Escape,Minmus
				23 = Orbit,Minmus
				23 = ExitVessel,Minmus
				23 = BoardVessel,Minmus
				23 = Suborbit,Minmus
				23 = Flyby,Kerbin
				23 = Land,Kerbin
				23 = Recover
				24 = Recover
				25 = Flight,Kerbin
				25 = Suborbit,Kerbin
				25 = Orbit,Kerbin
				25 = Flyby,Minmus
				25 = Escape,Minmus
				25 = Orbit,Minmus
				25 = Suborbit,Minmus
				25 = Land,Minmus
				25 = ExitVessel,Minmus
				25 = PlantFlag,Minmus
				25 = BoardVessel,Minmus
				25 = Flyby,Kerbin
				25 = Flyby,Mun
				25 = Escape,Mun
				25 = Land,Kerbin
				25 = Recover
				26 = Flight,Kerbin
				26 = Suborbit,Kerbin
				26 = Orbit,Kerbin
				26 = Land,Kerbin
				26 = Recover
				27 = Land,Kerbin
				27 = Recover
				28 = Flight,Kerbin
				28 = Suborbit,Kerbin
				28 = Orbit,Kerbin
				28 = Flyby,Minmus
				28 = Escape,Minmus
				28 = Orbit,Minmus
				28 = Flyby,Kerbin
				28 = Land,Kerbin
				28 = Recover
				29 = Flight,Kerbin
				29 = Suborbit,Kerbin
				29 = Orbit,Kerbin
				29 = Flyby,Mun
				29 = Escape,Mun
				29 = Flyby,Kerbin
				29 = Flyby,Minmus
				29 = Escape,Minmus
				29 = Escape,Kerbin
				29 = Flyby,Sun
				29 = Orbit,Sun
				29 = ExitVessel,Sun
				29 = BoardVessel,Sun
				29 = Land,Kerbin
				29 = Recover
				30 = Flight,Kerbin
				30 = Suborbit,Kerbin
				30 = Orbit,Kerbin
				30 = Flyby,Minmus
				30 = Escape,Minmus
				30 = Orbit,Minmus
				30 = Suborbit,Minmus
				30 = Flyby,Kerbin
				30 = Land,Kerbin
				30 = Recover
				31 = Flight,Kerbin
				31 = Suborbit,Kerbin
				31 = Land,Kerbin
				31 = Recover
				32 = Land,Kerbin
				32 = Recover
				33 = Land,Kerbin
				33 = Recover
				34 = Land,Kerbin
				34 = Recover
			}
			FLIGHT_LOG
			{
				flight = 35
			}
		}
Je n'ai pas eu l'occasion de tester des modifications très avancées dessus, hormis de ramener certains Kerbals à la vie (pour ceux injustement assassinés par un bug)

Voici une base de documentation (mais attention, car elle n'a pas l'air très fraîche) : http://wiki.kerbalspaceprogram.com/wiki ... statistics
Qui explicite les propriétés ainsi :
  • name = (string) Nom complet, visuellement limité à 18 caractères environ.
  • brave = (float) Courage, nombre compris entre 0 et 1.
  • dumb = (float) Stupidité, nombre compris entre 0 et 1.
  • badS = (bool) Personalité "Badass", la valeur est vrai ou fausse (true or false).
  • state = Statut du kerbal. Pren comme valeur “unassigned”, “On mission”, “EVA” ou “Dead”.
    :!: J'ai un gros doute, car ce que je lis dans ma propre sauvegarde c'est plutôt "Available" ou "Assigned" (mais je ne suis pas exhaustif)
  • ToD = Time of death. Cette documentation recommande de ne pas modifier cette valeur (ou de recopier celle d'un Kerbal préexistant)
  • idx = La doc recommande également de ne pas modifier cette valeur. Pour les nouveaux kerbal (?) elle est définie à -1.
Dernière modification par skypop le 03 août 2015, 20:33, modifié 2 fois.

Avatar de l’utilisateur
skypop
Messages : 65
Inscription : 07 février 2014, 05:36
Contact :

Re: [Tuto] éditer son fichier de sauvegarde

Message par skypop » 03 août 2015, 20:28

Ramener un Kerbal à la vie
Utile s'il vous arrivait ce genre de mésaventure (Bug, comme si le kerbal s'est retrouvé aspiré dans un trou noir..)

Méthode habituelle :
  • Bien noter le nom du Kerbal concerné (ce qui permet de le retrouver directement)
  • Faire une copie du fichier "persistent.sfs" et la garder de côté (au cas où, pour réparer une bêtise de faite)
  • Ouvrir le fichier persistent.sfs avec Notepad++ (ou lancer Notepadd++ et glisser le fichier dedans)
Tout d'abord il s'agira de retrouver la portion correspondant au différents kerbals recrutés.
Pour ne pas perdre de temps, utilisez la fonction de recherche : Menu Recherche :arrow: Rechercher (Ctrl + F)
Dans le champs de recherche, plusieurs solutions :
:arrow: inscrivez state = Dead et vous tomberez sur le premier cadavre que contient votre sauvegarde
:arrow: inscrivez name = Bill Kerman c'est à dire "name = " suivi du nom du kerbal (ça évite de tomber sur chaque mentions du nom dans les données d'autres objets. Par ex: les drapeaux qui enregistrent le nom du kerbal qui l'a planté)
:arrow: soit vous inscivez ROSTER et vous tomberez au début de la liste des kerbals

Un bloc contenant toutes les données d'un kerbal commence par le mot KERBAL, suivi d'accolade contenant toutes ses données.
Voici un exemple :

Code : Tout sélectionner

		KERBAL
		{
			name = Jebediah Kerman
			gender = Male
			type = Crew
			brave = 0.5
			dumb = 0.5
			badS = True
			tour = False
			state = Dead
			ToD = 0
			idx = 0
			CAREER_LOG
			{
				flight = 2
				0 = Recover
				1 = ExitVessel,Kerbin
				1 = Land,Kerbin
				1 = Flight,Kerbin
				1 = BoardVessel,Kerbin
				1 = Recover
				2 = Flight,Kerbin
				2 = Land,Kerbin
				2 = ExitVessel,Kerbin
				2 = Flight,Kerbin
				2 = Escape,Kerbin
				2 = Die
			}
			FLIGHT_LOG
			{
				flight = 2
			}
		}
Il suffit de replacer la ligne suivante :

Code : Tout sélectionner

			state = Dead
Par :

Code : Tout sélectionner

			state = Available
Pour bien faire, vous pouvez aussi effacer ce triste épisode de sa carrière.
Dans la sous-partie CAREER_LOG, se trouve une liste numérotés de chaque mission et les étapes effectuées.
Le numéro correspond à la mission, donc si plusieurs lignes indiquent le même numéro c'est que chacune de ces étapes ont eu lieu lors du même vol.

Dans cet exemple, la mission tragique est la n°2 (attention, en programmation on ne commence pas à compter à partir de 1, mais à partir de zéro. Donc le vol n°2 est le 3e vol de sa carrière)
J'efface juste ces quelques lignes :

Code : Tout sélectionner

				2 = Flight,Kerbin
				2 = Land,Kerbin
				2 = ExitVessel,Kerbin
				2 = Flight,Kerbin
				2 = Escape,Kerbin
				2 = Die
NB: dans l'élément CAREER_LOG et FLIGHT_LOG, se trouve cette ligne :

Code : Tout sélectionner

				flight = 2
Ce que j'ai remarqué, c'est que lorsque le kerbal est "Available", la valeur de flight est égale au nombre de missions de sa carrière +1
Lorsqu'il est en mission, ou mort, la valeur de flight correspond au numéro de la mission en cours (ou la mission où il a trouvé la mort)
Je pense que flight est un compteur, auquel est ajouté +1 à chaque fois que le kerbal est récupéré (recover)

Résultat final :

Code : Tout sélectionner

		KERBAL
		{
			name = Jebediah Kerman
			gender = Male
			type = Crew
			brave = 0.5
			dumb = 0.5
			badS = True
			tour = False
			state = Available
			ToD = 0
			idx = 0
			CAREER_LOG
			{
				flight = 2
				0 = Recover
				1 = ExitVessel,Kerbin
				1 = Land,Kerbin
				1 = Flight,Kerbin
				1 = BoardVessel,Kerbin
				1 = Recover
			}
			FLIGHT_LOG
			{
				flight = 2
			}
		}

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit