RitoJS Ancien staffeux
Messages postés : 1925 Date d'inscription : 22/02/2012 Jauge LPC :
| Sujet: Export messages text Mer 29 Mai 2013 - 14:47 | |
| Crédit: GubiD (crédit non-obligatoire) Ce script vous permet d'extraire tout vos messages sur RPG Maker VX Ace en fichier texte. Les fichiers seront dans un dossier nommé "Messages", classer par map. Pour activer l'extraction à la ligne 22 mettez ça: - Code:
-
ENABLED = true Et lancer votre projet. l'extraction se fera automatiquement (le jeu affichera un écran noir jusqu’à la fin de l'extraction.) Script: - Code:
-
#------------------------------------------------------------------ # Object #------------------------------------------------------------------ class Object def string? return false end end #----------------------------------------------------------------- # String #------------------------------------------------------------------ class String def string? true end end #------------------------------------------------------------------ module Export_Messages #------------------------------------------------------------------ # Enabled - When true, data will export. Otherwise no. #------------------------------------------------------------------ ENABLED = false #------------------------------------------------------------------ # Maps File - File in which contains the map information #------------------------------------------------------------------ MapsFile = "./Data/MapInfos.rvdata2" #------------------------------------------------------------------ # Event Messages Folder #------------------------------------------------------------------ EVENT_MESSAGES_FOLDER = "./Messages/" #------------------------------------------------------------------ # Make Folder Name (from map ID and MAP) #------------------------------------------------------------------ def self.make_folder_name(id, map) return sprintf("%03d_%s", id, map.name); end #------------------------------------------------------------------ # Export Messages #------------------------------------------------------------------ # This exports all the events messaging in the game on every map #------------------------------------------------------------------ def self.export_messages maps = load_data(MapsFile) if !Dir.exist?(EVENT_MESSAGES_FOLDER) Dir.mkdir(EVENT_MESSAGES_FOLDER) end for id in 1...maps.size+1 mapFile = sprintf("Data/Map%03d.rvdata2", id) mapInfo = maps[id] map = load_data(mapFile) rescue next foldername = EVENT_MESSAGES_FOLDER + make_folder_name(id, mapInfo) if !Dir.exist?(foldername) Dir.mkdir(foldername) end for event_id in map.events.keys event = map.events[event_id] for i in 0...event.pages.size filename = sprintf("%s/%03d_%s_%02d.txt", foldername, event_id, event.name, i+1) if File.exist?(filename) File.delete(filename) end file = File.new(filename, 'a') #open file in append mode file.write(sprintf("%03d %s Page_%02d", event_id, event.name, i+1)) write_linebreak(file) page = event.pages[i] event_string_data = build_event_string_data(page) file.write(event_string_data) file.close if event_string_data == "" File.delete(filename) end end end end print "Finished Exporting messages to file\n" end #------------------------------------------------------------------ # Construct message string data #------------------------------------------------------------------ def self.build_event_string_data(page) save_string = [] @index = 0 #------------------------------------------------------------------ # Walk list and check each item. # Since choices already sort items for us, no additional sort is needed. #------------------------------------------------------------------ while page.list[@index] != nil event_data = page.list[@index] indent = "\t " * event_data.indent if ([101, 401].include?(event_data.code)) s = event_data.parameters[0] save_string << indent + "[MESSAGE]" + s unless s == "" elsif [402].include?(event_data.code) for s in event_data.parameters save_string << indent + "[CHOICE]" + s if s.string? end elsif [404].include?(event_data.code) save_string << indent + "[END_CHOICE]" end @index += 1 end return save_string.join("\n") end #------------------------------------------------------------------ # Write Linebreak #------------------------------------------------------------------ def self.write_linebreak(file) file.write("\r\n") end if ENABLED export_messages end end Voilà !^^ |
|
lidenvice Ancien staffeux
Messages postés : 1955 Date d'inscription : 18/10/2011 Jauge LPC :
| Sujet: Re: Export messages text Mer 29 Mai 2013 - 21:22 | |
| Merci pour le partage, je te donne pas de points mais le coeur y est. Pense à vider ta barre un peu avec les distinctions collectionneur. |
|
RitoJS Ancien staffeux
Messages postés : 1925 Date d'inscription : 22/02/2012 Jauge LPC :
| Sujet: Re: Export messages text Mer 29 Mai 2013 - 22:20 | |
| - Citation :
- ense à vider ta barre un peu avec les distinctions collectionneur.
Notre histoire d'amour n'est pas encore terminé. |
|
Zexion Administrateur
Messages postés : 6228 Date d'inscription : 04/01/2012 Jauge LPC :
| Sujet: Re: Export messages text Mer 29 Mai 2013 - 22:30 | |
| Y'a t-il possibilité d'ensuite réimporter les dialogues dans le jeu ? En tout cas, merci du partage. |
|
RitoJS Ancien staffeux
Messages postés : 1925 Date d'inscription : 22/02/2012 Jauge LPC :
| Sujet: Re: Export messages text Mer 29 Mai 2013 - 22:38 | |
| Ça je ne crois pas. x) M'enfin c'est déjà bien de l'avoir fait.^^ |
|
Contenu sponsorisé
| Sujet: Re: Export messages text | |
| |
|