RTP Extractorpor zecomeiaIntroducaoExtrai para o seu projeto os arquivos do RTP que estao em uso no projeto. Isso evita ter que copiar o RTP inteiro para o seu projeto na hora da criacao do disco de jogo, ou que o jogador precise ter o RTP instalado para poder jogar.CaracteristicasNao sobre escreve arquivo de mesmo nome que exista na pasta do projeto.O processo e rapido e pode ser acompanhado por uma barra de progresso.Um arquivo(extract_log.txt) listando todos os arquivos copiados e seus respectivos tamanhos e gerado na pasta raiz do projeto.Historico04/02/2011 v1.0.0- Lancado o script05/02/2011 v1.0.1- Leitura do nome da DLL do projeto consertado- Bug quando ha mais de dois comandos "mover evento" na mesma pagina consertadoComo Usarcole acima de Mainsalve e execute o projetoespere o processo de extracao terminaragora voce ja pode retirar o script do projeto*O ideal e usa-lo antes de criar o disco de jogo, ou seja, quando o projeto estiver pronto para jogar, porque dai, teoricamente, nesse ponto o projeto nao precisa mais ser alterado.Script#======================================================# RTP Extractor#------------------------------------------------------#version: 1.0.1#by: zecomeia#date: 05/01/2011#for: RGSS#credits and thanks:#- vgvgf (get path function from Aleworks Library)#- Farenheight (justname and extension File methods#[modified by me])#- Rafidelis (get RGSS dll name funcion)#- PLM (reported a bug)#------------------------------------------------------#more infos: http://colmeia-do-ze.co.cc#tags: RTP, Extractor, RGSS#------------------------------------------------------#how to use:#- paste above of Main script#- save and play the project#- wait exctraction end#- now you can remove the script from your project##*in project root folder will be generated an extract#log(extract_log.txt) listing all files copied to the#project#==============http://colmeia-do-ze.co.cc==============class File def self.ext(fname) fname = basename(fname) parts = fname.sub(/[^\.]*\./,'') end def self.justname(fname) basename(fname, "." + ext(fname)) end def self.fcopy(src, dest) src = File.open(src, "rb") dest = File.new(dest,"wb") src.each_byte do |x| dest.putc(x) end dest.close src.close endendfini = File.open('Game.ini', 'r')for line in fini.readlines if line =~ /Library=/ GameDLL = File.justname($') endendfini.close####vgvgfRGSSGetRTPPath = Win32API.new(GameDLL, 'RGSSGetRTPPath', 'L', 'L')RGSSGetPathWithRTP = Win32API.new(GameDLL, 'RGSSGetPathWithRTP', 'L', 'P')def get_rtp_path(rtp = 0) RGSSGetPathWithRTP.call(RGSSGetRTPPath.call(rtp))endRGSSRTP_PATH = get_rtp_path(1)####module RTP_EXTRACTOR Data_actors = load_data("Data/Actors.rxdata") Data_classes = load_data("Data/Classes.rxdata") Data_skills = load_data("Data/Skills.rxdata") Data_items = load_data("Data/Items.rxdata") Data_weapons = load_data("Data/Weapons.rxdata") Data_armors = load_data("Data/Armors.rxdata") Data_enemies = load_data("Data/Enemies.rxdata") Data_troops = load_data("Data/Troops.rxdata") Data_states = load_data("Data/States.rxdata") Data_animations = load_data("Data/Animations.rxdata") Data_tilesets = load_data("Data/Tilesets.rxdata") Data_common_events = load_data("Data/CommonEvents.rxdata") Data_system = load_data("Data/System.rxdata") Data_mapinfos = load_data("Data/MapInfos.rxdata") #Coisa de Preguicoso XD ls = [] Dir.foreach(RGSSRTP_PATH + "\\Graphics") { |x| ls.push(x) } ls.delete('.') ls.delete('..') ls.each do |x| str_eval = "#{x} = RGSSRTP_PATH + \"\\\\Graphics\\\\#{x}\"" eval(str_eval) end ls = [] Dir.foreach(RGSSRTP_PATH + "\\Audio") { |x| ls.push(x) } ls.delete('.') ls.delete('..') ls.each do |x| str_eval = "#{x} = RGSSRTP_PATH + \"\\\\Audio\\\\#{x}\"" eval(str_eval) end #Coisa de preguicoso ENDendclass RTP_Extractor include RTP_EXTRACTOR attr_reader :files_size attr_reader :list def initialize() @files_size = 0 @list = [] end #list files in a folder #if ext = true the file extension print together def list_files(dir,ext=true) ls = [] Dir.foreach(dir) {|x| ls.push(x) } ls.delete('.') ls.delete('..') if ext return(ls) else ls_noext = [] ls.each { |x| ls_noext.push(File.justname(x)) } return(ls_noext) end end def map_events(map, file_list, command, move_command=[], parameter_204_0=false) code = command[0] parameter = command[1] misc_name = command[2] str_eval = "command.parameters\[#{parameter}\]#{misc_name}" unless move_command.empty? move_code = move_command[0] move_parameter = move_command[1] move_misc_name = move_command[2] move_str_eval = "mv_command.parameters\[#{move_parameter}\]#{move_misc_name}" end for event in map.events for page in event[1].pages if page.move_type == 3 for pre_mv_command in