Script
RPG Maker XP

Biward Get

Importer facilement variables et interrupteurs depuis une autre sauvegarde RMXP

Version: 1
Utilitaire Manipulation de données

Ce script écrit par Biward permet de lire et récupérer des variables et interrupteurs depuis une autre sauvegarde dans RPG Maker XP.
Il rend possible l’échange de données entre plusieurs fichiers de sauvegarde, ce qui est impossible nativement dans RMXP.

Cas possibles d’utilisation :

  • New Game+
  • sauvegarde partagée
  • progression globale entre parties
  • déblocages persistants
  • import de données depuis une ancienne run

Principe de fonctionnement

Le script :

  1. ouvre un fichier de sauvegarde externe
  2. charge temporairement ses données
  3. copie une variable ou un interrupteur précis
  4. les injecte dans la sauvegarde en cours
  5. restaure immédiatement l’état du jeu courant

Aucune donnée de la partie active n’est écrasée, hormis ce que tu choisis explicitement de copier.

Ce que le script peut faire

  • Lire une variable précise depuis une autre sauvegarde
  • Lire un interrupteur précis depuis une autre sauvegarde
  • Copier la valeur vers une variable/interrupteur différent
  • Vérifier si un fichier de sauvegarde existe

Le tout sans charger réellement la sauvegarde.

Commandes utilisables dans un événement

get_variable(id, « file », toid)
get_switche(id, « file », toid)

  • id : ID de la variable / interrupteur à lire dans l’autre sauvegarde
  • file : nom du fichier de sauvegarde (ex : "Save01.rxdata")
  • toid : ID de destination dans la partie actuelle

Utilisation dans un appel de script

Get.copy_variable(id, « file », toid)
Get.copy_switche(id, « file », toid)


Vérifier l’existence d’un fichier

Dans un événement :

file_exist?(« Save01.rxdata »)

Dans un script :

Get.file?(« Save01.rxdata »)

Script

Bloc de code
TEXTE
################################################################################
############################# Get Variables & Switches #########################
################################################################################
# Auteur : Biward
# Date : 05/10/2013
# Utilité : permet de lire les variables/interrupteurs d'une autre sauvegarde
#
# Comment faire ? 
# Dans un évènement : 
# get_variable(id, "file", toid)  et/ou  get_switche(id, "file", toid)
#
# Dans un script :
# Get.copy_variable(id, "file", toid)  et/ou  Get.copy_switche(id, "file", toid)
# 
#
# Avec : id = ID de la variable/interrupteur que l'on va chercher dans l'autre sauvegarde
#        file = nom du fichier de sauvegarde
#        toid = ID de la variable/interrupteur nouvelle/nouveau
#
#
# De plus, pour vérifier qu'un fichier existe (normalement pas nécessaire lors de la copie),
# il vous suffit de faire ceci dans un appel de script : file_exist?("name")
# ou de faire Get.file?("name") dans un script !
# 
#####################################
########## Début du script ##########
#####################################
#
##### Interpreter
class Interpreter 
  def get_variable(id, file, toid)     # Obtenir la variable
    Get.copy_variable(id, file, toid)  # On va copier la variable dans le module
  end
  def get_switche(id, file, toid)      # Obtenir l'interrupteur
    Get.copy_switche(id, file, toid)   # On va copier l'interrupteur dans le module
  end
  def file_exist?(name)                # Verifier l'existence du fichier
    Get.file?(name)                    # Le module vérifie si le fichier existe
  end
end
#
##### Get
module Get
  #
  extend self # Extend
  #
  def copy_variable(id, name, toid)    # Copie de la variable
    file(name)
    $game_variables[toid] = $g_var[id] if $g_var
    reset_other_variable
  end
  #
  def copy_switche(id, name, toid)     # Copie de l'interrupteur
    file(name)
    $game_switches[toid] = $g_swi[id] if $g_swi
    reset_other_variable
  end
  #
  def reset_other_variable             # Remise à zéro des variables globales
    $g_swi = nil
    $g_var = nil
  end
  #
  def file(filename)                   # Lecture du fichier
    return unless FileTest.exist?(filename)
    file = File.open(filename, "rb")
    read_variables(file)
    file.close
  end
  #
  def read_variables(file)             # Lecture des données
    characters = Marshal.load(file)
    bef_fra = Graphics.frame_count
    Graphics.frame_count = Marshal.load(file)
    bef_sys = $game_system
    bef_swi = $game_switches
    bef_var = $game_variables
    $game_system        = Marshal.load(file)
    $game_switches      = Marshal.load(file)
    $game_variables     = Marshal.load(file)
    $g_var = $game_variables
    $g_swi = $game_switches
    $game_system = bef_sys
    $game_variables = bef_var
    $game_switches = bef_swi  
    Graphics.frame_count = bef_fra  
  end
  #
  def file?(name)
    return FileTest.exist?(name)
  end
end
#####################################
########### Fin du script ###########
#####################################

Scripts utiles

Newsletter

Ne ratez rien de la communauté

Nouveautés, jeux inspirants et ressources utiles directement dans votre boîte mail.

Pas de spam · Désinscription en un clic