Domaine concerné: Script Logiciel utilisé: RPG Maker VXACE Bonjour à tous.
J'ai trouvé il y a un certain temps le script suivant, qui permet d'exporter les textes d'un projet dans différents fichiers TXT, idéal selon moi, pour tout repasser dans un correcteur d'orthographes.
Le problème c'est que quand je lance le script il exécute automatiquement l'export de tout le jeu.
J'aimerai modifier celui-ci afin de pouvoir exporter uniquement les textes d'une map spécifique.
Un "scripteur" pourrait il m'aider pour y apporter cette modif ?
Merci
Le Script VV
Spoiler (cliquez pour afficher) #------------------------------------------------------------------
# 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
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
|