À propos de ce fichier
dth_countdown.inc v0.4
Après avoir écrit un tutoriel sur la façon de coder un décompte, j'me suis dit hier soir que j'allais coder une petite include pour créer des décomptes plus facilement.
2 fonctions et 2 callbacks
-
StartCountdownForPlayer :
- ID du joueur
- Nom du décompte
- Temps du décompte
- Texte du décompte
- Type de décompte (GAMETEXT, MESSAGE, TEXTDRAW1, TEXTDRAW2)
- Son (true : oui, false : non) (optionnel)
Retourne :
- L'id du décompte si tous les paramètres sont bons.
-
-1 :
-
- Si votre texte est supérieur à 120 caractères.
- Si le temps est inférieur à 1 ou supérieur 999.
- Si vous avez dépassé le nombre de décomptes max (500).
- Si vous avez oublié de placé le [XX] dans votre texte, il permet de placer le temps.
- Si votre texte est supérieur à 60 caractères pour le type TEXTDRAW1.
- Si votre texte est supérieur à 22 caractères pour le type TEXTDRAW2.
-
- Si votre texte est supérieur à 120 caractères.
Utilisation :
#include
#include
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/start", cmdtext, true) == 0)
return StartCountdownForPlayer(playerid, Test, 10, "Tu recevras une arme dans ~n~[XX] secondes", GAMETEXT, true);
return 0;
}
-
StopCountdown :
- ID du décompte
Retourne :
- 1 La fonction a bien été exécutée.
- 0 L'id du décompte est invalide.
Utilisation :
#include
#include
new
countdown;
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/start", cmdtext, true) == 0)
{
countdown = StartCountdownForPlayer(playerid, Test, 10, "Tu recevras une arme dans ~n~[XX] secondes", GAMETEXT, true);
return 1;
}
if(strcmp(cmdtext, "/stop", true) == 0)
{
if(!StopCountdown(countdown)) return SendClientMessage(playerid, -1, "Erreur : ID du décompte erroné.");
return 1;
}
return 0;
}
Le nom du décompte est appelé à la fin du décompte pour exécuter le code que vous souhaitez à la fin du décompte.
Il est défini en second paramètre de la fonction StartCountdownForPlayer.
S'utilise comme zcmd ou easydialog :
#include
#include
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/start", cmdtext, true) == 0)
return StartCountdownForPlayer(playerid, Test, 10, "Tu recevras une arme dans ~n~[XX] secondes", GAMETEXT, true);
return 0;
}
P_CNTD:Test(playerid)
{
GivePlayerWeapon(playerid, 24, 150);
return 1;
}
J'ai aussi tout bêtement ajouté 2 callbacks :
forward OnPlayerCountdownStarted(playerid, countdownid, time); /* Appelé quand le décompte du joueur commence */ forward OnPlayerCountdownFinished(playerid, countdownid); /* Appelé quand le décompte du joueur est terminé. */
Lien GitHub : https://github.com/Dutheil/DTH/blob/mas ... ntdown.inc