-
Notifications
You must be signed in to change notification settings - Fork 10
Principe des commandes
Le principe des commandes est sans aucun doute une des plus grosses parties de ce document de référence. C'est grâce aux commandes que le maker peut s'affranchir de beaucoup de contraintes de RPG Maker.
Typiquement, une commande n'est rien de plus qu'une action :
- Pouvant renvoyer une valeur (par exemple, les coordonnées d'un évènement)
- Pouvant effectuer quelque chose (par exemple, effacer une image)
- Pouvant effectuer quelque chose et renvoyer quelque chose
Une commande est référencée par son nom. Elles sont généralement utilisées dans des appels de scripts mais peuvent être utilisées dans des scripts. Il existe plusieurs manières d'appeler une commande :
command(:nom_de_la_commande, arg1, arg2, etc.)
cmd(:nom_de_la_commande, arg1, arg2, etc.)
c(:nom_de_la_commande, arg1, arg2, etc.)
Command.nom_de_la_commande(arg1, arg2, etc.)
-
nom_de_la_commande(arg1, arg2, etc.)
: uniquement dans un appel de script.
Les premières formes permettent aux commandes d'être accessible depuis n'importe quel script (si elles le permettent).
La dernière n'est utilisable que dans les appels de scripts (dans un événement). Comme les commandes ont été pensées pour n'être utiles que dans des appels de scripts, dans la documentation, j'aurai l'habitude de n'utiliser que la dernière forme.
Maintenant, si vous souhaitez utiliser une commande RME dans l'écriture d'un script, libre à vous de choisir votre syntaxe préférée parmi les quatre premières.
Toutes les commandes sont référencées dans la documentation (disponible ici ) et sont organisées par catégories. Chaque commande est décrite formellement.
Une commande peut prendre plusieurs arguments (ou aucun). Si une commande ne prend aucun argument, il n'est pas nécessaire d'utiliser ()
en fin de commande.
Par exemple la commande mouse_x
, qui renvoie la position X de la souris n'en demande aucun, je peux donc tout à fait faire V[1] = mouse_x
pour attribuer la position X de la souris au moment de l'appel à la variable 1.
L'action d'attribuer une valeur à un argument est souvent nommée "passer x en argument". Les arguments ont des types de données différents et ces types sont référencés dans la documentation.
Voici les types que l'on peut trouver :
Type | Description |
---|---|
:Fixnum |
il s'agit d'un entier soit n'importe quel nombre entier de - l'infini à + l'infi. (1, 10, -7000 par exemple). Il s'agit du type d'argument le plus fréquent. |
:Float |
il s'agit de n'importe quel nombre à virgule |
:String |
il s'agit d'une chaîne de caractères. Les chaînes de caractères doivent toujours être placées entre guillemets ou entre apostrophes. (Par exemple "chien" est valide, mais 'chat' aussi). |
:Boolean |
il s'agit de true (pour vrai, ou activé) ou false (pour faux ou désactivé). Une commande attendant un booléen peut donc prendre un interrupteur (local) à la place de true ou false
|
:Symbol |
il s'agit d'un mot préfixé de : , par exemple :chien ou :chat . En général, quand une commande attend ce genre de paramètre, la liste des symboles autorisés est spécifiée dans la documentation. Les symboles sont aussi très souvent utilisés pour référencer une touche du clavier ou de la souris. |
:Tone |
il s'agit d'une teinte, on conseillera d'utiliser la commande tone(r, v, b, g) qui génère une teinte pour la passer en argument. |
:Color |
il s'agit d'une couleur, on conseillera d'utiliser la commande color(r, v, b, a) qui génère une couleur pour la passer en argument. |
:Selector |
il s'agit d'une construction pour sélectionner plusieurs évènements d'un coup, les sélecteurs sont décrit précisément ici |
Un argument facultatif est un argument qui possède une valeur par défaut. Par conséquent, il n'est pas obligatoire de spécifier cet argument, si on ne veut pas le modifier.
Dans la documentation, les arguments facultatifs sont précédés d'un "*
".
Par exemple, imaginons cette commande :
une_commande(a, b, c, *d, *e, *f)
a
, b
et c
sont des arguments obligatoires.
d
, e
et f
sont des arguments facultatifs.
Je peux donc utiliser cette commande de différentes manières :
-
une_commande(truc, bidule, chouette)
et les arguments de d, e, f prendront leur valeur par défaut -
une_commande(truc, bidule, chouette, machin)
et les arguments de e, f prendront leur valeur par défaut -
une_commande(truc, bidule, chouette, machin, chose)
et l'argument f prendra sa valeur par défaut -
une_commande(truc, bidule, chouette, machin, chose, bilou)
et aucune valeur par défaut ne sera utilisée.
Il est strictement impossible de jouir de la valeur par défaut de "e" si on veut spécifier la valeur de "f". Cependant pas de panique, la documentation spécifie chaque fois la valeur par défaut que prennent ces arguments facultatifs.
Prenons la commande picture_show
comme exemple (parce qu'elle est longue, et utilise plusieurs types d'arguments !)
Affiche une image à l'écran
Nom | Type | Description |
---|---|---|
id |
Fixnum |
ID de l'image |
name |
String |
Nom de l'image (sans l'extension) |
*x |
Fixnum |
Position en X de l'image (par défaut 0) |
*y |
Fixnum |
Position en X de l'image (par défaut 0) |
*origin |
Fixnum |
Origine de l'image, 0 = Haut gauche, 1 = centré, [x,y] = orienté autours de X,Y, par défaut, zéro |
*zoom_x |
Fixnum |
Zoom sur la largeur de l'image par défaut 100 (pour 100%) |
*zoom_y |
Fixnum |
Zoom sur la hauteur de l'image par défaut 100 (pour 100%) |
*opacity |
Fixnum |
Opacité de l'image, par défaut 255 (de 0 à 255) |
*blend_type |
Fixnum |
Mode de fusion, par défaut 0, 0=Normal, 1=Addition, 2=Soustraction |
On voit que ses arguments minimes sont id
et name
. Donc pour afficher l'image "lol.png", en tant qu'image 1, il me suffit de faire : picture_show(1, "lol")
.
Maintenant voyons plusieurs cas de figure :
-
picture_show(1, "lol", 10, 20)
> > Affichera l'image 1, le fichier "lol", à 10 pixels de la gauche et 20 pixels du haut -
picture_show(1, "lol", 10, 20, 1)
La même chose, sauf que l'image sera positionnée par rapport à son centre (origine : 1 = centré) -
picture_show(1, "lol", 10, 20, [10, 10])
Cette fois ci, l'origine de l'image ne sera ni le point Haut/gauche, ni le centre, mais précisément le point de coordonnées [10, 10].
Si la taille de l'image fait 30*40 px, il est possible de prendre comme origine le point Bas/gauche : [0,40], le point Haut/droite : [30,0], ou typiquement... n'importe quel point. Très pratique ! -
picture_show(1, "lol", 10, 20, 0, 100, 84, 220, 1)
Cette fois on utilise tous les paramètres : l'origine de l'image sera son point Haut Gauche (0), elle fera toute sa largeur (zoom_x = 100) mais seulement 84% de sa hauteur (zoom_y = 84), elle aura une opacité de 220 (donc sera légèrement transparente) et son mode de fusion sera l'addition (blend_type = 1).
En général, l'annotation de type d'un argument donne une information limitée. C'est très visible dans le cas des arguments :Fixnum
. Donc voici une spécification sur certains arguments entiers :
- Lorsqu'une
opacity
est attendue, la valeur doit être comprise en 0 (transparent) et 255 (totalement opaque). - Lorsqu'un
blend(_mode/type)
est attendu, la valeur peut être 0 (normal), 1(addition) ou 2(soustraction). - Lorsqu'un
zoom
est attendu, la valeur doit être comprise entre 0 et 100. - Lorsqu'une
speed
est attendu, le nombre au négatif correspondra au sens opposé (par exemple pour une rotation dans le sens des aiguilles d'une montre la vitesse sera positive et pour tourner dans l'autre sens, la vitesse sera négative).
Il existe un certains nombre de commandes qui renvoient des valeurs (par exemple, mouse_x
et mouse_y
), ces commandes peuvent être liées à une variable (ou une variable locale, ou aux labels), de même qu'elles peuvent tout de suite construire des expressions.
Par exemple : V[1] = mouse_x
. Ou encore Si script : mouse_x > 3
.
Les commandes qui renvoient des booléens (true ou false) peuvent directement être utilisées dans une expression ou être liées à des interrupteurs (ou interrupteurs locaux), par exemple S[1] = pixel_in_picture?(1, mouse_x, mouse_y)
ou encore Si script : pixel_in_picture?(1, mouse_x, mouse_y)
.
Il existe certaines commandes qui renvoient des tableaux. Ces commandes sont un peu particulières à manipuler. Par exemple, la commande actor_armors(acteur_id)
, renverra un tableau de toutes les indexes des armures équipées par un héros. On peut connaître la taille d'un tableau au moyen de la commande standard length(tableau)
et accéder à une cellule particulière au moyen de la commande standard get(tableau, index_de_la_cellule)
.
Les commandes constituent la brique centrale de RME, elles permettent des actions très complexes en Event Making classique. Pour en voir certains usages, je vous invite à vous rendre sur la page Biloucorp qui en présente quelques usages au travers de tutoriels ludiques :) (Ces tutoriels ont étés rédigés pour l'Event Extender mais sont à priori compatible avec RME).
Introduction
Syntaxe revisitée
- Variables et interrupteurs
- Interrupteurs locaux et variables locales
- Labels et labels locaux
- Affichage dans les messages
Commandes
Valeurs constantes
Evènements enrichis
- Evènements relatifs aux cartes
- Déclencheurs personnalisés
- Déclencheurs en combat
- Sélecteurs
- Boucles évènementielles
- Micro Evènements
Outillage avancé
- Bases de données extensibles
- Définitions de profils et couleurs pour l'afficheur de textes à l'écran
Tutoriels
- Créer des jauges simples
- Créer un QuickTime Event facilement
- Un système d'infiltration
- Un mini système multi-agent
- Un système de saisie de nom custom
- Le passeur d'écran titre
- Créer des jauges en combat
Pour les scripteurs