Le Deal du moment :
Google Pixel 7 5G – Smartphone 6,3″ OLED ...
Voir le deal
316 €

Aller en bas
Kingdommangas
Kingdommangas
Membre

Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
https://www.youtube.com/channel/UCqGFuGrzm7jim1o5QJ4lKvg

Tuto RME base: Retour de commandes Empty Tuto RME base: Retour de commandes

Dim 11 Sep 2016 - 22:40


-----------------------------------------------------
Une commande peut être une action, par exemple picture_show, qui se contente d'afficher une image. Mais une commande peut aussi renvoyer une information, par exemple mouse_x, qui renverra la position x de la souris.

Une commande peut être liable

Il existe plusieurs types de retour de commande. La plupart des commandes renvoyant des informations, les renvoient sous forme d'entiers. Elles peuvent donc être liées à une variable. Par exemple : V[1] = mouse_x. Les commandes renvoyant true ou false peuvent être associées à un des interrupteurs. (true correspondant à l'interrupteur activé, false à l'interrupteur désactivé).
Elles peuvent aussi être directement liées à une condition. Par exemple : Si Script : mouse_x > 15 ou encore Si Script : actor_has_weapon?(1).
Par convention, une commande renvoyant true ou false se termine par un point d'interrogation.

Commandes renvoyant des tableaux

Il arrive qu'un commande renvoie une structure de données un peu plus complexe qu'une valeur simple. En effet, il est possible de renvoyer un tableau de données. Un tableau de données est, comme son nom l'indique, une valeur qui en contient plusieurs autres, indexées par un entier. Un tableau commence toujours à l'indice zéro et finit à l'indice de la taille - 1. Il existe plusieurs manières d'accéder à des informations sur les tableaux.

Renvoyer la taille d'un tableau

Il existe deux manières de renvoyer la taille d'un tableau. La première est via la commande length(tableau), qui renvoie la taille d'un tableau passé en argument. La seconde est propre à Ruby : tableau.length. Vous êtes libre de choisir la manière de récupérer la taille.

Accéder à un élément d'un tableau

Comme pour la taille, il est possible d'accéder à un indice en particulier. Soit en utilisant la commande get(tableau, n) qui renvoie la n-ième valeur du tableau (n'oublions pas que le tableau commence à 0, la première est donc 0), soit la méthode ruby : tableau[n].

Récapitulatif

Si on prend par exemple une commande qui renvoie un tableau :
Tuto RME base: Retour de commandes 1112

Et que l'on décide de stocker le tableau renvoyé par actor_armors(1) dans la variable locale SV[1] :

   SV[1] = actor_armors(1)

Voici alors quatre manières équivalentes de retourner la taille du tableau :

   SV[1].length
   length(SV[1])
   length(actor_armors(1))
   actor_armors(1).length

Et voici quatre manières équivalentes de retourner le premier élément du tableau :

   SV[1][0]
   get(SV[1], 0)
   actor_armors(1)[0]
   get(actor_armors(1), 0)

Exemple concret

Imaginons que nous voudrions que le héros 1 dise toutes les armures qui lui sont équipées, voici le code évènement :
Tuto RME base: Retour de commandes 687474703a2f2f7777772e62696c6f75636f72702e636f6d2f4243572f4e756b692f524d452f6974657261746575722e706e67

Concrètement, on initialise les variables. La variable 1 récupère le tableau de toutes les ID's d'armures équipées. La variable 2 sa taille. La variable 3 initialise un compteur (qui va nous servir à récupérer toutes les armures une par une). Ensuite il suffit de boucler tant que le compteur n'est pas égal à la taille. Et récupérer les éléments un par un au moyen de la commande get. (Les index des tableaux commencent à zéro). Ensuite il suffit de se servir des commandes relatives aux armures pour avoir les informations désirées.

-------------------------------------------------


---------------------------------------------

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum