• 22 Avril 2025, 08:11:19


Auteur Sujet: Comment créer un timer ? + plusieurs questions.  (Lu 2226 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Ghetto76

  • *
  • Nouveau
  • Messages: 22
    • Voir le profil
Comment créer un timer ? + plusieurs questions.
« le: 04 Octobre 2011, 21:47:12 »
Bonjour, je suis un apprenti en Pawn et je souhaite apprendre à scripter en créant un DM pour commencer, apparemment c'est conseillé.

1) Je souhaite donc que quand le joueur fasse /rejoindreevent, un timer de 1 minute se déclenche, et qu'au bout de cette minute, les joueurs soit unfreeze, et qu'un message à l'écran apparaisse pendant 1 seconde " GO GO GO ! ". J'ai aucune idée pour faire sa, je ne vous cache pas que j'ai du mal à scripter, et je me décourage de jour en jour, si vous pouviez m'aider, pour apprendre la technique, sa serait pas mal.

2) Apparemment, il y a des %d, %s etc.. En fonction des nombre entiers, décimaux etc.. Je pense cela car dans le langage C, c'est comme cela. Je voudrais avoir un listing des différentes possibilités si possible svp.

3)
Citer
new message[127];
    GetPlayerName(playerid, message, sizeof(message));
    format(message, sizeof(message), "%s (ID: %d) à rejoint le serveur.", message, playerid);
    SendClientMessageToAll(JAUNE, message);

Peut on m'expliquer ce code ? Je sais l'utiliser mais je voudrais connaitre les détails, donc la signifation de 127, format, sizeof etc... Je n'aime pas faire des choses sans en comprendre le sens.


4) A quoi sert enum ? Comment on l'utilise ?

5) A quoi sert stock ? Comment on l'utilise ?

6) A quoi sert static ? Comment on l'utilise ?

7) Qu'est ce que l'incrémentation et la décrémentation ?

8) Que signifie strcmp, strtok, strval, et strlen ?

9) Que signifie ce code ? for(new i=0; i<MAX_PLAYERS; i++)

Voilà, je m'excuse de poser toutes ces questions, je voudrais un maximum d'informations, d'explications, et d'aide car je ne suis pas un pro en Pawn, pour ceux qui voudront bien m'aider, essayez d'utiliser un langage de "noob" svp :P Merci à tous de votre aide, cordialement.

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Comment créer un timer ? + plusieurs questions.
« Réponse #1 le: 04 Octobre 2011, 21:49:35 »
Il y a d'excellents tutoriels sur la partie tutoriel de ce forum concernant le PAWN :)



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Ghetto76

  • *
  • Nouveau
  • Messages: 22
    • Voir le profil
Re : Comment créer un timer ? + plusieurs questions.
« Réponse #2 le: 04 Octobre 2011, 21:58:30 »
J'en ai lu pas mal mais pas tous bien sur... C'est ce que je fait actuellement :) Merci ssk.

Hors ligne mehdi-jumper

  • *
  • Bandit
  • Messages: 311
    • Voir le profil
Re : Comment créer un timer ? + plusieurs questions.
« Réponse #3 le: 04 Octobre 2011, 23:02:35 »
Je me pose les memes interrogations concernant les questions 4,5,6 et 8.

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Comment créer un timer ? + plusieurs questions.
« Réponse #4 le: 05 Octobre 2011, 07:23:50 »
2) http://wiki.sa-mp.com/wiki/Format

3)


  • 127 - Taille du tableau
  • format - Fonction pour formater une chaîne de caractère
  • sizeof - Fonction qui récupère la taille d'un tableau

4) Le mot-clé enum correspond à une énumération (Keywords:Initialisers - SA-MP Wiki

5) Le mot-clé stock permet de faire ignorer les avertissements que la fonction visée génère ...

une_fonction()
{
    new i = 0;
   
    i += 1;
}

Si tu compile ce code, l'avertissement suivant va s'afficher ...

leet.pwn(69) : warning 203: symbol is never used: "une_fonction"
Tandis que si tu ajoute le mot-clé stock, cet avertissement sera ignoré.

6) Keywords:Initialisers - SA-MP Wiki

7) L'incrémentation consiste à ajouter x à une variable et la décrémentation consiste à retirer x à une variable.
Voici trois manière d'incrémenter, c'est la même chose pour la décrémentation.


