AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



-35%
Le deal à ne pas rater :
-35% sur la machine à café Expresso Delonghi La Specialista Arte
359.99 € 549.99 €
Voir le deal

Partagez
 

 [Résolu] Question RGSS (Problème RPG::MapInfo)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
gagay
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
gagay


Age : 35
Inscrit le : 04/05/2009
Messages : 51

[Résolu] Question RGSS (Problème RPG::MapInfo) Empty
MessageSujet: [Résolu] Question RGSS (Problème RPG::MapInfo)   [Résolu] Question RGSS (Problème RPG::MapInfo) Icon_minitimeDim 8 Aoû 2010 - 1:35

Bonjour amis scripteurs!

Afin de conclure mon premier script, j'aurais besoin d'effectuer un traitement au niveau du nom des maps.

J'aimerais au début de ma scène pouvoir stocker dans un array, l'intégralité des maps qui ont été créer dans l'éditeur.
Je ne veux pas récupérer le nom de la map mais bien un objet de type RPG::MapInfo avec lequel je pourrais effectuer les traitement dont j'ai besoin.

Cet array doit avoir une taille variable selon le nombre de map qui ont été créer (Cela va de soit^^).


Personnellement, je n'arrive pas à réaliser cet array car je ne sais pas comment obtenir le nombre max de maps créées dans l'éditeur.

J'espère avoir été assez clair à propos de mon problème.
Merci d'avance!


Dernière édition par gagay le Dim 8 Aoû 2010 - 14:54, édité 1 fois
Revenir en haut Aller en bas
http://gbproduction.wordpress.com/
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 32
Inscrit le : 29/07/2009
Messages : 7841

[Résolu] Question RGSS (Problème RPG::MapInfo) Empty
MessageSujet: Re: [Résolu] Question RGSS (Problème RPG::MapInfo)   [Résolu] Question RGSS (Problème RPG::MapInfo) Icon_minitimeDim 8 Aoû 2010 - 11:04

VOila une methode que j'ai préparée pour toi.

Code:
  def compteur_map
    map = true
    map_id = 1
    while map
      filename = sprintf("Data/Map%03d.rvdata", map_id)
      map = FileTest.exist?(filename)
      return (map_id - 1) if not map
      map_id += 1
    end
  end

Commençons l'explication.

Le moyen le plus simple de savoir le nombre de nom dans le jeu pour moi, c'est de vérifier le nombre de fichier MapXXX.rvdata dans le dossier Data.
Donc pour cela, on va utiliser la fonction "FileTest.exist?", ou je l'ai trouvée ? Dans le manuel d'aide de RPG maker bien sur. Pour le "sprintf("Data/Map%03d.rvdata", map_id)" j'ai été fouiner dans Game_Map pour le récupérer, et d'après les renseignements que j'ai pu tirer de Google, sprintf permettrait de former des chaines de caractères. C'est pour ça qu'il est utilisé pour former le nom du fichier avec la variable.

Bref, cela faire faire une boucle, qui va vérifier un à un les fichiers. Au départ j'initialise deux variable, map qui servira a dire si il y a encore des maps ou non et map_id qui signifie l'ID des maps mais aussi qui représentera notre nombre de map au final.

J'initialise map sur true car il reste encore des maps, et map_id sur 1 car l'ID de la première map sera 1.
Ensuite j'envoie une boucle while, dans cette boucle il y a la récupération du nom du fichier ( + le chemin d'accès ) avec le fameux sprintf, la vérification si le fichier existe ou non, un return pour renvoyer la valeur quand la dernière map testée est inexistante ( c'est pour cela que je retire 1 de map_id ), et ensuite l'incrémentation de map_id.


J'ai testé et ça marche ^^
Bonne chance pour la fin de ton script !
Revenir en haut Aller en bas
gagay
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
gagay


Age : 35
Inscrit le : 04/05/2009
Messages : 51

[Résolu] Question RGSS (Problème RPG::MapInfo) Empty
MessageSujet: Re: [Résolu] Question RGSS (Problème RPG::MapInfo)   [Résolu] Question RGSS (Problème RPG::MapInfo) Icon_minitimeDim 8 Aoû 2010 - 12:19

Super ta méthode marche à merveille ! Je n'avais pas penser à utiliser les fichiers créés.

Bon sinon il y a tout de même un petit bug possible :

Si je créé 4 maps.
J'ai donc dans l'éditeur :

MAP001 => ID:001
MAP002 => ID:002
MAP003 => ID:003
MAP004 => ID:004

Je supprime la 3ème.

J'ai donc dans l'éditeur :

MAP001 => ID:001
MAP002 => ID:002
=> Ta méthode va s'arrêter ici et ne pas prendre en compte la MAP004
MAP004 => ID:004

Tui penses qu'il y aura un moyen pour parer à ce problème ?
Revenir en haut Aller en bas
http://gbproduction.wordpress.com/
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 32
Inscrit le : 29/07/2009
Messages : 7841

[Résolu] Question RGSS (Problème RPG::MapInfo) Empty
MessageSujet: Re: [Résolu] Question RGSS (Problème RPG::MapInfo)   [Résolu] Question RGSS (Problème RPG::MapInfo) Icon_minitimeDim 8 Aoû 2010 - 13:47

Ce que tu peux faire a la place, c'est une boucle for qui ira de 1 à 999 qui ajoutera 1 à ta variable compteur a chaque fois que la map sera détectée.
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

[Résolu] Question RGSS (Problème RPG::MapInfo) Empty
MessageSujet: Re: [Résolu] Question RGSS (Problème RPG::MapInfo)   [Résolu] Question RGSS (Problème RPG::MapInfo) Icon_minitimeDim 8 Aoû 2010 - 14:02

Euh Zang' juste comme ca si l'archive est cryptée le code marchera pas !
Revenir en haut Aller en bas
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 32
Inscrit le : 29/07/2009
Messages : 7841

[Résolu] Question RGSS (Problème RPG::MapInfo) Empty
MessageSujet: Re: [Résolu] Question RGSS (Problème RPG::MapInfo)   [Résolu] Question RGSS (Problème RPG::MapInfo) Icon_minitimeDim 8 Aoû 2010 - 14:14

Awi, c'est vrai que j'y avais pas pensé...

Faut trouver un autre moyen...
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

[Résolu] Question RGSS (Problème RPG::MapInfo) Empty
MessageSujet: Re: [Résolu] Question RGSS (Problème RPG::MapInfo)   [Résolu] Question RGSS (Problème RPG::MapInfo) Icon_minitimeDim 8 Aoû 2010 - 14:20

Tiens, en fait faut pas se compliquer la vie xD

Code:
 def nb_map
  map_info = load_data("Data/MapInfos.rvdata")
  return map_info.size
end
Ça marche j'ai testé !
Revenir en haut Aller en bas
gagay
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
gagay


Age : 35
Inscrit le : 04/05/2009
Messages : 51

[Résolu] Question RGSS (Problème RPG::MapInfo) Empty
MessageSujet: Re: [Résolu] Question RGSS (Problème RPG::MapInfo)   [Résolu] Question RGSS (Problème RPG::MapInfo) Icon_minitimeDim 8 Aoû 2010 - 14:34

Oui cela marche parfaitement !! Et il n'y a plus le problème de map manquante.
Merci vous deux !
Revenir en haut Aller en bas
http://gbproduction.wordpress.com/
Contenu sponsorisé




[Résolu] Question RGSS (Problème RPG::MapInfo) Empty
MessageSujet: Re: [Résolu] Question RGSS (Problème RPG::MapInfo)   [Résolu] Question RGSS (Problème RPG::MapInfo) Icon_minitime

Revenir en haut Aller en bas
 

[Résolu] Question RGSS (Problème RPG::MapInfo)

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» [Résolu] Problème Urgent ! Problème de test. Merci d'avance
» [Encore une autre question et : RESOLU]Problème lors d'un " tester le combat " dans la BDD
» Problème RGSS, method update
» Scripts RGSS Je crois .[Résolu]
» [résolu] Petite question sur les zones de monstres [résolu]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Problèmes et Solutions :: Résolu-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit