Bien le bonjour à tous !
Introduction : Ce cours ne va pas vous apporter d’enormes nouveautés sur Skript, mais si vous voulez vraiment vous lancer dans l’élaboration de Skripts complexes, ces mécanismes est vraiment important! Le mécanisme d’indentation en soit est le fait de décaler le texte vers la droite (tab ou 4 espaces). Ce cours est là pour vous apprendre comment limiter au maximum ce mécanisme afin de simplifier et surtout d’optimiser vos Skript !
I - Exemple :
Bien, commençons par un exemple de ce qu’il faut éviter !
on join:
if player is op:
if player’s world is « world »:
message «Bienvenue monsieur l’op! »
else:
message «Étrange, vous n’etes pas dans le bon monde ! »
else:
message «Vous n’etes pas op!»
Bon, vous êtes capables de le voir : ce code marche, mais il est extrêmement lourd ! Pourquoi? Ce code se décale jusqu’à 3 tab inutilement et pour quelque chose d’encore très simple !
• Comment remédier à ce soucis ?
II - Utiliser le «stop» :
Vous avez sûrement tous entendu parlé du «stop». Il permet d'arrêter la lecture de la suite du Skript (dans un event ou commande). En règle générale, vous pouvez en abuser si vous n’utilisez pas d’effets sur le temps (wait). Mais le point important est qu’il permet à votre Skript de s’arreter et de ne pas regarder les autres conditions/actions inutilement !
>> Conséquence : Le Skript est plus optimisé car il s’arrête quand il a fini de faire ses actions ! De plus, utiliser le stop permet d’éviter les «else:» et donc d’avoir un skript plus compact !
Pour reprendre notre exemple initial, effectuons un premier changement avec le stop:
on join:
if player is op:
if player’s world is « world »:
message «Bienvenue monsieur l’op! »
stop
message «Étrange, vous n'êtes pas dans le bon monde ! »
stop
message «Vous n’etes pas op!»
stop
Le code apparaît déjà un peu plus simple. Mais comment marche t-il ? Il faut juste réfléchir à propos du «If». Dans notre cas nous somme juste dans une situation où si le joueur est op on fait quelque chose, sinon autre chose.
Dans cette situation le else ne sert à rien car si la lecture du code passe dans le if, elle sera stoppée par le «stop» et donc ne passera pas dans l’autre partie du code. Mais surtout si la lecture ne passe pas dans le if, elle passera dans le else dans tous les cas, ce qui le rend inutile !
Voici la première partie de la solution de notre code.
III - La condition inverse :
Là quoi ? Bon d’accord, ce terme je viens de l’inventer mais il décrit bien le mécanisme suivant.
En fait, il suffit d’écrire l’inverde de la condition que l’on souhaite, afin d'arrêter la lecture du code. Je sais que comme ça, cela peut paraître étrange, alors regardons un exemple !
on join:
if player is not op:
message «Vous n’etes pas op!»
stop
if player’s world is « world »:
message «Bienvenue monsieur l’op!»
stop
message «Étrange, vous n’etes pas dans le bon monde ! »
stop
Le mécanisme de condition inverse est là dans la première condition. En fait, on regarde si le joueur n’est PAS op au lieu de regarder si il est op, comme ça on peut arrêter le code et ne pas faire les autres comparaisons inutilement.
On aurait put également le faire dans la seconde partie mais c’est globalement équivalent avec un mécanisme classique dans ce cas.
Conclusion :
Ces deux mécanismes (combinés) sont là pour simplifier et optimiser les codes au maximum, ainsi en les combinant quand cela est possible, vos skripts seront beaucoup plus efficaces si ils sont complexes.
Pour avoir des exemples concrets d’utilisation de ces mécanismes:
- Conditions avant de lancer une commande
- En fait presque à chaque fois qu’il y a des conditions !
PS: Lorsqu’il n’y a pas de else, ni autre conditions pensez à la condition sans «if» ni «:» !
Voila ce post est enfin terminé! Si vous avez des remarques, n’hésitez pas, et si le concept vous plait faites le savoir ! Merci à vous !