new i = 0;

i++;
i += 1;
i = i + 1;

8)


9) C'est une simple boucle qui à chaque tour incrémente la variable i jusqu'à que cette variable ne soit plus inférieur à la constante MAX_PLAYERS.
« Modifié: 05 Octobre 2011, 13:54:52 par Xartrick »

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Comment créer un timer ? + plusieurs questions.
« Réponse #5 le: 05 Octobre 2011, 13:10:14 »
3)
Code: (pawn) [Sélectionner]
new message[127];//On créer une variable avec 127, 1 case pour chaque caractère.
GetPlayerName(playerid, message, sizeof(message));//On prend le nom du joueur et on le met dans la variable message.
format(message, sizeof(message), "%s (ID: %d) à rejoint le serveur.", message, playerid);//On formate en mettant le nom du joueur (message - %s) suivit de son ID (playerid - %d)
SendClientMessageToAll(JAUNE, message);//Et on l'envoi a tout le monde ! La tu auras Nomjoueur (ID:SonID)

Peut on m'expliquer ce code ? Je sais l'utiliser mais je voudrais connaitre les détails, donc la signifation de 127, format, sizeof etc... Je n'aime pas faire des choses sans en comprendre le sens.

Citer
7) Qu'est ce que l'incrémentation et la décrémentation ?
L'incrémentation permet d'additionné une variable existante exemple : new Donnuts = 1; la tu dit que t'as variable Donnuts a 1 pour l'incrémenté, Donnuts++; celà rajoute 1 a t'as valeur déja présente donc t'as variable Donnuts est maintenant égal a 2 ! Tu peut bien sûre la décrémenté en fessant Donnuts--; cela enlève 1 donc Donnuts est égal a 1 maintenant tu peut ajouté plus que 1 en fessant Donnuts+=50; ceci rajoute 50 en fessant la même chose en décrémentant Donnuts-=50; et voilà !
Résumer Donnuts--; Décrémentation
Donnuts++; Incrémentation

Citer
9) Que signifie ce code ? for(new i=0; i<MAX_PLAYERS; i++)
Ceci est une boucle Gilux en a donné un bonne exemple dans son TUTORIEL mais en bref :
Tu créer la variable new tu la met a  0 temps que i<MAX_PLAYERS qui est de 500 tu l'incrémente temps quelle est inférieur a 500 en conclusion cet boucle passe sur tout les joueur et l'ID du joueur est "i" a la place de playerid.

Le reste Xartrick t'expliqueras mieux que moi je pense bonne chance !
« Modifié: 06 Octobre 2011, 21:09:00 par Xolokos »
Nippah !

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Comment créer un timer ? + plusieurs questions.
« Réponse #6 le: 05 Octobre 2011, 13:55:33 »
@Xolokos: Ton explication pour la question 5 est fausse, sinon, le reste est relativement vrai.
J'ai également édité mon premier message.

Hors ligne Ghetto76

  • *
  • Nouveau
  • Messages: 22
    • Voir le profil
Re : Comment créer un timer ? + plusieurs questions.
« Réponse #7 le: 06 Octobre 2011, 14:35:29 »
Je remercie vraiment tout ceux qui m'ont aidé, mais après mure réflexions, j'ai décidé d'abandonner le Pawn, cela doit faire peut être 1-2 mois et je ne comprend rien, j'ai donc décidé d'abandonner le scripting. Merci à tous et désolé du dérangement.

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Comment créer un timer ? + plusieurs questions.
« Réponse #8 le: 06 Octobre 2011, 21:08:48 »
A bon ?
Une chose corrigé pour moi alors merci.
Nippah !

Hors ligne NoLimit

  • *
  • Criminel
  • Messages: 38
    • Voir le profil
Re : Comment créer un timer ? + plusieurs questions.
« Réponse #9 le: 06 Octobre 2011, 21:17:23 »
Pour ce qui est du timer, tu fait, tout simplement SetTimerEx
« Modifié: 06 Octobre 2011, 21:19:30 par NoLimit »

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Comment créer un timer ? + plusieurs questions.
« Réponse #10 le: 07 Octobre 2011, 18:33:24 »
@NoLimite tout dépend si il veut faire un timer qui renvoie une fois a une forward précise ou si il veut le répéter indéfiniment...
Sauf que la il a arrêté le PAWN...
Nippah !