GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Ghetto76 le 04 Octobre 2011, 21:47:12

Titre: Comment créer un timer ? + plusieurs questions.
Posté par: Ghetto76 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.
Titre: Re : Comment créer un timer ? + plusieurs questions.
Posté par: Ssk le 04 Octobre 2011, 21:49:35
Il y a d'excellents tutoriels sur la partie tutoriel de ce forum concernant le PAWN :)
Titre: Re : Comment créer un timer ? + plusieurs questions.
Posté par: Ghetto76 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.
Titre: Re : Comment créer un timer ? + plusieurs questions.
Posté par: mehdi-jumper le 04 Octobre 2011, 23:02:35
Je me pose les memes interrogations concernant les questions 4,5,6 et 8.
Titre: Re : Comment créer un timer ? + plusieurs questions.
Posté par: Xartrick le 05 Octobre 2011, 07:23:50
2) http://wiki.sa-mp.com/wiki/Format (http://wiki.sa-mp.com/wiki/Format)

3)



4) Le mot-clé enum correspond à une énumération (Keywords:Initialisers - SA-MP Wiki (http://wiki.sa-mp.com/wiki/Keywords:Initialisers#enum)

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 (http://wiki.sa-mp.com/wiki/Keywords:Initialisers#static)

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.
Titre: Re : Comment créer un timer ? + plusieurs questions.
Posté par: Xolokos 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 !
Titre: Re : Comment créer un timer ? + plusieurs questions.
Posté par: Xartrick 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.
Titre: Re : Comment créer un timer ? + plusieurs questions.
Posté par: Ghetto76 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.
Titre: Re : Comment créer un timer ? + plusieurs questions.
Posté par: Xolokos le 06 Octobre 2011, 21:08:48
A bon ?
Une chose corrigé pour moi alors merci.
Titre: Re : Comment créer un timer ? + plusieurs questions.
Posté par: NoLimit le 06 Octobre 2011, 21:17:23
Pour ce qui est du timer, tu fait, tout simplement SetTimerEx (http://wiki.sa-mp.com/wiki/SetTimerEx)
Titre: Re : Comment créer un timer ? + plusieurs questions.
Posté par: Xolokos 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...