Oniromancie: Scripts - [XP] Variables locales


Comment ça marche?

Acsiosa
Par ThrillerProd

Aëdemphia
Par Sylvanor

Chemin de Croix
Par Mr Bambou

Darkange
Par Scythe Darklight

Evil Myst
Par oxion_garden

Geex Maker
Par roys

La Légende d'Ibabou
Par Zaitan

Les Ombres d'Ymirs
Par Lakitorai

Lije
Par Gaetz

Omega Cerberus
Par Sill Valt

Oyönna
Par Tata Monos

Sarcia
Par Kaëlar

News: OFF chez Indiegames.com / Scripts: Niveau pour équiper une arme / Scripts: Anti-"No such file" [VX Ace] / Scripts: Scroll Pictures / News: Legalize our games ! /

Chat ( connectés)

Bienvenue
visiteur !





publicité RPG Maker!

Statistiques

Liste des
membres


Contact

36 connectés actuellement

4596861 visiteurs
depuis l'ouverture

10 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP GAMEMAKING


Les 5 plus
visités

Guelnika - E Magination

ImagieNation

Level Up!

Alex d'Or

RPG Maker Powa

Au hasard

RPG Maker Total

RPG Odyssée

RPGMXP Studio

Les deux derniers

FreankExpo

Le Palais du Making

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs




[XP] Variables locales
Script pour RPG Maker XP
Ecrit par nukii

Description
Ce 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.

Installation
Il suffit de coller le script au dessus de la portion de code Main .

Utilisation
Toutes les fonctions sont décrites dans le haut du script. Il suffit de les appeler pour effectuer une action sur une variable locale.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#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
 




Pomo - posté le 18/11/2011 à 22:50:47. (21 messages postés)

apprenti-Maker

Dans l'idée, ce script est génial <3 et j'avoue avoir souvent regretté l'absence de variables locales dans RMXP :grah2, mais pourrais-tu faire des screens, démo etc... Peut-on faire des opérations avec ces variables (si oui, comment?) et peut-on les utiliser dans des conditions (si oui, même question), c'est-à-dire, comment fait-on pour les utiliser en tant que variable? :D

PS: Je suis nul en script et l'avoue franchement, mais j'espère ne pas être le seul sur ce site :hihi :hihi :hihi

"Ceci est une signature: c'est une phrase inutile et la plupart du temps idiote postée automatiquement à la fin de chaque message^^"


julstitch77570 - posté le 17/01/2012 à 14:06:53. (1 messages postés)

salu je vien darivé sur le sites je sui tonbé sur ton script je panse ke c vraiment se ki me fallai, parcontre je sui vraiment nul avec les script, donc si tu pourai faire un tuto pour bien expliquer sa serai super cool

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Previews | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Acsiosa | Aëdemphia | Chemin de Croix | Darkange | Evil Myst | Geex Maker | La Légende d'Ibabou | Les Ombres d'Ymirs | Lije | Omega Cerberus | Oyönna | Sarcia
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes