Les conditions
Introduction :Les conditions permettent d’effectuer certaines commandes si plusieurs éléments correspondent à la condition.
Ils sont très utilisés pour faire des systèmes et d'autres choses.
Comment ça marche ?Les conditions commencent toujours comme ça :
- Code:
-
If CONDITION then 'Si CONDITION alors
Et finissent toujours comme ça :
- Code:
-
End if 'Fin si (Fin de condition)
Entre les deux, il y a des commandes qui seront effectuées si la condition est respectée.
Commencer une condition.CONDITION est très souvent une comparaison d'une valeur à une autre où entre les deux il y a une formule de comparaison.
- Code:
-
If VALEUR1 COMPARAISON VALEUR2 then
VALEUR1 est obligatoirement une ou plusieurs variables, quel qu’il soit, ça peut être une variable système, une variable d'un joueur, d'un bloc, ou même une variable corde, elle peut être accompagnée d'une valeur double par contre.
VALEUR2 peut être, contrairement à VALEUR1, une valeur en double ou en corde.
COMPARAISON, lui, sera un symbole mathématique de comparaison :
- = ...égale à...
- > ...strictement plus grand que...
- < ...strictement plus petit que...
- <> ...inégale à...
- >= ou => ...égale ou plus grand que...
- <= ou =< ...égale ou plus petit que...
Quelques exemples :
- Code:
-
If val(a) = val(b) then
Si val(a) est égale à val(b) - Code:
-
If val(a)+24 <> val(b)-val(c) then
Si val(a) plus 24 est inégale à val(b) plus val(c) - Code:
-
If val(a)*val(d) > 30*5/val(c) then
Si val(a) multiplié par val(d) est supérieur à 30 multiplié par 5 divisé par val(c) - Code:
-
If 30 > val(a) then
^ Faites attention à ne pas faire ça ^Faire plusieurs conditions.On a vu comment commencer par une condition, maintenant on va faire une condition avec plusieurs.
Les conditions seront entre
if et
then rassurez vous, entre ces conditions, il y aura une liaison.
- Code:
-
If val(a) = val(b) AND val(c) = val(d) then 'si val(a)=val(b) ET val(c)=val(d) alors
AND est une liaison où la condition a besoin que ces deux éléments correspondent pour exécuter les commandes concernées
- Code:
-
If val(a) = val(b) OR val(c) = val(d) then 'si val(a)=val(b) OU val(c)=val(d) alors
OR est une liaison où la condition a besoin que l'une des deux éléments corresponde pour exécuter les commandes concernées
Dans la pratique, on peut mettre autant de condition que l'on le souhaite, on peut même mettre AND et OR ensemble.
- Code:
-
If val(a) = val(b) AND val(c) = val(d) OR val(e) = val(f) AND val(g) = val(h) then
Les conditions seront respectés si val(a)=val(b) et val(c)=val(d) ou val(e)=val(f) et val(g)=val(h)
Else et Elseif.Entre
if ... then et
end if, vous allez retrouvez ces deux ou l'un deux.
ELSE (Autre) exécutera les commandes concernées si la condition n'est pas respectée.
ELSEIF (Autre si) lancera une autre condition si la première n'est pas respectée, bien sûr, il peut y en avoir plusieurs.
Les conditions sont gérés de la même manière que
if.
Exemple :
- Code:
-
If val(a) = val(b) then
'La condition est respectée.
Elseif val(c) = val(d) then
'La seconde condition est respectée.
Elseif val(e) = val(f) then
'La troisième condition est respectée.
Else
'Aucune des conditions ont été respectées.
End if
'Fin de condition.
/!\ Attention à l'ordre des ELSEIF !!!Dans les conditions où il y a ELSEIF, les premières conditions sont prioritaire, par exemple :
- Code:
-
If val(a) > 3 then
'La condition est respectée.
ElseIf val(a) > 6 then
'La seconde condition est respectée.
ElseIf val(a) > 9 then
'La troisième condition est respectée.
End if
'Fin de condition.
SMBX lisant les scripts de haut en bas, il prendra compte de la première condition venu, c'est à dire
If val(a) > 3 then, cette dernière étant respectée, les deux autre seront ignorées, même si val(a) est égale à 7 ou 12.
La solution est de commencer par le plus grand et terminer par le plus petit.
- Code:
-
If val(a) > 9 then
'La condition est respectée.
ElseIf val(a) > 6 then
'La seconde condition est respectée.
ElseIf val(a) > 3 then
'La troisième condition est respectée.
End if
'Fin de condition.