jcmick

http://jcmick.free.fr/

Chapitre 4 (5- Les plugins)

CHAPITRE 4:

Premier plugin
On va commencer par un plugin simple. Celui-ci a pour but d'attribuer de la vie de façon aléatoire (entre 50 et 150 hp) lorsqu'un joueur tape dans le chat général le mot "randomhp". Le joueur peut donc gagner de la vie mais aussi en perdre...c'est un risque.
Je sais ce que vous pensez: "c'est quoi ce plugin à 2 balles ?" En fait, j'ai voulu faire court et simple à la fois, d'où ce résultat un peu tordu.
Ca donne ça:

[color=blue]
#include
public random_hp(id)

{
if (get_user_health(id)==100)
set_user_health(id, random_num(50,150))
return PLUGIN_CONTINUE
}

public plugin_init()

{
register_plugin("tuto001", "1.0", "St3AmEr")
register_clcmd("say randomhp", "random_hp")
return PLUGIN_CONTINUE
}
[/color]

On peut pas dire que c'est bien long. Bon bah comme d'hab, on décompose tout ça ligne par ligne

(même si je pense que vous avez déjà tout compris).

Dans tous les plugins que vous ferez, il vous faudra mettre la ligne "#include " au début, c'est indispensable pour utiliser un bon nombre de fonctions. On fait appel ici au fichier "amxmod.inc" normalement situé dans le dossier "AMXPluginCreatorinclude".

Contrairement à la logique, on va d'abord regarder la fin avant de regarder le milieu:
Vous reconnaissez la procédure que l'on a étudiée

*Chapitre 1*, l'initialisation du plugin.
Je m'arrête juste sur la fonction "register_clcmd". Cette fonction vous permet de définir les fonctions associées aux événements. Ici, "say randomhp" veut tout simplement dire qu'il faut taper "randomhp" dans le chat général pour que la fonction "random_hp" s'éxécute.
Une fois l'événement accompli, c'est la procédure appelée qui prend le relais, on la définit comme suit:
"public nom_de_la_procédure(argument1, argument2, ...)"[color=red]L'argument attendu ici est l'id du joueur. Il correspond à son "numéro" de connexion. Il ne dépasse jamais le nombre de slots du serveur. Un joueur prend immédiatement l'id disponible la plus petite (commence à 1).[/color]- "if": suivit d'une condition (cette condition doit être entourée de parenthèses)- "get_user_health(id)": renvoit l'état de la vie du joueur "id" (hp)- "==100": 2° argument de comparaison (si le joueur qui tape "randomhp" a 100 de vie alors...) - "set_user_health(id, value)": mets la vie du joueur "id" à la valeur "value" - "random_num(50,150)": génère un nombre entier aléatoire entre 50 et 150 (intervalle fermé)- "return PLUGIN_CONTINUE": continue l'éxécution du plugin

A noter: comme vous pouvez le constater, je n'ai pas mis d'accolades pour la procédure conditionnelle "if". En effet, n'étant suivi que d'une seule ligne, elle peut se passer de ces accolades.