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 !