Versione: 1
Autore/i: Nuki
Informazioni:
This script allows you to manipulate variables to a local event
Istruzioni:
Paste above main
Script:
#Ajout de la gestion des variables locales aux evenement
#Auteur: Nuki
#Liste des méthodes utilisables
#=============================================================
# get(map_id, evt_id, id) -> retourne la variable n°id de l'evenement n°evt_id de la map n°map_id
# => Alias : get_by_map(map_id, evt_id, id)
# get(evt_id, id) -> retourne la variable n°id de l'evenement n°evt_id de la map courante
# => Alias : get_by_event(evt_id, id)
# get(id) -> retourne la variable n°id de l'evenement courant
# => Alias : get_by_id(id)
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# set(map_id, evt_id, id, valeur) -> attribue valeur à la variable n°id de l'evenement n°evt_id de la map n°map_id
# => Alias : set_by_map(map_id, evt_id, id, valeur)
# set(evt_id, id, valeur) -> attribue valeur à la variable n°id de l'evenement n°evt_id de la map courante
# => Alias : set_by_event(evt_id, id, valeur)
# set(id, valeur) -> attribue valeur à la variable n°id de l'evenement courant
# => Alias : set_by_id(id, valeur)
#=============================================================
class Self_Var
attr_accessor :map_id
attr_accessor :event_id
attr_accessor :id
attr_accessor :value
def initialize(map_id, event_id, id, value)
@map_id = map_id
@event_id = event_id
@id = id
@value = value
end
end
class Scene_Title
alias var_main main
def main
var_main
$game_self_var = Array.new
end
end
class Game_Interpreter
# Récupère une variable en fonction de toute ces données
def get_by_map(map_id, event_id, id)
local = $game_self_var.find{
|variable|
variable.map_id == map_id && variable.event_id == event_id && variable.id == id
}
return local.value if local.instance_of?(Self_Var)
return 0 if local == nil
end
# Récupère une variable en fonction de son ID d'event et de son idée sur la map courante
def get_by_event(event_id, id)
return get_by_map(@map_id, event_id, id)
end
# Récupère la variable de l'evenement courant en fonction d'une ID
def get_by_id(id)
return get_by_map(@map_id, @event_id, id)
end
# Attribue une variable en fonction de toutes les données
def set_by_map(map_id, event_id, id, value)
index = $game_self_var.index(
$game_self_var.find{
|variable|
variable.map_id == map_id && variable.event_id == event_id && variable.id == id
})
if index == nil
$game_self_var << Self_Var.new(map_id, event_id, id, value)
else
$game_self_var[index].value = value
end
end
# Attribue une variable en fonction de l'evenement ID et de l'ID de la variable
def set_by_event(event_id, id, value)
set_by_map(@map_id, event_id, id, value)
end
# Attribue une variable en fonction de l'ID de la variable dans l'evenement courant
def set_by_id(id, value)
set_by_map(@map_id, @event_id, id, value)
end
#Utilisation GET générique
def get(*args)
if args.length == 3
return get_by_map(args[0], args[1], args[2])
elsif args.length == 2
return get_by_event(args[0], args[1])
elsif args.length == 1
return get_by_id(args[0])
else
return 0
end
end
#Utilisation SET générique
def set(*args)
if args.length == 4
set_by_map(args[0], args[1], args[2], args[3])
return true
elsif args.length == 3
set_by_event(args[0], args[1], args[2])
return true
elsif args.length == 2
set_by_id(args[0], args[1])
return true
else
return false
end
end
end
class Scene_File
alias var_write_save_data write_save_data
alias var_read_save_data read_save_data
def write_save_data(file)
var_write_save_data(file)
Marshal.dump($game_self_var,file)
end
def read_save_data(file)
var_read_save_data(file)
$game_self_var = Marshal.load(file)
end
end
Note dell'Autore:
http://funkywork.blogspot.com













