Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: "Dread Mac Farlane", (...) / Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

428 connectés actuellement

29449403 visiteurs
depuis l'ouverture

15283 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Lunae - le bazar d'Emz0

RPG Maker - La Communauté

Lumen

Leo-Games

RPG Fusion

Tous nos partenaires

Devenir
partenaire



Le patch Maniacs ne mord pas ! Partie 2

Une explication détaillée du nouveau Control Variables.

Ecrit par Soul le 20/06/2023


❤ 2

Le patch Maniacs ne mord pas !

Partie 2 : Le nouveau Control Variables


image







Note : Ce tutoriel est une traduction libre, c'est-à-dire que certains éléments ont pu être volontairement omis, et d'autres ajoutés maintenant ou par le futur selon les nouveautés du patch.

Bonne lecture !


image


La dernière fois, j'ai oublié de décrire une fenêtre, mais ça tombe bien car maintenant je peux lui dédier bien plus de temps. C'est l'occasion d'apprendre quelque chose qui sera utile pour n'importe quel créateur ambitieux sur RM2003, donc ouvrez grands vos oreilles (ou vos yeux, en l'occurence) !


Comment activer le nouveau Control Variables ?

image
L'aspect le plus important de cette nouvelle fenêtre à part l'arrangement de l'UI, est l'addition de l'option "Expression". Elle vous autorise à écrire des opérations mathématiques et logiques de façon claire et élégante. Avec les plus gros systèmes créés sur RPG Maker 2003, on doit souvent cliquer des douzaines de fois sur Control Variable, ce qui s'avère fatiguant à la longue. Mais c'est du passé maintenant, maintenant vous avez juste à vérifier que cette option en haut du menu est bien tiquée :
image

Dans le vif du sujet
image

Les deux exemples ci-dessus montrent deux manières de faire exactement la même chose. Ils mettent la variable numéro 1 à la valeur 2+3.

La boîte V[expr] signifie que le résultat des calculs sera utilisé pour déterminer l'id de la variable où on souhaite le résultat. Les calculs de cette zone sont réalisés avant.

A mon sens c'est un peu confus car dans la zone expr, on peut calculer sur plusieurs variables d'un coup. Cependant, si on quitte la zone V[expr] vide, on doit se rappeler que la commande dans la fenêtre de l'événement ressemblera à ça :
image

Ce n'est pas non plus très lisible. Dans ce cas, peu importe ce qu'on choisit dans Operations, que ce soit Set, Add, Sub, etc, car l'opération est définis en dessous dans tous les cas, et la variable à l'id 0 n'existe pas.

Plus loin dans le tutoriel, toutes les opérations seront réalisées avec seulement la zone expr. C'est plus lisible dans le cadre de ce tutoriel, mais dans l'éditeur c'est plutôt l'opposé.

Le cas suivant vaut aussi le coup d'être mentionné :
image

Ici la variable numéro 1 vaudra 5, et l'opération v[2] -= v[1] sera réalisée sur la variable numéro 2. Donc 5 sera soustrait de la variable 2 (qui vaut la valeur qu'on met pour v[1]).

Plus tôt c'était noté comme ceci : v[1] = 2 + 3. v[] signifie qu'on se réfère à une variable. Dans ce cas il s'agit de la variable 1. Nous faisons qu'elle vale le résultat 2 + 3 (5).

Autre chose importante, le bouton Test : dans le cas où on ferait une erreur de syntax en tapant l'expression, on obtiendrait un message (en anglais) sur l'erreur.

image
On peut aussi utiliser les interrupteurs dans expr. Ici, on fait que l'interrupteur numéro 2 soit activé (ON = 1, OFF = 0).

image
Il existe aussi une formule pour effectuer le calcul sur une sélection de variables/interrupteurs. Dans cette exemple, je modifie les variables 1, 2 et 3 pour qu'elles valent 8.

image
On peut aussi assigner différentes valeurs à une sélection. On réalise cela avec une sorte d'array temporaire qui stoke plusieurs valeurs, en l'occurence [2,4,6].

Pratique
Et maintenant à vous !
image
Que vaut v[1] ?

Spoiler (cliquez pour afficher)



Vous pensez "Okay, mais pourquoi j'utiliserais ça" ? Dans Expression, on ne peut entrer qu'une expression. La méthode ci-dessus permet de contourner cette limitation. De cette manière, on peut immédiatement mettre les valeurs de la variable v[2] à 3 et v[3] à 6, et en plus on exécute l'opération et on met le résultat dans v[1].

Une autre chose qu'il est bon de savoir est qu'on peut librement insérer v[].
image

Ce qui a le même effet qu'utiliser Variable ID : on ne réfère pas directement à la valeur de la variable mais on l'utilise pour récupérer la valeur d'une variable désignée par son index (principe d'un pointeur).

L'opérateur && (and)
image

Dans cet exemple, on utilise une nouvelle fois notre pseudo array temporaire pour arranger les variables. L'opérateur && fonctionne de telle manière que si la valeur à gauche est différente de 0, le résultat sera celui de droite, et si celui-ci vaut 0 le résultat sera 0. Pour l'ensemble de cette expression, le résultat de cette expression sera donc 0 car v[2] + v[2] = 0.

L'opérateur || (or)
image

L'opérateur || fonctionne différemment. Si la valeur à gauche n'est pas 0, il retourne la valeur à gauche, sinon il retourne la valeur à droite. Dans ce cas, le résultat vaut 1.

Autres extras
Maintenant, des fonctions moins logiques et mathématiques, mais toujours utiles :
- change le signe d'un nombre ou soustrait, si utilisé entre deux nombres/variables.
! change n'importe quelle variable ne valant pas 0 en 1, et toute variable qui vaut 0 vaut 1. Fonctionne de la même manière pour les interrupteurs.
~ négation pour les bit
+ additionne
* multiplie
/ division entière
% reste de la division
| "or" bit
& "and" bit
^ "XOR" bit
<< échange à gauche bit
>> échange à droit bit
== égal à
!= différent de
< plus petit que
> plus grand que
<= plus petit que ou égal à
>= plus grand que ou égal à

Enemy (id, type). Retourne une information donnée selon l'id de l'ennemi :
00 : HP
01 : MP
02 : Max HP
03 : Max MP
04 : Attack
05 : Defense
06 : Magic
07 : Agility
08 : ID (dans la database)
09 : ATB Gauge

Misc (type) :
00 : Monnaie
01 : Temps restant sur le Timer 1
02: Nombre de membres dans l'équipe
03: Nombre de sauvegardes
04: Nombre de combats
05: Nombre de victoires
06: Nombre de défaites
07: Nombre de fuites
08: emplacement du tick sur un fichier MIDI
09: Temps restant sur le Timer 2
10: Date
11: Heure
12: Temps de jeu total écoulé (en frames)
13: Version du patch

Math :
Pow (a, b) – élève a à la puissance b
Min (a, b) – renvoie à la valeur la plus petite
Max (a, b) – renvoie à la valeur la plus grande
Abs (a) – renvoie une valeur absolue
Sqrt (a, b) – racine carrée de a multiplié par b
Sin (a, b, c) – sinus de a et b multiplié par c
Cos (a, b, c) – cosinus de a et b multiplié par c
Atan2 (a, b, c) – l'arc tangente de a et b multipliée par c
Clamp (a, b, c) – oblige la valeur a à ne pas être inférieure à b et pas supérieure à c
Condition? Value if True:Value if False – retourne l'une des deux valeurs selon la condition
Rnd (a, b) – retourne une valeur aléatoire entre a et b (inclus).

Item (id, type) :
00: Est possédé ?
01: Quantité

Actor (id, type) :
00: Niveau
01: Expérience
02: HP
03: MP
04: Max HP
05: Max MP
06: Attack
07: Defense
08: Magic
09: Agility
10: Weapon ID
11: Shield ID
12: Helmet ID
13: Armor ID
14: Accessories ID
15: ID dans la database
16: niveau de la gauge ATB

Event (id, type) :
00: Map ID
01: Tile X Coordinate
02: Tile Y Coordinate
03: Direction
04: X on screen
05: Y on screen
06: Event ID


Conclusion

Ce tutoriel a été écrit à partir du fichier vexpr.txt, inclus avec le patch, et ma propre expérience. Dans le prochain article, nous aborderons les choses que nous avons apprises pour construire quelques mécaniques. Grâce à quelques astuces, nous sommes capables d'inclure toutes les opérations nécessaires sur les variables dans une Expression. Est-ce pratique ? Non, pas vraiment. Cependant, pour ceux à l'aise en maths et logique, cela va assurément accéler la construction de nouveaux systèmes. Mais c'est aussi utile pour des utilisateurs moins habitués, car parfois une ligne bien écrite vaut bien dix Control Variable.


Cet article a été traduit et publié avec l'autorisation de Michu, qui a traduit l'article du polonais en anglais.
Source : Soul, "Maniacs Patch Won't Bite You # 2 - New Control Variables", in RMteka, 3 juin 2022 [consulté le 10 mai 2023], https://www.rmteka.pl/maniacs-patch-wont-bite-you-2-new-control-variables/.



Kisth - posté le 21/06/2023 à 20:30:27 (997 messages postés)

❤ 0

Yeoun, mage-archère-louve

C'est amusant de voir du décalage de bit dans les opérateurs dans un RM, sachant que l'ambition de base est de s'adresser à des néophytes. La communauté RM a bien évolué.

Citation:

Cependant, pour ceux à l'aise en maths et logique, cela va assurément accéler la construction de nouveaux systèmes.


Très clairement. C'est vrai aussi pour les RM où on peut insérer du script. C'est plus lisible aussi.

M.V.

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 - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers