tonyryu Paysan (niveau 4)
Messages postés : 39 Date d'inscription : 14/09/2012 Jauge LPC :
| Sujet: [RMVX Ace] Extraction et compilation des scripts Lun 26 Nov 2012 - 18:49 | |
| Comme sur mon projet perso, nous bossons à plusieurs scripteurs, il a fallu développer des solutions afin de ne pas écraser les modifications des uns et des autres. Le mieux étant de transmettre uniquement le ou les scripts modifiés et non le fichier Scripts.rvdata2. Pour cela, j'ai créé 2 scripts Ruby, l'un permettant d'extraire tous les scripts et de les copier dans un dossier Scripts, et l'autre permettant de réinjecter dans le Scripts.rvdata2, les fichiers scripts se trouvant dans le dossier Scripts. Pour les faire fonctionner, il faut avoir l'interpreteur Ruby 1.9.3 d'installer Extract.rb - Code:
-
#encoding: utf-8 require "zlib"
URL_SCRIPT = "./Data/"
def load_data(fic) File.open(fic, "rb") { |f| return ( Marshal.load(f)) } end
def inflate(string) zstream = Zlib::Inflate.new() buf = zstream.inflate(string) zstream.finish zstream.close buf end
def deflate(string, level = Zlib::BEST_COMPRESSION) z = Zlib::Deflate.new(level) dst = z.deflate(string, Zlib::FINISH) z.close dst end
# Si dossier n'existe pas if Dir["Scripts"] != ["Scripts"] # Créer le dossier Dir.mkdir("Scripts") end
obj_script = load_data(URL_SCRIPT + "Scripts.rvdata2")
num = 0
obj_script.each do |unScript | num += 1 nom = unScript[1] code = inflate(unScript[2])
if code.size > 10 nom_fic = nom + ".rb" print "Création fichier : #{nom_fic}\n" fic = File.new("./Scripts/" + nom_fic, "wb") fic.write(code) fic.close end end Compil.rb - Code:
-
#encoding: utf-8 require "zlib"
URL_SCRIPT = "./Data/"
#---------------------------------------------------------------------------- # save_data #---------------------------------------------------------------------------- def save_data(data,fic) File.open(fic, "wb") { |f| Marshal.dump(data, f) } end
def load_data(fic) File.open(fic, "rb") { |f| return ( Marshal.load(f)) } end
def inflate(string) zstream = Zlib::Inflate.new() buf = zstream.inflate(string) zstream.finish zstream.close buf end
def deflate(string, level = Zlib::BEST_COMPRESSION) z = Zlib::Deflate.new(level) dst = z.deflate(string, Zlib::FINISH) z.close dst end
# Si dossier n'existe pas if Dir["Scripts"] != ["Scripts"] # Créer le dossier Dir.mkdir("Scripts") end
obj_script = load_data(URL_SCRIPT + "Scripts.rvdata2")
num = 0
obj_script.each do |unScript | num += 1 nom = unScript[1]
nom_fic = nom + ".rb" if FileTest.exists?( "./Scripts/" + nom_fic ) fic = File.new("./Scripts/" + nom_fic, "rb") code = fic.read fic.close unScript[2] = deflate(code) end
end
save_data(obj_script, URL_SCRIPT + "Scripts.rvdata2") |
|
Elekami Fondateur
Messages postés : 19071 Date d'inscription : 19/07/2008 Jauge LPC :
| Sujet: Re: [RMVX Ace] Extraction et compilation des scripts Mar 27 Nov 2012 - 0:17 | |
| Merci du partage ! J'ajoute des points. |
|