Skip to content
This repository has been archived by the owner on Jul 24, 2020. It is now read-only.

Interrupteurs locaux et variables locales

Ulis edited this page May 4, 2015 · 1 revision

Les interrupteurs locaux ne sont pas une extension de RME, cependant, comme pour les variables et les interrupteurs, ces derniers bénéficient d'une syntaxe allégée. Comme pour l'EventExender, RME est doté de variables locales.

Les variables locales

Pour certains, cette partie peut paraître plus abstraite, cependant, je vous assure que les variables locales permettent beaucoup de flexibilité dans la construction de systèmes avec les évènements.

Une variable locale est presque identique à une variable globale (les variables normales de RPGMaker, accessibles via V[ID]), si ce n'est qu'elles sont référencées par 3 ID's et non un seul.

  • L'ID de la map
  • L'ID de l'évènement
  • L'ID de la variable

L'avantage est qu'il est possible de créer une variable en ne spécifiant que son ID à elle, et le script automatisera l'attribution des deux autres ID.
Quel est l'avantage ? Cela évite la création de variables globales pour des utilisations uniquement au sein d'un évènement, ça permet de copier/coller ses évènements (qui utilisent des variables locales) sans devoir modifier les variables qu'ils utilisent et ça augmente aussi considérablement le nombre de variables disponibles.
Personnellement, je m'en sers souvent pour stocker des résultats dont je n'ai besoin QUE dans un évènement ou qui sont propres à cet évènement. De plus il est possible d’accéder aux variables d'un autre évènement et même d'une autre map car ces adresses sont purement virtuelles, donc il est possible d'associer des variables à des évènements qui n'existent pas.

Syntaxe des variables locales

A la différence des variables globales, on utilise cette fois SV[id_de_la_map, id_de_levenement, id]. SV pour self variables.
Comme il a été dit dans le paragraphe précédent, on peut ne spécifier que l'ID d'une variable locale et RME inférera l'ID de l'évènement qui l'appelle et l'ID de la carte où se trouve l'évènement.
Imaginons une carte (numéro 23) sur laquelle on peut trouver plusieurs évènements dont l'évènement 4 qui appellera ces différentes variables locales :

  • SV[5], comme c'est l'évènement 4 de la carte 23 qui appelle cette variable locale, la variable sera donc la variable SV[23, 4, 5].
  • SV[2, 8], cette fois on appelle en fait la variable SV[23, 2, 8]
  • SV[12, 3, 1], ici toutes les informations sont données, on appelle donc la variable n°1 de l'évènement 3, se trouvant sur la carte numéro 12

Opérations sur les variables locales

Tous les opérateurs présentés dans la section sur les variables sont compatibles avec les variables locales. Par exemple :

  • SV[5] += V[6] : Ajoute à la variable locale 5 (située dans un évènement quelconque) la valeur de la variable 6
  • SV[1,2,3], V[2] = V[2], SV[1,2,3] : intervertit les valeurs de la locale 3 située dans l'évènement 2 de la carte n°1 avec la valeur de la variable 2.

Attention!, l'utilisation des intervalles (V[1...10], par exemple)ne fonctionnent pas pour les variables locales.

Quand faut-il privilégier les variables locales

A priori, les variables locales peuvent faire tout ce que permettent de faire les variables normales. Cependant, je conseille de ne s'en servir que pour des variables propres à un seul évènement. Par exemple, les points de vie des ennemis dans un ARPG, ou encore pour les points de réputation pour les rendre propres à chaque évènement.

Les interrupteurs locaux

Cette fois ci, il ne s'agit pas d'un ajout, mais comme pour les variables et les interrupteurs, il s'agit d'un simple raccourci syntaxique.
Les interrupteurs locaux fonctionnent comme les interrupteurs normaux avec le même système d'adressage que les variables locales. La seule différence est qu'ils sont limités à 4. Et on y accède via une lettre (A, B, C ou D) ou via un entier, 1, 2, 3 ou 4 (1 = A , 2 = B etc.) et qu'on utilise la primitive SS (pour self switches) pour y accéder par exemple : SS["A"] (le A doit bien être entre guillemet) ou alors SS[1]. Son système d'adressage fonctionne exactement de la même manière que les variables locales donc il est possible d'accéder aux interrupteurs locaux d'autres évènements.
Comme pour les variables locales, les opérateurs logiques et la négation sont compatibles avec les interrupteurs locaux.

Conclusion

Qu'il s'agisse des variables locales ou des interrupteurs locaux, ils sont très pratiques parce qu'ils permettent de créer des évènements génériques et copiables/collables sans détruire tout la logique d'un système.

Clone this wiki locally