Bienvenue dans le tutoriel « Booléens et Variables », réalisé par Vanivan !
Ce tutoriel fait suite au Tutoriel de Symbiose.
Les variables et les booléens utilisés dans ce tutoriel servent à titre d'exemple. Si vous avez besoin d'un booléen ou d'une variable unique, la démarche à suivre est de demander à EditeurSO un numéro que vous pourrez utiliser.
Un booléen est avant tout une variable, c'est-à-dire une inconnue dont on peut changer la valeur. Mais c'est une variable qui ne peut avoir que deux valeurs différentes. Dans la vie courante, les deux valeurs d'un booléen sont le “vrai” et le “faux”, ou encore le “oui” et le “non”, mais sur l'éditeur, ce sont le “0” et le “1”. Donc un booléen vaut soit 0, soit 1, et c'est ce qui va nous permettre de changer des états dans le jeu.
Etant donné qu'il n'a que deux valeurs possibles (0 ou 1), les booléens pourront être utilisées pour :
Le booléen fonctionne comme une réponse à une question fermée (question dont la réponse est “oui” ou “non”). Nous allons donc interpréter ses valeurs comme étant “oui” et “non” :
Evidemment, un booléen est à 0 par défaut. En d’autres termes, si l’on souhaite savoir si un joueur a activé un évènement, la réponse par défaut sera « non ». Voici un exemple de situation où le joueur devra appuyer sur un bouton pour débloquer une porte :
En résumé, nous pouvons définir l'évènement de la porte comme une question dont la réponse correspond à la valeur d’un booléen : “Le joueur a-t-il appuyé sur le bouton ?”
L’utilisation d’un booléen dans un projet se fait grâce à la variable Bool[XX]=…. Dans ce-cas-ci, le XX correspond à un nombre qui peut s’obtenir de 2 façons :
NB : lorsque vous avez plusieurs booléens à modifier dans vos CE (et uniquement dans les CE), il est vivement conseillé de les inscrire de la façon suivante : Bool[3..6]=0. Cette solution est bien plus rapide que la modification ligne par ligne.
/!\ Cela ne fonctionne que pour les CE et pas pour les CD /!\
Pour ceux qui aiment les exemples concrets, voici deux exemples d'évènements qui utilisent les booléens.
Le but de cet événement est de pouvoir ouvrir un coffre et ce, une seule fois seulement. Il faut pour cela utiliser un booléen dont la valeur nous informera de l'état du coffre : s'il est ouvert ou pas. Dans cet exemple, nous allons utiliser le booléen Bool[44] :
/!\ Le booléen 44 (ou Bool[44]) est numéro privé et déjà utilisé sur le jeu, vous ne pouvez donc pas l’ajouter dans votre projet.
NB : Des commentaires sont écrits après //, ce sont des lignes qui peuvent être intégrées aux pages événements, mais ce ne sont que des commentaires que je trouve utiles pour que vous compreniez bien de quoi on parle. Pour plus d'infos sur les commentaires, voir ici.
Page 1 | ||
---|---|---|
Conditions d'évènements | Commande évènements | |
Page 2 | ||
---|---|---|
Conditions d'événements | Commande événements | |
Voilà, c'est fini, vous venez de créer la liste des conditions et des commandes qui permettent d'ouvrir un coffre. Mais vous me direz, pourquoi utiliser un booléen ? Tout simplement pour “bloquer” le joueur, pour éviter qu'il prenne plusieurs fois le contenu du coffre. Si vous programmiez le coffre comme suit, son contenu pourrait être gagner indéfiniment et vous seriez alors accusé de tentative de triche :
Page 1 | ||
---|---|---|
Conditions d'événements | Commande événements | |
Cet évènement permet au joueur d’appuyer sur un bouton pour débloquer une porte :
Dans cet exemple, le joueur ne pourra appuyer qu'une seule fois sur le bouton. La porte sera donc constamment ouverte par la suite. /!\ Le booléen 44 (ou Bool[44]) est numéro privé et déjà utilisé sur le jeu, vous ne pouvez donc pas l’ajouter dans votre projet.
Page 1 | ||
---|---|---|
Conditions d'événements | Commande événements | |
Page 2 | ||
---|---|---|
Conditions d'événements | Commande événements | |
Voilà, c’est déjà fini pour l'événement “bouton”, à vous de voir pour quelles autres situations vous pouvez le reproduire .
Maintenant que vous avez compris le principe des booléens, voici quelques exercices pour vous entraîner :
Envie de plus défi ? Essayez de reproduire ce que vous voyez sur la vidéo ci-dessous .
Solution : Téléchargez-moi !
Certaines booléens sont dits “publics”, c'est-à-dire utilisables par tous, que ce soit dans le cadre d'un mini-jeu ou autre. Toutefois, ces booléens doivent impérativement être remis à 0 à la sortie de la carte.
Booléens publics |
---|
1 à 5 |
35 à 87 |
102 à 120 |
Il est important de privilégier les booléens aux numéros les plus faibles lorsque vous en avez besoin pour vos projets. Vous pourrez toutefois utiliser les numéros les plus forts si vous en avez besoin de beaucoup (pour éviter de passer de Bool[5] à Bool[35]).
Vous pouvez également retrouver ces informations dans le récapitulatif.
En plus des booléens publics cités précédemment, il existe également certains booléens qui sont utilisables par tout le monde mais leurs valeurs ne peuvent être modifiées ! Il s'agit des booléens dits “partagés”.
→ Exemple : le booléen 511 permet de connaître le genre du personnage (masculin ou féminin). Ces booléens ne doivent pas être modifiés, juste lus (“lecture seule”). Ils ne doivent être utilisés que dans vos CD ou en CE précédés de la fonction “Condition()”.
Page 1 | ||
---|---|---|
Conditions d'évènements | Commande évènements | |
Le booléen qui détermine le choix du genre au début du jeu est : Bool[511]
Position | Choix |
---|---|
1 | FEMININ |
0 | MASCULIN |
Vous pouvez également retrouver ces informations dans le récapitulatif.
Comme dit précédemment, dans la définition d'un booléen, une variable est une inconnue. Toutefois, dans ce cas-ci, cette inconnue peut avoir de nombreuses valeurs. En d’autres termes, une variable est une inconnue rattachée à une valeur qui peut changer, varier (d'où son nom). Sur l'éditeur, la valeur initiale d'une variable est 0, comme pour un booléen, et il est possible de la modifier de deux façons différentes :
/!\ Le booléen 44 (ou Bool[44]) est numéro privé et déjà utilisé sur le jeu, vous ne pouvez donc pas l’ajouter dans votre projet.
NB : comme pour les booléens, lorsque vous avez plusieurs variables à modifier dans vos CE, (et uniquement dans les CE), il est vivement conseillé de les inscrire de la façon suivante : Variable[3..6]=0. Cette solution est bien plus rapide que la modification ligne par ligne.
/!\ Cela ne fonctionne que pour les CE et pas pour les CD /!\
La variable s’utilise comme un booléen mais elle peut prendre une panoplie de valeurs différentes, pas seulement deux, ce qui implique beaucoup plus de tests en conditions. Les variables sont nécessaires à un jeu comme celui-ci, et sont utilisées, pour :
A VENIR
Comme pour les booléens, voici quelques exercices pour vous exercer à l’utilisation des variables :
Pour cet exercice, vous pourrez implémenter une petite quête : le joueur devra parler à un PNJ qui l'enverra chercher son chien. Une fois le chien attrapé, le joueur revient voir le PNJ, qui lui dit qu'il s'est encore enfuit. Et ça continue tant que le joueur ira chercher son chien. La boucle s'arrête si le joueur va chercher l'os du chien avant d'aller chercher le chien (l'os se trouvant dans un placard du PNJ).
Les trois variables serviront à stocker le résultat courant du joueur, celui du PNJ, et le nombre de manches déjà jouées. Les booléens serviront à dire que la manche courante est finie, dire si le joueur a gagné une manche et dire si le PNJ a gagné une manche. N'oubliez pas de prendre en compte les matchs nuls !
Comme pour les booléens, certaines variables sont dites “publiques”, c'est-à-dire utilisables par tous, que ce soit dans le cadre d'un mini-jeu ou autre. Toutefois, ces variables doivent impérativement être remises à 0 à la sortie de la carte.
Variables publiques |
---|
13 à 16 |
61 à 65 |
306 à 316 |
Il est important de privilégier les variables aux numéros les plus faibles lorsque vous en avez besoin pour vos projets. Vous pourrez toutefois utiliser les numéros les plus forts si vous en avez besoin de beaucoup (pour éviter de passer de Variable[16] à Variable[61]).
Vous pouvez également retrouver ces informations dans le récapitulatif.
En plus des variables publiques citées précédemment, il existe également certaines variables qui sont utilisables par tout le monde mais leurs valeurs ne peuvent être modifiées ! Il s'agit des variables dites “partagées”.
→ Exemple : la variable 96 permet de connaître selon l'arme choisie par le joueur au début du jeu (Arc, Baguette magique ou Epée). Ces variables ne doivent pas être modifiées, juste lues (“lecture seule”). Elles ne doivent être utilisées que dans vos CD ou en CE précédées de la fonction “Condition()”.
Page 1 | ||
---|---|---|
Conditions d'évènements | Commande évènements | |
La variable qui détermine le choix de l'arme au début du jeu est : Variable[96]
Position | Choix |
---|---|
1 | ARC |
2 | BAGUETTE MAGIQUE |
3 | EPEE |
La variable qui détermine le choix de la divinité au début du jeu est : Variable[95]
Position | Choix |
---|---|
1 | DEMONIO |
2 | DONBLAS |
3 | DRANIGBA |
4 | VANILIUS |
5 | DANAVA |
6 | ZANDAROS |
7 | WILLANJIS |
8 | FULRULLIA |
9 | DRANIG |
10 | BRASTOS |
11 | AARIBA |
12 | NARTHE |
Vous pouvez également retrouver ces informations dans le récapitulatif.
En plus des variables simples, il existe des variables dites « serveur ». La différence entre les deux est assez simple à retenir :
Par exemple, si un joueur rentre dans une pièce et qu'il appuie sur un bouton pour ouvrir une porte, les effets sont différents selon le type de variable :
→ Variable : la porte ne s'ouvre uniquement pour ce joueur ;
→ Variable serveur : la porte s'ouvre pour tout le monde.
Comme nous l’avons vu précédemment, les variables joueurs contiennent des nombres. Chaque variable avait donc un type associé bien défini. Or pour les variables serveur, c'est totalement différent : il est possible de les utiliser comme une chaîne de caractères, comme un entier ou encore comme un booléen (au choix).
Il est donc possible de faire exactement les mêmes opérations que sur les variables classiques.
→ L'incrémentation par exemple, pour stocker des entiers dans la variable serveur :
Serveur[VariableExemple] = Serveur[VariableExemple] + 1
→ Ou encore les commandes InputString ou Concat pour y stocker des chaînes de caractères :
Serveur[VariableExemple] = InputString('Rentrez le nom de la variable')
Les variables serveurs peuvent être utilisées pour de nombreuses choses comme :
Les variables serveur sont très utiles pour une maison de guilde, un mini-jeux et d'autres fonctionnalités… Ce n'est pas tant dans les quêtes que les variables serveur vont servir, mais plutôt dans la conception d'évènements utiles aux joueurs et qui renforcent le Role Play.
Lorsque l'on utilise des variables serveurs, on peut en créer en intégrant des variables relatives aux joueurs. Par exemple : Serveur[VariableServeur%Name%]. Dans ce cas-ci, il existera alors autant de variables serveurs qu’il y a de noms de personnages différents.
Évidemment, ces manipulations demandent beaucoup de place en mémoire. Il faut donc en parler à EditeurSO avant toute chose. Mais attention, ceci est réservé aux grosses quêtes ou aux projets assez conséquents, donc inutile d'utiliser ce type de manipulation pour une maison de guilde, par exemple.
Exemple :
Prenons par exemple le système du mariage à l’église.
Serveur[Mariage%Name%]=…
Dans ce cas-ci, si Test (nom du joueur) se rend à l’église, la variable va se transformer en Seveur[MariageTest]. Cette variable serveur est initialisée à 0 comme toutes les autres. En fonction de sa valeur, nous pourrons alors savoir si le joueur est marié ou non.
→ Si la variable vaut 0, alors il n'est pas marié. Donc s’il va s'adresser au prêtre, ce dernier va lui demander s'il veut se marier.
→ Si la variable est différente de 0, c’est qu’elle contient donc une chaîne de caractères, qui est en fait le pseudo de la personne avec laquelle le joueur est marié.
Cela est possible parce qu’il est tout à fait possible d’incorporer des fonctions dans la construction de nouvelles variables.
Serveur[InputString('Rentrez le nom de la variable')] (Prendra comme nom ce que le joueur aura écrit.)
Ça peut paraître dingue, mais ça marche !
/!\ Serveur[Test_Variable[22]] ne fonctionne pas. Même chose pour les booléens.
Il est également possible d'utiliser des variables qui se modifient toute seule en dehors de tout schéma de code de l'éditeur. C'est la machine qui héberge le jeu qui s'en occupe. Vous pouvez donc demander à ce que la variable serveur fasse plusieurs actions parmi les suivantes :
Comme pour les variables et booléens joueurs, il y a aussi des variables serveurs dits “partagées”, dont la lecture est possible mais la modification non, sauf demande spécifique…
Exemple : la variable serveur Serveur[MoisVesperaeName] permet de connaitre le mois actuel dans la langue de Vesperae.
Pour retrouver la liste, rendez-vous sur le récapitulatif.