| Bourgeois (Nv 1) |
 |
Inscrit le: 03 Jan 2009, 01:00 Messages: 203 Localisation: Paris Logiciel(s) préféré(s): VX Point(s) Fort(s): Ruby Sexe: Masculin Points d'aide: 1/60
Créations :
Voir ses créations
|
Bonsoir à tous, Je vous présente un script, une fois de plus inutile, mais ô combien indispensable. Mais je m'en fous, c'etait marrant à coder Il permet d'utiliser le menu "Ouvrir/Enregistrer Sous..." de Windows pour gérer vos sauvegardes. - Code: Tout sélectionner
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # Sauvegarde Windows # par berka v 1.0 rgss1 # http://www.rpgmakervx-fr.com #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # A coller au dessus de main # dans un événement, appel de script: # sauver : pour ouvrir la fenetre de sauvegarde # charger : pour ouvrir la fenetre de chargement #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # Vous pouvez charger des sauvegardes d'autres projets, mais les données systeme # ne seront pas chargées ! (maps, events...) #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= module Berka module ChargApi $LOAD_PATH << './' Filtre=["Sauvegarde",".rxdata"] Charger="Charger une partie" Sauver="Sauvegarder la Partie" Conf="la Sauvegarde %s existe deja, ecraser l'ancien fichier ?" ConfTitre="Confirmation" Ret="Scene_Map" end end #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= def handle h=Win32API.new('kernel32','GetPrivateProfileString','pppplp','l') h.call("Game","Title","",t="\0"*256,256,"./Game.ini") Win32API.new('user32','FindWindow','pp','i').call("RGSS Player",t.delete!("\0")) end class Interpreter;def list_clr;@list=nil;end;end def charger ret,filtre="\0"*1024,"#{Berka::ChargApi::Filtre[0]}( *#{Berka::ChargApi::Filtre[1]})\0*#{Berka::ChargApi::Filtre[1]}\0\0" arg=[76,handle,0,filtre,0,0,1,ret,ret.size,0,0,0,Berka::ChargApi::Charger, 0x800|0x1000|4,0,0,".",0,0,0,].pack("I3pI3pI4pIS2pI3") return if Win32API.new('comdlg32','GetOpenFileName','p','i').call(arg)==0 Scene_Load.new.read_save_data(f=File.open(ret.rstrip,"rb")) f.close;$scene=eval("$scene=#{Berka::ChargApi::Ret}.new") end def sauver ret,filtre="\0"*1024,"#{Berka::ChargApi::Filtre[0]}( *#{Berka::ChargApi::Filtre[1]})\0*#{Berka::ChargApi::Filtre[1]}\0\0" arg=[76,handle,0,filtre,0,0,1,ret,ret.size,0,0,0,Berka::ChargApi::Sauver, 4|0x1000|0x80000,0,0,".",0,0,0].pack("I3pI3pI4pIS2pI3") return if Win32API.new('comdlg32','GetSaveFileName','p','i').call(arg)==0 sauver if !(confirm?(ret.rstrip)if FileTest.exist?(ret.rstrip)) $game_system.map_interpreter.list_clr Scene_Save.new.write_save_data(f=File.open(ret.rstrip,"wb")) f.close;$scene=eval("$scene=#{Berka::ChargApi::Ret}.new") end def confirm?(f) t=sprintf(Berka::ChargApi::Conf,f.split("\")[-1].gsub(Berka::ChargApi::Filtre[1],"")) Win32API.new('user32','MessageBox','lppl','i').call(0,t,Berka::ChargApi::ConfTitre,36)==6 end
Pour l'appeler, il suffit d'inscrire dans une commande d'event, "appel de script": - Code: Tout sélectionner
sauver # pour sauvegarder charger # pour charger
Le (seul ? ^^) truc sympa c'est que l'on peut sauvegarder dans un dossier autre que celui du projet. Berka
_________________ Twitter: Pensées politiques et juridiques. Réflexions informatiques
|
|