Partagez
Aller en bas
Kayss
Kayss
Membre

Nombre de messages : 68
Age : 29
Distinction : aucune
Date d'inscription : 03/02/2013
http://www.reparation-iphone-lille.fr/

[RGSS3] Utilisation fichier .ini Empty [RGSS3] Utilisation fichier .ini

le Mar 5 Fév 2013 - 23:22
Alors voilà, pour mon projet j'ai besoin de stocker des "variables" dans un fichier externe. En fait, si vous avez lu la présentation de mon projet, mon jeu sera disponible en 2 langues (voir 3 avec le japonais, même si j'ai un niveau moyen en japonais pour le moment). J'ai pour cela fait un script de choix de la langue avant l'écran titre, mais le problème (vu que c'est avant l'écran titre) est qu'à chaque chargement du jeu, je dois choisir la langue et que ça influence le jeu. (Je peux éviter ça en jeu, mais pour les menus c'est raté. )
Donc je me demandais qu'elles sont les rudiments pour utiliser un fichier .ini en RGSS3 (ou en RGSS tout court d'ailleur, je n'avais jamais fait ça).
(Je tiens à préciser que j'ai recherché des solutions sur le web, mais en vain. A moins que je ne sache pas chercher correctement)
Merci d'avance Smile !
Jungle
Jungle
Membre

Nombre de messages : 30
Distinction : aucune
Date d'inscription : 28/08/2012

[RGSS3] Utilisation fichier .ini Empty Re: [RGSS3] Utilisation fichier .ini

le Mer 6 Fév 2013 - 18:09
Hum, je me demande si il a l'équivalent de FILE dans une librairie du ruby.
Si oui, avec un pointeur de type FILE tu pourrais faire de la lecture/écriture sur un fichier externe.

Edit : En fait j'ai peut être répondu à côté de ce que tu voulais...
Zangther
Zangther
Membre

Nombre de messages : 913
Distinction : aucune
Date d'inscription : 06/02/2013

[RGSS3] Utilisation fichier .ini Empty Re: [RGSS3] Utilisation fichier .ini

le Mer 6 Fév 2013 - 18:33
Farfouille un peu dans la doc RPG maker, tu trouveras dans la classe File toutes les methodes qui te serviront à lire/écrire dans un fichier. Wink
tonyryu
tonyryu
Membre

Nombre de messages : 895
Age : 39
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

[RGSS3] Utilisation fichier .ini Empty Re: [RGSS3] Utilisation fichier .ini

le Jeu 7 Fév 2013 - 12:08
Pour Azaruss, nous avons fait comme ça :

Ajout de procédure dans le module DataManager :
Code:
  #--------------------------------------------------------------------------
  # * Load config File
  #--------------------------------------------------------------------------
  def self.load_config
    if !FileTest.exists?( "Config.dat" )
      $config = {:volBGMBGS => 100,
                :volMESE => 100,
                :login => ""}
      save_config
    end
    $config = load_data("Config.dat" )
  end
 
  #--------------------------------------------------------------------------
  # * Save config File
  #--------------------------------------------------------------------------
  def self.save_config
    save_data($config, "Config.dat")
  end

et modification de l'initialisation du module (ajout de l'appel à load_config) :
Code:
  #--------------------------------------------------------------------------
  # * Initialize Module
  #--------------------------------------------------------------------------
  def self.init
    load_database
    load_config
    create_game_objects
  end

Du coup, au lancement du jeu la variable $config contient les données du fichier Config.dat

Pour enregistrer la variable $config dans le fichier, il suffit d'appeler :
DataManager.save_config

Dans notre cas, nous gérons les volumes sonores et la sauvegarde du login. Pour changer une donnée de config :
$config[:volMESE] = 25

ATTENTION : Il ne faut pas oublier de lancer le jeu en mode administrateur, car il créé un fichier sur le système, il doit donc être autorisé à le faire.
Kayss
Kayss
Membre

Nombre de messages : 68
Age : 29
Distinction : aucune
Date d'inscription : 03/02/2013
http://www.reparation-iphone-lille.fr/

[RGSS3] Utilisation fichier .ini Empty Re: [RGSS3] Utilisation fichier .ini

le Jeu 7 Fév 2013 - 13:14
Je ne savais pas qu'une variable pouvait contenir un tableau >< ! Merci pour cette info en plus.

