• 23 Avril 2025, 10:46:50


Auteur Sujet: [Tuto]Apprendre a scripter  (Lu 8396 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
[Tuto]Apprendre a scripter
« le: 04 Janvier 2009, 12:20:37 »
TUTO Debut Script :


Au Menu :
1.Utiliser Pawno
2.Comprendre des fonctions et les lignes
3.Les erreurs et Warning et l'indentation
Partie 1:


Nous allons ouvrir Pawno et cliquer dans le logiciel sur l'icône Nous allons voir plein de texte que vous ne comprenez rien mais nous les verrons dans la parti 2 nous allons compilé avec le bouton il va vous demandez de l'enregistrer a un endroit précis enregistrer le dans GameMode si la parti principale ou FilterScript si ses juste un ajout au serveur ensuite mettez un Nom et cliquez sur Enregistrer la compilation démarre sa peut prendre du temps et pas en prendre sa dépend du nombre de ligne et de fonction voila vous allez voire la ligne suivante :

Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

La compilation est terminé vous allez trouver dans le chemin enregistré un ficher PWM et AMX vous pouvez fermer Pawno et le redémarrer nous allons revenir a une page blanche mais cette foi on va ouvrir notre projet avec l'icône prenez le projet que vous avez enregistrer vous voyez alors le projet de tous ta l'heur !


Mes vous vous posez une question comment se retrouver dans 50 000 lignes ?


Ces très simple nous allons recherché une fonction celle ci : OnPlayerText avec l'icône vous allez avoirs une fenêtre dans la fenêtre rajouter la fonction que vous chercher exemple : OnPlayerText

Cliquez sur OK et vous allez avoir la fonction surbrillér ses pas beau le progrès !

Bonne nouvelle vous savez contrôler Pawno !


Partie 2 :


Vous pouvez parler dans votre script sans que le serveur balance ^^

//Text que vous voulez dire

Sa sert a rien enfin oui a expliquer pour vous et vos repère !

La-Ligne//Ta déscription



aussi /*Texte*/ comme les guillemet[ ouverture des guillemet /* > fermeture des guillemet */ ]


On peut aussi sauter des lignes :

/*Ligne 1
Ligne 2
Ligne 3
*/
On ferme les guillemet .

Vous pouvez retrouver les lignes et leur définition sur la page principale du support .

On va voire les fonction dans notre script :

#include <a_samp>//Include un morceau de script qui se trouve Pawno/Include


// This is a comment



// uncomment the line below if you want to write a filterscript



//#define FILTERSCRIPT




#if defined FILTERSCRIPT//Si ses un FilterScript retirer si ses un GameMode


public OnFilterScriptInit()//Quand vous méttez la console Samp-server en route
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}



public OnFilterScriptExit()//Quand vous fermer le serveurs
{
return 1;
}


#else


main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}



#endif


public OnGameModeInit()//Ou se trouve les vehicules ,Objet,Spawn Joueur,ect...
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}



public OnGameModeExit()//Fermeture du GameMode
{
return 1;
}


public OnPlayerRequestClass(playerid, classid)//Position du joueur ,Camera
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}



public OnPlayerRequestSpawn(playerid)//Postion du jouer , camera (par default)
{
return 1;
}


public OnPlayerConnect(playerid)//Quand un joueur ce connecte
{
return 1;
}



public OnPlayerDisconnect(playerid, reason)//Quand un joueur ce déconnecte
{
return 1;
}


public OnPlayerSpawn(playerid)//Quand un joueur a choisi le skin et est spawmer
{
return 1;
}



public OnPlayerDeath(playerid, killerid, reason)//Quand un joueur est mort
{
return 1;
}


public OnVehicleSpawn(vehicleid)//Quand un vehicule est spawmé
{
return 1;
}



public OnVehicleDeath(vehicleid, killerid)//Quand un vehicule a exploser
{
return 1;
}


public OnPlayerText(playerid, text[])//Quand un joueur écris un message
{
return 1;
}



public OnPlayerPrivmsg(playerid, recieverid, text[])//Quand on fait un /pm
{
return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])//Les commandes serveurs
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
//On verras plus tard



return 1;
}
return 0;
}


public OnPlayerInfoChange(playerid)//Pour changer les informations du joueur
{
return 1;
}



public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)/*Quand on entre dans un vehicule*/
{
return 1;
}


public OnPlayerExitVehicle(playerid, vehicleid)//Quand on sort d'un vehicule
{
return 1;
}



public OnPlayerStateChange(playerid, newstate, oldstate)/*Pour changer les stats d'un joueur*/
{
return 1;
}


public OnPlayerEnterCheckpoint(playerid)/*Quand un joueur entre dans un checkpoint*/
{
return 1;
}



public OnPlayerLeaveCheckpoint(playerid)//Quand un joueur quittele chekpoint
{
return 1;
}


public OnPlayerEnterRaceCheckpoint(playerid)/*Quand un joueur rentre dans un checkpoint type Race*/
{
return 1;
}



public OnPlayerLeaveRaceCheckpoint(playerid)/*Quand un joueurquitte un checkpoint type Race*/
{
return 1;
}


public OnRconCommand(cmd[])//Les commands de la console RCON
{
return 1;
}



public OnObjectMoved(objectid)//Pour les objet en mouvement
{
return 1;
}


public OnPlayerObjectMoved(playerid, objectid)//Quand un joueur bouge un objet
{
return 1;
}



public OnPlayerPickUpPickup(playerid, pickupid)//Pour les pickup
{
return 1;
}


public OnPlayerSelectedMenuRow(playerid, row)//Pour les menus
{
return 1;
}



public OnPlayerExitedMenu(playerid)//Quand on sort d'un menu
{
return 1;
}











Partie 3 :


Les erreur et Warning c'est quoi ?



Les erreurs bas comme le nom l'indique ses quand vous faites des erreur !


Lors de la compilation des erreurs peuvent arrivé exemple :





C:\Documents and Settings\HP_Administrateur\Mes documents\Coco Games\rpg-force\gamemodes\Untitled.pwn(112) : error 001: expected token: ";", but found "}"





Celle ci est la plus connus !


Comme vous voyez il y à un 112 entre paranthé ses le numéros de la ligne ou se trouve l'erreur on y va et on y trouve :





}






Et faut faire quoi et bas certeint vont pensée a sa :






};





Nan on doit regarder la fonction entière :





public OnPlayerInfoChange(playerid)
{
return 1
}





Et la quand in regarde une autre fonction :






public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}






Le resultat nous saute a la tête il fallait mettre ; apres return1 qui donne :





public OnPlayerInfoChange(playerid)
{
return 1;
}






La on compile et tous est bien !





Mainteant les Wanings il peuve être et génant et ne pas l'être :






C:\Documents and Settings\HP_Administrateur\Mes documents\Coco Games\rpg-force\gamemodes\Untitled.pwn(106) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



1 Warning.






Nous pouvons donc en déduire que ces la ligne 106 !


On prend la fonction complète :





public OnPlayerCommandText(playerid, cmdtext[])



{


if (strcmp("/mycommand", cmdtext, true, 10) == 0)
 {
 // Do something here
 return 1;
 }
return 0;//106
}






Nous avons un problème d'indentation car la ligne :





if (strcmp("/mycommand", cmdtext, true, 10) == 0)






Est male placée les doit être aligné :





public OnPlayerCommandText(playerid, cmdtext[])


{


if (strcmp("/mycommand", cmdtext, true, 10) == 0)
 {
 // Do something here
 return 1;
 }
return 0;//106
}






Je est fait un shéma pour comprendre l'indentation (j'ai relier par les trait rouge) :












Voila un exemple que une action s'active dans une fonction !





public Fonction()


{//Ouverture d el'indentation



//L'action



return1;


}//Fermeture de l'indentation


REMARQUE : Il peut avoire une fonction a l'interrieur d'une fonction !
« Modifié: 21 Juillet 2009, 10:21:08 par coco76 »

Hors ligne Azz45

  • Good Player
  • *
  • Mafioso
  • RolePlay Player
  • Messages: 2809
    • Voir le profil
