Ce tutoriel vous guidera à travers les étapes nécessaires pour créer un HUD de munitions pour les armes en utilisant le SDK 2.2 d'Half-Life 1.
On va commencer par créer une classe pour notre nouvelle arme. En gros, comment ça marche une arme ? Voilà pour les déclarations ! On va créer une classe pour notre nouvelle arme. Pour votre arme, ajoutez-le au projet.
Les membres de la classe sont une entité. Il faut indiquer au moteur quelle animation jouer au moment voulu. Le modèle « view » de l'arme permet de visualiser l'arme en monde. Vous pouvez par exemple regarder votre w_monarme.mdl. Ceci fait, on peut commencer à coder les fonctions. Les armes côté client ne retournent pas TRUE, donc elle retournera TRUE quand même. Il faut aussi retourner le numéro du slot où se trouve l'arme dans le HUD. Vous pouvez utiliser les mêmes munitions, mais il faut éviter les problèmes dus à UseDecrement().
Il faut être chargée d'initialiser les deux modèles « view » et « player ». Il faut identifier le type d'animation que le modèle du joueur doit jouer. Elle sert à « dé-initialiser » l'arme si vous voulez, avant de passer à une autre arme. On vérifie d'abord si le joueur est sous l'eau ou s'il n'a plus de munitions pour éviter un tir impossible.
On arrive aux appels de fonctions pour les dégâts causés par le tir et l'inexactitude de l'arme. Les valeurs VECTOR_CONE_#DEGREES où # prend une valeur de 1 à 10, plus 15 et 20 sont curieuses et définies dans weapons.h. Il va falloir déclarer le projectile envoyé. Il faut s'arrêter sur iDamage. S'il est mis à 0, il n'y a pas besoin ensuite d'appeler DecalGunshot(). Même si vous mettez BULLET_PLAYER_MONARME, cela causera quand même des dégâts à la cible. Utilisez EMIT_SOUND() pour jouer un son. Il faut également définir la position de la douille et le type de son lorsque la douille tombe au sol. Enfin, il faut définir m_flNextPrimaryAttack.
Lire aussi: Idées d'activités manuelles pour enfants avec un pistolet à colle.
Il nous reste deux fonctions. Elle est très simple et permet de jouer l'animation au modèle de l'arme. Pas grand chose à dire dessus. Elle est appelée lorsqu'on ne fait rien. Pour les dégâts, on va utiliser les skill cvar. On va à présent définir la valeur de plrDmgMonArme. Vous pouvez bien évidemment changer la valeur. On va donc maintenant le déclarer.
Ça c'était pour les décals d'impact. La fonction FireBulletsPlayer() gère les munitions, c'est-à-dire le chargeur. Cette variable contiendra le nombre de munitions disponibles pour notre arme. Eh voilà, on arrive à la fin ! Il faut ajouter votre arme et votre nouveau type de munitions dans vos maps. Reste enfin hud.txt dans le dossier sprites.
Il faut l'appel de SET_MODEL(). Il faut également charger les fichiers ressources nécessaires avant leur rendu. Sans les ressources, vous n'aurez pas de modèles, sons, events ou sprites. Utilisez PRECACHE_SOUND(), PRECACHE_MODEL(), et PRECACHE_EVENT() pour les fichiers *.sc des events. Si vous avez des sprites, c'est PRECACHE_MODEL() aussi. La valeur -1 correspond à la capacité maximale, et il faut créer un nouveau type de munitions. N'oubliez pas que le premier slot est à 0 donc il faut soustraire 1 à la vraie valeur !
Ici, il n'y a pas grand chose à dire. Le rayon maximal que le tir peut traverser est de 8192 (la taille d'une map). On prend la position du canon. On arrive aux appels de fonctions. Il faut définir le temps minimal entre deux tirs en définissant m_flNextPrimaryAttack. // Second mode de tir.
Voilà ! Vous avez appris comment faire quelque chose (à faire des armes tiens !).
Lire aussi: Comment Fileter un Canon
Lire aussi: Fabriquer un pistolet LEGO qui tire
tags: #faire #un #hud #munitions #des #armes