Je pense que j'ai saisi comment ça fonctionne, en changeant le tableau sur le script présent et en modifiant mes propres script, je devrais réussir a m'en sortir ! Merci pour ton explication. Mais il me semble que VX Ace ne veuille pas lire ce fichier. Il me dit que le format est incompatible (j'ai essayé .ini, .dat, .zlib ).

[RGSS3] Utilisation fichier .ini 1360239025-tonyryu-error
Pour ce qui est de la version requise, je ne vois pas trop de quoi il s'agit. J'utilise Notepad++ donc je pense qu'il est à jour...

C'est peut-être la rédaction du-dit fichier qui est mal faite :

Code:
volBGMBGS =
volMESE =
language =

Si je me souviens bien les fichiers .ini sont rédigés de la sorte :

Code:
[volBGMBGS] =
[volMESE] =
[language] =

Merci de vous être attardé sur mon cas !
tonyryu
tonyryu
Membre

Nombre de messages : 895
Age : 39
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

[RGSS3] Utilisation fichier .ini Empty Re: [RGSS3] Utilisation fichier .ini

le Jeu 7 Fév 2013 - 14:10
woooppppopop, un fichier Marshall n'est pas éditable par un éditeur de texte. Tu l'initialises avec les méthodes que je t'ai fournit, modifié selon ton besoin :

Code:
  #--------------------------------------------------------------------------
  # * Load config File
  #--------------------------------------------------------------------------
  def self.load_config
    if !FileTest.exists?( "Config.dat" )
      $config = {:volBGMBGS => 100,
                :volMESE => 100,
                :language => "FRA"}
      save_config
    end
    $config = load_data("Config.dat" )
  end
 
  #--------------------------------------------------------------------------
  # * Save config File
  #--------------------------------------------------------------------------
  def self.save_config
    save_data($config, "Config.dat")
  end


L'utilisation du Marshall permet de simplifier la lecture et l'écriture du fichier en lui transmettant des variables bruts sans autres transformations. Et ça évite que les gens aillent saisir n'importe quoi dedans.
Kayss
Kayss
Membre

Nombre de messages : 68
Age : 29
Distinction : aucune
Date d'inscription : 03/02/2013
http://www.reparation-iphone-lille.fr/

[RGSS3] Utilisation fichier .ini Empty Re: [RGSS3] Utilisation fichier .ini

le Jeu 7 Fév 2013 - 16:06
Ah mais c'est parfait ! Justement j'avais un peu peur du fichier modifiable par n'importe qui.
Désolé, j'avais mal compris ta méthode, je me suis induit en erreur avec ma demande initiale...

En tout cas... J'ai réussi maintenant ! \o/
Par contre, je dois redémarrer le jeu après configuration du "config.dat" sinon le jeu ne prends pas en compte les données.
Un gros merci à toi Tonyryu ! Ta légende n'est pas usurpé :P

EDIT : Je mets le topic en [Résolu] moi-même ou quelqu'un va le faire après t'avoir donné des points ?
Zangther
Zangther
Membre

Nombre de messages : 913
Distinction : aucune
Date d'inscription : 06/02/2013

[RGSS3] Utilisation fichier .ini Empty Re: [RGSS3] Utilisation fichier .ini

le Ven 8 Fév 2013 - 19:45
Si je peux me permettre une remarque sur ton bout de code tonyryu,

Code:
if !FileTest.exists?( "Config.dat" )
Tu peux faire
Code:
unless FileTest.exists?("Config.dat")
Dans l'absolu c'est la même chose mais je trouve ça plus élégant Smile
tonyryu
tonyryu
Membre

Nombre de messages : 895
Age : 39
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

[RGSS3] Utilisation fichier .ini Empty Re: [RGSS3] Utilisation fichier .ini

le Ven 8 Fév 2013 - 20:50
ZangtherLeMagnifique a écrit:Si je peux me permettre une remarque sur ton bout de code tonyryu,

Code:
if !FileTest.exists?( "Config.dat" )
Tu peux faire
Code:
unless FileTest.exists?("Config.dat")
Dans l'absolu c'est la même chose mais je trouve ça plus élégant Smile

C'est par manque d'habitude, les langages que je manipules à longueur de journée ne propose pas cette instruction.
Kayss
Kayss
Membre

Nombre de messages : 68
Age : 29
Distinction : aucune
Date d'inscription : 03/02/2013
http://www.reparation-iphone-lille.fr/

[RGSS3] Utilisation fichier .ini Empty Re: [RGSS3] Utilisation fichier .ini

le Ven 8 Fév 2013 - 20:52
Puis je trouve le "!" assez explicite en fait.
(Désolé d'intervenir, je ne suis pas expert en programmation je ne suis qu'un bidouilleur et le ! m'a tout de suite parlé ^^ )
Zangther
Zangther
Membre

Nombre de messages : 913
Distinction : aucune
Date d'inscription : 06/02/2013

[RGSS3] Utilisation fichier .ini Empty Re: [RGSS3] Utilisation fichier .ini

le Sam 9 Fév 2013 - 16:58
Bah unless en anglais c'est sauf.
D'un sens c'est plus lisible Smile

Après c'est vrai que quand on n'a pas l'habitude de Ruby on y pense pas forcément.
Contenu sponsorisé

[RGSS3] Utilisation fichier .ini Empty Re: [RGSS3] Utilisation fichier .ini

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