Re : [Tuto]Apprendre a scripter
« Réponse #1 le: 04 Janvier 2009, 12:34:25 »
Nice

GG  ::)

~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~


~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~~•~  ~•~  ~•~  ~•~
Avancement du GM : 3%
~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~
~•Merci Kloken, pour la vidéo lors de mon anniversaire•~

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : [Tuto]Apprendre a scripter
« Réponse #2 le: 04 Janvier 2009, 13:13:54 »
beau tuto, surment a completer :)

GG

++
nikko

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : [Tuto]Apprendre a scripter
« Réponse #3 le: 04 Janvier 2009, 13:22:45 »
Le plus dure c'est de mettre els couleures  :lmao

Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : [Tuto]Apprendre a scripter
« Réponse #4 le: 04 Janvier 2009, 14:01:42 »
Nice coco, c'est un tuto dans ce genre que j'aurai aimer avoir quand j'ai débuté.

++, MisterT.

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : [Tuto]Apprendre a scripter
« Réponse #5 le: 04 Janvier 2009, 14:03:54 »
pareil pour moi, ca serai cool si il serai déplacé dans la partie tuto  :)
il est complémentaire a celui de sim  ;)

++
nikko

Hors ligne Kuroba

  • *
  • Bandit
  • Messages: 365
    • Voir le profil
Re : [Tuto]Apprendre a scripter
« Réponse #6 le: 04 Janvier 2009, 14:04:59 »
Joli tuto :)


 Userbar by DarSon.

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [Tuto]Apprendre a scripter
« Réponse #7 le: 04 Janvier 2009, 15:54:26 »
salut,

très beau tuto, j'aurais par contre une petite suggestion pour la lisibilité, ajoute les [ code] et [/code ] afin que l'on ait une plus grande facilité à lire les codes

 :D :D Beau travail Coco :cheers

++Sim++





Hors ligne [viruz]rider_77

  • *
  • Mafioso
  • C/C++ programming
  • Messages: 2154
    • Voir le profil
Re : [Tuto]Apprendre a scripter
« Réponse #8 le: 04 Janvier 2009, 16:12:09 »
Tuto assez complet :D
Il commence à avoir plusieurs bon petits tutos pour le Pawn  :king
Les débutants n'auront pas de mal à bien commencer.

Bravo coco ;)

Hors ligne iPod_Touch

  • M.
  • *
  • Criminel
  • Messages: 40
    • Voir le profil
Re : [Tuto]Apprendre a scripter
« Réponse #9 le: 05 Janvier 2009, 12:25:01 »
Bravo, bonn travail tu as du t'amuser à faire les couleurs xD


Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : [Tuto]Apprendre a scripter
« Réponse #10 le: 05 Janvier 2009, 19:41:19 »
Oui lol merci

Hors ligne jonjon

  • *** GTA FanBoy ***
  • *
  • Bandit
  • Mouhaha
  • Messages: 420
    • Voir le profil
    • http://metra-concept.fr
Re : [Tuto]Apprendre a scripter
« Réponse #11 le: 06 Janvier 2009, 19:53:39 »
Jolie tutoriel, il reste plus qu'à corriger les fautes de frappes que tu as fait et se sera un tuto propre et nickel ;)

Cordialement, metrakit
== Jonjon ==
== Développeur du Web - http://Metra-concept.fr ==

Hors ligne D0uD0u

  • *
  • Tueur en série
  • Messages: 192
    • Voir le profil
Re : [Tuto]Apprendre a scripter
« Réponse #12 le: 07 Janvier 2009, 18:30:57 »
Perfect, j'ai compirs les bases maintenant

DD




Kit by Darson
X200 series powaaa

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : [Tuto]Apprendre a scripter
« Réponse #13 le: 10 Janvier 2009, 13:29:54 »
Voila j'ai corrigé les fautes de frappes et je suis entrain de construite une page Web qui aide à ajouter le serveur en ligne enfaite pour le faire j'aide des personnes a trouver en demandent des screens de leurs routeurs et autre !

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : [Tuto]Apprendre a scripter
« Réponse #14 le: 10 Janvier 2009, 13:44:53 »
bonne idée coco ;)

++
nikko