• 28 Mars 2024, 09:39:28


Auteur Sujet: [TUTORIEL] Le PAWN : Partie I  (Lu 9924 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
[TUTORIEL] Le PAWN : Partie I
« le: 06 Avril 2013, 16:26:42 »



Sommaire :
  • Prérequis :
  • Introduction :
  • Première ouverture du PAWNO :
  • Descriptif d'un code de base :
  • Les Callbacks (PAWN) (In English) :
  • Les Fonctions :
  • Conclusion :
  • Remerciement / Crédits :


[TUTORIEL] Le PAWN : Partie I :



Prérequis :

Pour apprendre le PAWN (#include <a_samp>) vous aurez besoin de plusieurs choses essentiels :
  • Un ordinateur ou stocker vos données/projets.
  • Un serveur SA:MP local (ou VPS), avec les fichiers SA:MP serveur disponible ici :
    http://www.sa-mp.com/download.php (le lien a coter de SA-MP 0.3() Windows Server)...
  • Une maîtrise de l'Anglais correcte.
  • De la volonté pour votre premier projet.

PS : Pour installer un serveur SA:MP dit 'vierge' vous devez aller télécharger un fichier ZIP (compressé) ici : http://www.sa-mp.com/download.php de SA-MP 0.( ) Windows Server et le dé-zipper dans un dossier vous obtiendrez :




Introduction :

Comme plusieurs personnes avant moi l'ont dit le PAWN est un langage de programmation facile et puissant (quand on maîtrise tout ses aspects).
Si vous êtes ici pour commencer a coder un serveur RP en moins de 20 minutes pour vos amis, passer votre chemin, vous aurez besoin de patience et de volonté, le PAWN est certes un langage de programmation facile il faut quand même quelques mois pour en saisir tout les aspects.
Le PAWN est aussi un bon instrument pour commencer dans la programmation (moi même j'ai commencer par le PAWN pour ensuite le PHP/SQL/XHTML/CSS).



Première ouverture du PAWNO :

Pour ouvrir PAWNO (lorsque vous avez téléchargé un serveur SA:MP vierge ((lire plus haut))).
Vous devrez allez dans le dossier 'pawno' et ouvrir l'executable (.exe) pawno.exe.
Vous devriez tomber sur cela :
Comme vous pouvez le voir il y a plusieurs boutons en haut a gauche :

Pour l'instant il y a que 3 boutons dit cliquable :
  • Nouveau fichier le premier boutons !
  • Et ouvrir un fichier.
  • Le dernier ne sert presque a rien...
Lorsque vous allez donc cliquer sur le bouton nouveau vous allez générer un fichier .pwn dit vierge sans aucune fonction dite 'utile' mais d'autres boutons sont maintenant disponibles :
  • Rechercher du texte dans le scripte. (CTRL+F)
  • Compiler (F5).
  • Compiler & Lire (F6) [Qui ne marche pas vraiment mais compile.]
Le code actuellement généré ne contient normalement aucune erreur appuyer sur F5 pour le compiler et l'enregistrer dans le dossier gamemodes (donner un lui nom comme 'TUTORIEL') ainsi vous obtiendrais un fichier .pwn et .amx qui lui est dit compiler.
Nous étudierons plus en profondeur le code dans les 3 autres parties DESCRIPTIF D'UN CODE DE BASE et CALLBACK et FONCTIONS.
Citer
PS (de Gilux) : Pawno (l'application) est ce qu'on appelle un IDE : Integrated Development Environment. En Français, cela se traduit par Environnement de Développement.
Il contient l'éditeur de code, le compilateur, et le débuggeur qui vous retournera les erreurs.
Il vous évite donc d'éditer le texte et d'avoir à utiliser un autre logiciel pour compiler.




Descriptif du code de base (Nouveau fichier) :

Code: (pawn) [Sélectionner]
// This is a comment // Ici toute les ligne avec // en début est un commentaire.
// uncomment the line below if you want to write a filterscript // Ici aussi.
//#define FILTERSCRIPT // Ici aussi.

#include <a_samp> // Ici c'est une include ou les fonctions de SAMP sont appelés.

// Il y a aussi les /* commentaire */ plus commentaire.
/*Cette fonction 'main' est la fonction principale du scripte,
elle permet juste de démarrer le serveur, inutile d'y toucher...*/
main()
{
print("\n----------------------------------"); // Print affiche "-----" le \n ou \r passe une ligne.
print(" Blank Gamemode by your name here"); // Les print affiche dans la console du serveur.
print("----------------------------------\n"); // Et non IG.
}

public OnPlayerRequestClass(playerid, classid) // Ici nous avons une callback plus en détails dans la partie.
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); // Une fonction plus en détails dans la partie.
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1; // Return 1; permet de dire 'stop' ne va pas plus bas tout c'est bien passer.
        // Return 0; marche aussi bien.
}



Les Callbacks :

Une CALLBACK est un bloc d'instruction appeler lors d'une action précise, toute les CALLBACK sont en Anglais la plus part du temps comme les FONCTIONS en exemple :
Code: (pawn) [Sélectionner]
public OnPlayerConnect(playerid) // Quand le joueur ce connecte : effectuer :
{ // On ouvre avec une accolade.
return 1; // Tout c'est bien passé.
}// On ferme l'accolade.
//(Effectuer tout ce qui est entre les accolades).
En Français on aurais :
  • Quand un joueur ce connecte, on ne fait rien de particulier.
Comme vous avez vue OnPlayerConnect signifie QuandUnJoueurCeConnecte et le (playerid) est un paramètre quand un joueur ce connecte le joueur avec l'ID = playerid on effectue ce qu'il y a dans l'accolade, ce playerid peut nous servir comme paramètre dans les fonctions pour effectuer des actions sur lui que nous voyons plus bas.

En sachant que vous pouvez vous même créer des callback (forward) et l'appeler a un endroit dans le script'.



Les Fonctions:

Les Fonctions sont des instructions utilisant les paramètres de la callback ou il est a fin d'effectuer une action précise dans le jeux, en comptant que vous pouvez très bien faire vos propres fonctions grâce aux fonctions déjà existante de SA:MP.
En exemple prenons une fonction simple dans une callback simple :
Code: (pawn) [Sélectionner]
public OnPlayerSpawn(playerid) // Quand le joueur spawn.
{
       SendClientMessage(playerid, 0xFFFFFF , "Bonjour, bienvenue !");
       // Ici on envoie un message a playerid avec la couleur 0xFFFFFF, et comme caractère :
       // Bonjour, bienvenue !
       return 1; // Tout c'est bien passer on arrête ici.
}
En résumer QuandLeJoueurSpawn, on envoie un message a playerid, avec la couleur 0xFFFFFF (blanche) et on envoie "Bonjour, bienvenue !".
Toute les instructions/fonctions ce termine par un ; (point virgule) attention !



Conclusion :

En Conclusion vous avez appris les 2/3/4 bases du script' SA:MP dit PAWN.
Dans le prochain TUTORIEL nous verrons :
  • Les variables et variables array :
  • Les types de variables :
  • Votre première commande :
  • Votre première commande avec condition :
  • Votre première fonction :
  • Votre première callback :



Remerciement :

Je tiens a remercier Gilux pour son TUTORIEL sur le PAWN (dont je me suis inspiré) avec toute ses parties.
Xartrick/Ssk  et tout ce qui m'ont aidé dans l'apprentissage du PAWN.

« Modifié: 06 Avril 2013, 23:31:56 par Xolokos »
Nippah !

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : [TUTORIEL] Le PAWN : Partie I
« Réponse #1 le: 06 Avril 2013, 17:45:20 »
Je trouve ça très court, mais l'initiative est bonne. Bonne chance pour la suite !

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : [TUTORIEL] Le PAWN : Partie I
« Réponse #2 le: 06 Avril 2013, 18:36:17 »
Je tiens à te dire bonne chance pour ce tutoriel.
Ca aidera certaines personnes dans l'apprentissage du langage PAWN
Bonne chance ! ++Kevin

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : [TUTORIEL] Le PAWN : Partie I
« Réponse #3 le: 06 Avril 2013, 21:17:23 »
Il faudrait préciser que à la base, les commandes utilisées sur samp ne sont pas intégrées dans le PAWN, certaines personnes confondent le pawn et les fonctions/callback de samp.

C'est bien dans l'ensemble, avec beaucoup d'images illustrant ton texte, et très compréhensible pour ma part.
Bon, il y a quelques fautes, comme les "s" que tu met à bouton alors que tu ne parles que d'un seul bouton, mais sinon rien de bien grave.
(a part une partie du texte que tu as mit en double, celle qui contient la citation de gilux)

[/url]

Hors ligne Salif

  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : [TUTORIEL] Le PAWN : Partie I
« Réponse #4 le: 07 Avril 2013, 11:27:40 »
Ca fait vraiment plaisir aux gens qui veulent vraiment apprendre comme moi, merci beaucoup. Hâte de voir la suite, pourquoi ne pas mettre ce tuto en post-it ?

Hors ligne Slaker

  • débutant confirmé
  • *
  • Tueur
  • tolère le sérieux uniquement quand il faut l'être
  • Messages: 53
    • Voir le profil
    • Brother in arms
Re : [TUTORIEL] Le PAWN : Partie I
« Réponse #5 le: 07 Avril 2013, 18:40:13 »
Citer
Faudra que je m'y mette un jour ^^

Ca fait longtemps que je le dis mais bon, ça va venir^^

Hors ligne maxya

  • *
  • Tueur en série
  • Messages: 158
    • Voir le profil
Re : [TUTORIEL] Le PAWN : Partie I
« Réponse #6 le: 07 Avril 2013, 22:52:11 »
J'adore ton tutoriel ! Continue comme sa ! Mais je préfère que tu rentre un peu plus dans les détails sa peut aider tous le monde .

Hors ligne Salif

  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : [TUTORIEL] Le PAWN : Partie I
« Réponse #7 le: 08 Avril 2013, 17:10:34 »
Oui, un maximum de détails, quitte à ce que le tuto soit long, c'est pas grave.

Hors ligne Gilux

  • *
  • Mafioso
  • GOOBY PLS
  • Messages: 2209
    • Voir le profil
Re : [TUTORIEL] Le PAWN : Partie I
« Réponse #8 le: 08 Avril 2013, 19:53:18 »
Ton tuto a des trucs qui manquent par rapport au mien, mais en relisant le mien après 1 an de DUT je me suis rendu compte que j'ai fait pas mal d'erreurs et d'oublis aussi  :tongue:
Si tu veux j'avais commencé un gros tuto sous forme de pdf, de bien meilleure qualité que celui que j'ai écrit sur le forum, il fait déjà 57 pages pour 8 chapitres sur 14 écrits. Je n'y ai pas touché depuis plus d'un an, mais je l'ai toujours de coté si ça t'intéresse de m'aider à le finir, je gère en programmation maintenant mais plus trop sur SA:MP, et les derniers chapitres concernent surtout le jeu (boites de dialogue, intérieurs, timers...) :smile:

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : [TUTORIEL] Le PAWN : Partie I
« Réponse #9 le: 08 Avril 2013, 20:28:13 »
Ca serais pas mal, je veux bien dès que j'aurais le temps si tu veux.
Nippah !

Hors ligne maxya

  • *
  • Tueur en série
  • Messages: 158
    • Voir le profil
Re : [TUTORIEL] Le PAWN : Partie I
« Réponse #10 le: 08 Avril 2013, 23:24:35 »
Gilux je voudrais bien voir a quoi ressemble ton PDF, stp tu peux l'upload et nous passer le liens ?

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [TUTORIEL] Le PAWN : Partie I
« Réponse #11 le: 11 Avril 2013, 04:34:26 »
Salut,

beau tuto, bravo :P

go zone tuto ^^

++Sim++