Ce Monde Vous Appartient
Connectez-vous dès maintenant ici pour accéder au forum où inscrivez-vous !

Origami





 
AccueilCalendrierFAQRechercherMembresGroupesS'enregistrerConnexion

Partagez | 
 

 [TUTO] Apprendre a scripter !

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Tyler
Admin
Admin


Messages : 138
Points : 199
Date d'inscription : 10/12/2010
Age : 19
Localisation : Marseille

MessageSujet: [TUTO] Apprendre a scripter !   Lun 13 Déc - 8:24

Bonjours,

Dans ce tutoriels, je vais vous apprendre les bases du pawn. C'est un langage complexe lorsque on débute mais il est enfait simple d'utilisation après.

Je doit vous prévenir, il vous faut comme même un anglais correct étant donné que le pawn est entièrement en anglais.

Tout d'abord, télécharger les fichiers nécessaire pour le pawn ect ici:
http://files.sa-mp.com/samp03bsvr_R2_win32.zip. (0.3b)
http://team.sa-mp.com/03cR/zz1/samp03csvr_RC4_win32.zip (0.3c)

I) Donc décompressez votre archive. Vous allez vous retrouvez avec plusieurs dossiers et des fichers.

II) Allez sur le dossier "pawno" et sur l'application "pawno". Une nouvelle fenêtre va apparaitre .

III) En haut à gauche, en dessous de "file", cliquez sur la feuille blanche. Voici ce qui devrait apparaitre:

Code:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
   print("\n--------------------------------------");
   print(" Blank Filterscript by your name here");
   print("--------------------------------------\n");
   return 1;
}

public OnFilterScriptExit()
{
   return 1;
}

#else

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

#endif

public OnGameModeInit()
{
   // 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()
{
   return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
   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 OnPlayerConnect(playerid)
{
   return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
   return 1;
}

public OnPlayerSpawn(playerid)
{
   return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
   return 1;
}

public OnVehicleSpawn(vehicleid)
{
   return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
   return 1;
}

public OnPlayerText(playerid, text[])
{
   return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
   if (strcmp("/mycommand", cmdtext, true, 10) == 0)
   {
      // Do something here
      return 1;
   }
   return 0;
}

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

public OnPlayerExitVehicle(playerid, vehicleid)
{
   return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
   return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
   return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
   return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
   return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
   return 1;
}

public OnRconCommand(cmd[])
{
   return 1;
}

public OnPlayerRequestSpawn(playerid)
{
   return 1;
}

public OnObjectMoved(objectid)
{
   return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
   return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
   return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
   return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
   return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
   return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
   return 1;
}

public OnPlayerExitedMenu(playerid)
{
   return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
   return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
   return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
   return 1;
}

public OnPlayerUpdate(playerid)
{
   return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
   return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
   return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
   return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
   return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
   return 1;
}

(ne prêtez pas attention à la couleur, elle n'est pas toute verte d'habitude)

Voici la base de tout GM et tout FilterScript qui puissent exister.

Il faut que je vous explique ce qu'est un GM et un Filterscript.

GM: C'est ce qui est de plus important dans un serveur. C'est lui qui va contenir le plus de code ect ... Vous comprendrez avez les FilterScripts

FilterScripts: Ce sont des petits codes qui permettent d'alléger le GM. Ils servent également à tester de nouvelles fonctionnalités.

Nous allons analyser le code:

Code:
#include <a_samp>

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
   print("\n--------------------------------------");
   print(" Blank Filterscript by your name here");
   print("--------------------------------------\n");
   return 1;
}

public OnFilterScriptExit()
{
   return 1;
}

#else

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

#endif

public OnGameModeInit()
{
   // 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()
{
   return 1;
}

Voici la base du script, si vous voulez faire un GM (GameMode) supprimer les OneFilterScript ...
Dans cette partie du script, principalement, un peut donner un nom au GM ( ce nom sera visible sur la page de SA-MP) On peut également mettre des "#define" qui permettent de définir des choses. Un exemple: #define COLOR_RED 0xAA3333AA ; dans ce cas là, on défini que 0xAA3333AA est la couleur rouge et l'on peut l'utiliser de cette manière:

if (strcmp("/test", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, COLOR_RED, "Le joueur verra ce message de couleur rouge");


Là on envoit au joueur ce message: "Le joueur verra ce message de couleur rouge"

Bref voilà les #define

Passons à une autre partie:

Code:
public OnPlayerConnect(playerid)
{
   return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
   return 1;
}

OnPlayerConnect signifie: le joueur se connecte. Donc que se passe-t'il à la connextion du joueur ?

Un exemple:

Code:
public OnPlayerConnect(playerid)
{
    SendClientMessage(playerid, COLOR_YELLOW, "Bienvenue sur mon serveur !");
    new message[127];
    GetPlayerName(playerid, message, sizeof(message));
    format(message,sizeof(message), "%s (ID: %d) à rejoint le server ! ", message, playerid);
    SendClientMessageToAll(0xC0C0C0AA, message);
   return 1;
}

Dans un premier temps, l'on envoit un message de bienvenue au joueur (1er ligne)
Dans un deuxième temps, l'on informe de sa venue aux autre joueurs. (4 suivantes lignes)

Ce type de cas marche dans tout: par exemple dans: public OnPlayerDisconnect(playerid, reason); public OnPlayerSpawn(playerid); public OnVehicleSpawn(vehicleid) ect ect ...

NB: Tout action se termine par "return 1;" ne l'oubliez pas

Que se passe quand le joueur fait ou bien fait cela, c'est plutôt simple.

Donc voilà, les bases du scripts je pourrait faire d'autres tutos plus petits et plus simples pour préciser certaines choses.

J'espère qu'il aidera un peu les nouveaux dans ce domaine

A vos commentaires !


__________________________________________________


~Tyler_Karraz~


Mapper/Scripter/WebMaster/Designer Very Happy

Niveau: 16

Groove Up, Ballas Down, Groove control the city niggaz !

Ma galerie >>>ICI<<<
Vous voulez une bannière ?? >>>ICI<<<
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Paul_Johnson
Membre
Membre


Messages : 1
Points : 1
Date d'inscription : 14/11/2012

MessageSujet: Re: [TUTO] Apprendre a scripter !   Mer 14 Nov - 5:47

Bonjour ou bonsoir ! Alors voilà avec un ami , nous souhaiterions faire un serveur SAMP de type RolePlay . C'est pour cela que depuis quelques temps je me renseigne sur Youtube et également sur des forums et sites ! Je suis donc ici pour demander du secours , je me demandais si quelqu'un parmi les scripteurs auraient moyen de m'aider à scripter mon futur serveur . Merci d'avance et bon jeu à tous !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
[TUTO] Apprendre a scripter !
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Tuto] Apprendre à utiliser Word et Excel
» Tuto instruments : Ils vous simplifie la vie alors apprenez à mieux les connaitre !
» [Tutoriel] Apprendre les bases du graffiti
» [Tuto] Apprendre le PixelArt
» [Tuto] Apprendre à faire un groBer [By SALIF]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Ce Monde Vous Appartient :: Autres :: Modding GTA San Andreas :: Scripting [PAWN CENTER]-
Sauter vers: