[RGSS3] Utilisation fichier .ini
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 !
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 !
- JungleMembre
- Nombre de messages : 30
Distinction : aucune
Date d'inscription : 28/08/2012
Re: [RGSS3] Utilisation fichier .ini
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...
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...
- ZangtherMembre
- Nombre de messages : 913
Distinction : aucune
Date d'inscription : 06/02/2013
Re: [RGSS3] Utilisation fichier .ini
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.
Re: [RGSS3] Utilisation fichier .ini
Jeu 7 Fév 2013 - 12:08
Pour Azaruss, nous avons fait comme ça :
Ajout de procédure dans le module DataManager :
et modification de l'initialisation du module (ajout de l'appel à load_config) :
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.
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.
Re: [RGSS3] Utilisation fichier .ini
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 ).
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 :
Si je me souviens bien les fichiers .ini sont rédigés de la sorte :
Merci de vous être attardé sur mon cas !
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 ).
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 !
Re: [RGSS3] Utilisation fichier .ini
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 :
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.
- 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.
Re: [RGSS3] Utilisation fichier .ini
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é
EDIT : Je mets le topic en [Résolu] moi-même ou quelqu'un va le faire après t'avoir donné des points ?
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é
EDIT : Je mets le topic en [Résolu] moi-même ou quelqu'un va le faire après t'avoir donné des points ?
- ZangtherMembre
- Nombre de messages : 913
Distinction : aucune
Date d'inscription : 06/02/2013
Re: [RGSS3] Utilisation fichier .ini
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" )
- Code:
unless FileTest.exists?("Config.dat")
Re: [RGSS3] Utilisation fichier .ini
Ven 8 Fév 2013 - 20:50
ZangtherLeMagnifique a écrit:Si je peux me permettre une remarque sur ton bout de code tonyryu,
Tu peux faire
- Code:
if !FileTest.exists?( "Config.dat" )
Dans l'absolu c'est la même chose mais je trouve ça plus élégant
- Code:
unless FileTest.exists?("Config.dat")
C'est par manque d'habitude, les langages que je manipules à longueur de journée ne propose pas cette instruction.
Re: [RGSS3] Utilisation fichier .ini
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é ^^ )
(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é ^^ )
- ZangtherMembre
- Nombre de messages : 913
Distinction : aucune
Date d'inscription : 06/02/2013
Re: [RGSS3] Utilisation fichier .ini
Sam 9 Fév 2013 - 16:58
Bah unless en anglais c'est sauf.
D'un sens c'est plus lisible
Après c'est vrai que quand on n'a pas l'habitude de Ruby on y pense pas forcément.
D'un sens c'est plus lisible
Après c'est vrai que quand on n'a pas l'habitude de Ruby on y pense pas forcément.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|