Chapitre 8: Les boucles. Les boucles, c'est quoi? Les boucles sont des "petites procédures" éxécutées plusieurs fois de suite. Pour y trouver un intérêt, on s'arrange pour faire incrémenter, décrémenter (ou ce que vous voulez) une variable à chaque fois qu'on a fait un tour. Ainsi, en 2 lignes, on peut en faire 30.
Un conseil, soyez flémard en programmation. Si vous pouvez faire court, faites-le, ça permettra une optimisation du plugin en plus de la facilité/rapidité de lecture.
Il existe plusieurs types de boucles en programmation. En SMA, vous vous servirez principalement d'un seul d'entre eux: le "for". Je vous parlerai des autres types plus tard, ça sert à rien de faire du bourrage de crâne, ce qu'il faut, c'est comprendre le principe des boucles. La boucle "For"
Cette boucle a besoin d'une variable, d'une valeur de départ, d'une valeur de fin et d'une valeur d'incrémentation. Vous en faites pas, c'est très simple. Avec cette boucle, vous codez une déclaration, une affectation de variable et un test en même temps (on n'aurait pas vu ça dans les chapitres précédents?
Voici un exemple d'utilisation de la boucle "For": [color=blue] for(new i=0; i<10; i++) client_print(0, print_chat, "Bienvenue !") [/color]
Le message "Bienvenue !" est envoyé 10 fois de suite dans le tchat (je sais, ça n'a aucun intérêt) . On décompose:
- "new i=0": définition et affectation d'une variable, déjà vu dans le chapitre 3. - "i<10": la boucle s'effectue tant que la variable "i" est inférieure (strictement) à 10. - "i++": incrémente la variable "i".A noter: "i++" revient à faire "i=i+1" comme "steamer--" revient à faire "steamer=steamer-1".
Donc "i" va s'incrémenter jusqu'à atteindre une valeur limite, ici 9. La boucle s'effectuera 10 fois avec une valeur de "i" différente (0,1,2,3,....,9). Ici aussi, on retrouve l'absence d'accolades; et oui, le for n'est suivi que d'une seule ligne de code. Attention: les séparateurs dans la boucle "For" sont des points-virgules et non des virgules.
Voici un extrait de plugin ("Admin SlayAll"), un plugin qui selon moi ne présente aucun intérêt sauf peut-être celui de vous expliquer l'utilisation de la boucle "For":
[color=blue] new plist[/color][32][color=blue],pnum get_players(plist, pnum ,"a")
for(new i=0; i user_kill(plist[/color][color=blue]) [/color]
Et en plus, vous allez apprendre de nouvelles fonctions . Bon, la première ligne, je me passe de commentaires, vous l'avez comprise sans problème. En revanche la deuxième, un peu moins à mon avis. Allez, c'est parti pour les détails: [color=blue] get_players(plist, pnum ,"a") [/color]- "plist": c'est la liste (tableau de nombres) dans laquelle vont être indiqués les index des joueurs (mais pas n'importe lesquels...) - "pnum": renvoie le nombre de joueurs trouvés - "a": flag permettant de ne sélectionner que les joueurs en vie
Je détaillerai la fonction "get_players()" dans un autre chapitre. Pour l'instant, tout ce que vous avez à savoir, c'est qu'après cette ligne, "pnum" contient le nombre de joueurs en vie et "plist" l'index de chacun de ces joueurs.
On arrive à la boucle: [color=blue] for(new i=0; i user_kill(plist[/color][color=blue]) [/color]
Cette boucle va tuer un à un tous les joueurs (encore en vie, logique...) du jeu grace à la fonction "userkill(id)". Le tableau "plist" contient "pnum" éléments (index).
Mes deux exemples ne présentent aucune accolades mais si vous avez plus d'une ligne de code à répéter plusieurs fois, vous pouvez en ajouter.
Date de création : 11/12/2005 @ 14:59
Dernière modification : 13/05/2006 @ 18:27
Catégorie : 5- Les plugins
Page lue 1675 fois
Prévisualiser la page
Imprimer la page
|