Hello !
Aujourd'hui,nous allons parler des variables list et un peu des variables temporaires !
Une variable list,c'est quoi ?
En gros c'est une liste avec plusieurs donnés.Une variable ne peut contenir qu'un type de chose,mais les variables list peuvent en contenir ... bah tout ceux que vous voulez :D
Une variable liste se décrit comme une variable normal MAIS il faut mettre "::*" à la fin.Donc par exemple j'ajoute 1 et un text à une variable liste:
add 1 and "Hello darkness my old friend" to {maliste::*}
Pour le "and" j'avoue que je suis pas sûr mais faites deux lignes au pire avec un "add" ;)
Maintenant,si je mets
%{maliste::*}%
il y aura marqué:
"1 and Hello darkness my old friend"
En effet le "and" est pas très joli mais il sépare les deux éléments et il se mettra automatiquement.Faisons une petite pause.Je vais maintenant vous parlez des variables temporaires.En fait,il suffit juste de mettre un "_" avant le nom de la variable et elle est maintenant temporaire ! Une variable temporaire est une variable qui disparaitra après la fin du code (Fin des effets de la commande,fin des effets après un évènement par exemple)
Donc pour ne pas "abimer" la liste d'origine,on va set une variable temporaire à la liste:
set {_variabletemporairedelamort} to {maliste::*}
Nous avons donc la liste dans notre variable temporaire.Maintenant,nous allons remplacer tout les "and" par "et" ou "+" ou comme vous voulez,voici une ligne qui vous sera TRES utile dans votre parcours de skripteur.
replace all " and " with " et " in {_variabletemporairedelamort}
Et au lieu d'afficher la liste je vais afficher
%{_variabletemporairedelamort}%
Donc pour savoir ce que contient ma liste sur Minecraft:
command /viewlist:
trigger:
set {_var} to {maliste::*}
replace all "and" with "et" in {_var}
send "%{_var}%"
C'est tout pour l'affichage d'une liste en français.Maintenant,je vais vous montrer un petit exemple de l'utilité.Par exemple,je veux faire deux team ({teamred::*}) par exemple.Et je veux qu'ils puissent pas se frapper entre eux,donc je vais vérifier si l'attaquant est dans {teamred::*} ou pas ! Regardez:
on damage:
if {teamred::*} contains victim:
if {teamred::*} contains attacker:
cancel event
message "&cNe frappe pas tes alliés !"
C'est donc le "contains" qui va permettre de savoir ce que contient la liste.
Ensuite,nouveau type de loop,loop la liste ! Donc c'est simple,c'est comme les loop qu'on a vu avant:
loop {maliste::*}:
send "%loop-value%"
Ici,on va vérifier la liste,puis on va envoyer donc avec un send la "loop-value".
Mais qu'est-ce que c'est,la loop-value ? En fait c'est la valeur qui va ressortir de la liste.Donc par exemple je loop ma liste et si elle contient "1" et "2" ça va send "1",nouvelle ligne "2"
Enfaite si la liste contient 2000 choses ça va faire pour chaque chose un effect ou quoi.Imaginons,je mets "1" et "2" dans une liste,puis je la loop.Ensuite,je vais vérifier si la loop-value est = 1 ! Si oui,je vais send "Il y a un "1" dans la liste" sinon,je vais rien send.
loop {maliste::*}:
if loop-value = 1:
broadcast "Waw y'as un 1 dans la liste !"
Donc la ça va send 1 seul fois "Waw..."
Si je met pour le test "= 1 or 2:" ça va le send deux fois car j'ai mis 1 et 2 dans ma liste !
Bien évidemment,vous pouvez faire en sorte que la liste soit unique pour chaque joueur,comme les variables normals:
add "Salut %player%" to {liste.%player%::*}
Ici,il y aura un message unique dans la liste de chaque joueuer car j'ai mis "%player%" dans le "Salut etc" donc le message sera différent à chaque fois !
C'est tout pour ce tuto,qui fait aussi mon 500e message Ahahahahahah