Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: "Dread Mac Farlane", (...) / Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

478 connectés actuellement

29431327 visiteurs
depuis l'ouverture

5703 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Offgame

RPG Maker Détente

Le Comptoir Du clickeur

Le Temple de Valor

RPG Fusion

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RMXP] Lecture d'une variable texte dans un fichier de sauvegarde


Gregoose88 - posté le 03/08/2015 à 20:22:48 (4 messages postés)

❤ 0

Domaine concerné: Script
Logiciel utilisé: RMXP
Salut a tous !

J'expérimente une modification de l'interface de sauvegarde/chargement dans RMXP, cependant un petit "problème" s'offre a moi (ça serait pas drôle sinon).

Au début du jeu j'offre la possibilité au joueur de nommer le héros comme il le souhaite. Lorsqu'il décide de sauvegarder, le fichier de sauvegarde se crée, avec notamment les noms des héros de la base de donnée (classique).

Ce que j'aimerai faire, c'est écrire (avec une police style script, histoire d'imiter une "signature") le nom du héros principal SELON LA SAUVEGARDE.

J'ai naïvement commencé par écrire :

Portion de code : Tout sélectionner

1
self.contents.draw_text(x, y, width, height, $data_actors[0].name)

(ou un truc du genre), cependant la signature sur toutes les sauvegardes était évidemment celle du héros de la partie actuelle.

Un petit screen histoire de vous montrer :

Spoiler (cliquez pour afficher)



Il faudrait simplement que je récupère le nom du premier héros dans la base de données dans un fichier de sauvegarde (le reste je peux gérer seul) ;)

Merci pour votre aide ! :)
Gregoose88

Le Facebook de moi | L'outil YouTube ;)


Wano - posté le 03/08/2015 à 20:45:08 (6974 messages postés)

❤ 0

Ahah j'avais fait ça pour mon jeu.

Tu dois écrire dans un fichier texte qui regroupera tous les noms de tes héros, tu dois le faire au moment où le joueur choisi le nom du héro dans une partie. L'idée c'est de mettre ce fichier à jour à chaque nouvelle partie créée. Je ne sais pas si tu connais la syntaxe pour lecture et écriture de fichiers, c'est :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
#mode lecture 
f = File.open("save_names.txt",'r')
tab = f.readlines() #tableau contenant chaque ligne du fichier
 
#mode écriture 
file = File.open("save_names.txt",'w')
file.write(le_nom_du_hero_de la partie)



Sans oublier de fermer le flux avec

Portion de code : Tout sélectionner

1
f.close()



Je te laisse réfléchir sur comment organiser ça.


Edit : en fait je me rends compte que j'ai pas fait comme toi, moi je donnais des noms aux parties, d'où la nécessité d'enregistrer dans un fichier.

Inspire toi de ce script : http://britania.ws/board/index.php?/topic/251-tuto-script-sauvegarde-am%C3%A9liorer/

Regarde notamment le module Files qui récupère toutes les données pour chaque fichier avec Marshal.load(file).


Gregoose88 - posté le 03/08/2015 à 21:27:27 (4 messages postés)

❤ 0

Bon au final j'ai réussi a m'en sortir, pour les petits curieux :

• Ajout dans Scene_Save (ligne 67) :

Portion de code : Tout sélectionner

1
Marshal.dump($game_party.actors[0].name, file)

en dessous de Marshal.dump(characters, file)

• Ajout dans Scene_Load (ligne 77) :

Portion de code : Tout sélectionner

1
@signature = Marshal.load(file)

en dessous de characters = Marshal.load(file)

• Ajout dans Window_SaveFile (ligne 31) :

Portion de code : Tout sélectionner

1
@signature = Marshal.load(file)

en dessous de characters = Marshal.load(file)
Ensuite dans la fonction refresh, ajoutez

Portion de code : Tout sélectionner

1
self.contents.draw_text(x,y,width,height,@signature)



Et voila ! :D

Le Facebook de moi | L'outil YouTube ;)


Nukidoudi - posté le 03/08/2015 à 23:22:06 (733 messages postés) -

❤ 0

yo

vaut juste mieux utiliser "load_data" plutot que Marshal parce que sinon ça ne passe pas si le projet est crypté :)

https://xvw.lol


Gregoose88 - posté le 04/08/2015 à 00:09:09 (4 messages postés)

❤ 0

Wano a dit:

Ahah j'avais fait ça pour mon jeu.
Tu dois écrire dans un fichier texte qui regroupera tous les noms de tes héros, tu dois le faire au moment où le joueur choisi le nom du héro dans une partie. L'idée c'est de mettre ce fichier à jour à chaque nouvelle partie créée.


C'est une super alternative Wano, j'ai juste a mettre la variable en question ($game_party.blabla ...) dans le fichier texte ;) étant donné que selon Nukidoudi :

Nukidoudi a dit:

vaut juste mieux utiliser "load_data" plutot que Marshal parce que sinon ça ne passe pas si le projet est crypté :)



Ça me permettrait de pas perdre mes données, faudrait que je teste avec le projet crypté pour voir, merci à vous deux les gars ;)

Le Facebook de moi | L'outil YouTube ;)


Wano - posté le 04/08/2015 à 00:58:17 (6974 messages postés)

❤ 0

Perso j'ai pas eu de problèmes avec le script de Samarium, c'est une bonne base pour personnaliser l'interface de sauvegarde/chargement. On récupère sans aucun problème le niveau de chaque perso de l'équipe, alors y aura aucun soucis pour récupérer le nom du premier. ;)

Tu copies le module Files :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
module Files
  class Donnees
    # Index du fichier
    attr_accessor :file_index
    # Donnée de la classe File
    attr_reader :time_stamp
    # Donées du ficher rxdata
    attr_reader :characters
    attr_reader :frame_count
    attr_reader :system
    attr_reader :switches
    attr_reader :variables
    attr_reader :self_switches
    attr_reader :screen
    attr_reader :actors
    attr_reader :party
    attr_reader :troop
    attr_reader :map
    attr_reader :player
    def initialize(file_index = 0)
      @file_index = file_index
      if exist?  
        file = File.open(filename, "r")
        @time_stamp         = file.mtime
        @characters         = Marshal.load(file)
        @frame_count        = Marshal.load(file)
        @system             = Marshal.load(file)
        @switches           = Marshal.load(file)
        @variables          = Marshal.load(file)
        @self_switches      = Marshal.load(file)
        @screen             = Marshal.load(file)
        @actors             = Marshal.load(file)
        @party              = Marshal.load(file)
        @troop              = Marshal.load(file)
        @map                = Marshal.load(file)
        @player             = Marshal.load(file)
        file.close
      end
    end
    def exist?
      return FileTest.exist?(filename)
    end
    def filename
      return "Save#{file_index + 1}.rxdata"
    end
  end  
end



Et ensuite simplement :

Portion de code : Tout sélectionner

1
2
@game = Files::Donnees.new(file)
actor_name = @game.party.actors[0].name



La solution d'écrire dans un fichier texte c'est un peu limite, c'est plutôt réservé à des infos que tu ne peux vraiment pas stocker dans la BDD de RM. :)

Index du forum > Entraide > [RESOLU] [RMXP] Lecture d'une variable texte dans un fichier de sauvegarde

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers