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: Select all
If CONDITION then 'Si CONDITION alors
Et finissent toujours comme ça :
Code: Select all
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: Select all
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: Select all
If val(a) = val(b) then
Si val(a) est égale à val(b)
Code: Select all
If val(a)+24 <> val(b)-val(c) then
Si val(a) plus 24 est inégale à val(b) plus val(c)
Code: Select all
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: Select all
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: Select all
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: Select all
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: Select all
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: Select all
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: Select all
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: Select all
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.