Invité Invité
| Sujet: Variables LOCALES VERSION XP Sam 20 Aoû - 21:38 | |
| DescriptionCe script permet de greffer une fonctionnalité complémentaire aux évenements de RPGMAKERXP, en parallèle avec les Interrupteurs locaux, il permet la manipulation de variables locales. Variables n'ayant pour portée que celle de l'évènement dans laquelle elle est créée. InstallationIl suffit de coller le script au dessus de la portion de code Main . UtilisationToutes les fonctions sont décrites dans le haut du script. Il suffit de les appeler pour effectuer une action sur une variable locale. Lien original du script ICI Code - Code:
-
#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 $game_self_var = Array.new var_main end end
class 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_Save alias var_write_save_data write_save_data def write_save_data(file) var_write_save_data(file) Marshal.dump($game_self_var,file) end end
class Scene_Load alias var_read_save_data read_save_data def read_save_data(file) var_read_save_data(file) $game_self_var = Marshal.load(file) end end |
|