PDA

View Full Version : [Tutorial] Comment bien se lancer dans le Pawn [NON-TERMINÉ]


raphy_963
18/07/2012, 12:11 PM
IL VOUS EST INTERDIT DE REPARTAGER CE TUTO SANS MA PERMISSION!

Bonjour tout le monde, voici mon premier tuto Officiel, en espérant que vous aimerez.

Ce tutorial est destiné aux nouveaux qui souhaite apprendre le Pawn. Avant toute chose, je ne vous montre en aucun cas comment scripter, je ne fait que vous montrer comment apprendre.

N.B. Si vous êtes nouveau et n'avez jamais scripter, il est fortement déconseillé de vous lancer dans un RP en utilisant une base, le code est trop complexe pour votre niveau et cela ne vous mènera à rien. Suivez ce petit tuto et vous saurez comment bien apprendre

__________________________________________________ _______________________________________________
Armons-nous!

Premièrement, nous allons télécharger les fichiers nécessaires pour votre apprentissage.
Rendez vous sur cette page http://sa-mp.com/download.php et tout en bas de la page, se trouve les fichiers serveur, si vous êtes sous Windows prenez windows et si vous êtes sous Linux, prenez Linux.

Maintenant que les fichiers nécessaires sont installé, nous allons maintenant ouvrir le fichier .rar. De préférence, créer un dossier à l'emplacement de votre choix et extrayez les fichiers dedans, dès que cela est fait, nous pouvons maintenant fermer l'archive.

__________________________________________________ _______________________________________________
C'est quoi tout ces dossiers et fichiers?

Nous voila avec des dossiers et des fichiers. Pour l'instant cela ne vous dit absolument rien, mais je vait tout de suite vous expliquer le role et le fonctionnement de chaque dossier.

Les dossiers :
Filterscript - Il s'agit de script que l'on rajoute sans pour autant l'ajouter au gamemode (nous verrons la définition plus tard). Il faudra placer les FS (FilterScripts) à l'intérieur de ce dossier et ensuite l'inscrire dans server.cfg ( on verra sa plus tard aussi ).

Gamemodes - C'est le dossiers dans laquel les gamemodes se trouve, on trouve les GM (GameModes) par défaut de SAMP : grand larceny, LVDM, barron et rivershell. Il n'est pas nécessaire de les garder mais ils peuvent vous servir, on sait jamais.

Include - Ce dossier n'est pas vraiment utile en général, mais si vous modifier le Gamemode de Grand Larceny ou utiliser les includes qui s'y trouve, il est quand même préférable de le garder, au cas ou.

npcmode - C'est le dossier ou sont les scripts compilés de vos bots, pour créer un bot, il faut créer un script (et oui ) et pour créer ce script, il faut d'abord "record" (enregistrer pour les non anglophones) ce bot. (Merci a Shidony). Une partie sera réservé pour les NPC.

pawno - Ce dossier étrange est TRÈS IMPORTANT AU DÉVELOPPEMENT DE SCRIPT. C'est le IDE (L'environnement de développement) une partie sera attardé a pawno.

plugins - Les plugins permettent une meilleure compatibilité avec votre serveur comme par exemple, utiliser un streamer ou autre. Il est préférable de mettre un streamer sur votre serveur.

scriptfiles - Ici seront stocké les fichiers utilisé dans votre Gamemode ou vos Filterscripts, Par exemple, si vous créer un système d'enregistrement avec un include comme Dini ou YSI, les fichiers seront stocké ici avec l'emplacement que vous aurez choisie.

Les fichiers :

announce.exe - Il est utilisé par samp-server, si vous l'ouvrez, il fermera automatiquement

samp-license.txt - La license de SAMP, si vous voulez le lire, bonne lecture :P

samp-npc - Il est utilisé pour les NPC par samp-server.

samp-server - c'est LE fichier important, il est utilisé pour lancer votre serveur. Quand vous l'ouvrez, votre serveur sera on par contre si vous le fermez il sera off.

server.cfg - c'est le fichier de configuration pour votre serveur, je vous expliquerai son fonctionnement.

__________________________________________________ _______________________________________________
Je script comment?

Maintenant que vous avez les fichiers nécessaires et savez l'utilité de chaque dossier et fichier, on peut se lancer dans le vif du sujet.

Je vous invite maintenant a lire les tutorials de Gilux afin de bien comprendre le fonctionnement et les différentes fonctions. Prenez le temps de bien lire et de comprendre ce tutorial, il vous sera très utile!

Tuto Gilux :
Partie 1: http://www.gtaonline.fr/forums/index.php?topic=11593.0
Partie 2: http://www.gtaonline.fr/forums/index.php?topic=11595.0
Partie 3: http://www.gtaonline.fr/forums/index.php/topic,11688.0.html

__________________________________________________ _______________________________________________
Server.cfg

Dès que vous avez terminé de lire le tuto de gilux et êtes sur de bien comprendre, il est temps de vous expliquer le server.cfg

Pour l'ouvrir nous allons utiliser Bloc-Note

Voici ce que vous avez par défaut

echo Executing Server Config...
lanmode 0
rcon_password changeme
maxplayers 500
port 7777
hostname SA-MP 0.3 Server
gamemode0 grandlarc 1
filterscripts gl_actions gl_property gl_realtime gl_mapicon ls_elevator test_cmds ls_mall attachments
announce 0
query 1
weburl www.sa-mp.com
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 10
logtimeformat [%H:%M:%S]

Passont aux explications!

echo Executing Server Config...
~Ne toucher pas a sa, si vous comprenez le batch, vous comprendrez bien cette ligne mais ne la changer pas

lanmode 0
active ou désactive le "mode lan" permettant une plus grande fluidité en jeu mais conssomant beaucoup plus de bande passante. A n'activer donc que pour jouer avec quelques amis chez-vous (ou en tout cas tout reliés à la même Box). (Merci a Pseudonyme)

rcon_password changeme
Le mot de passe utilisé pour la rcon, il faut obligatoirement le changer sinon samp-server ne se lancera pas. Pour se connecter en RCON il vous faudra faire : /rcon login votremdp

maxplayers 500
Le nombre de joueurs maximum

port 7777
Le port utilisé, changer le si vous voulez mais il est important de le mettre au bon port si vous avez un hébergement SAMP.

hostname SA-MP 0.3 Server
Le nom qui sera affiché dans le client SAMP

gamemode0 grandlarc 1
Le gamemode a chargé, pour lancé un gamemode, il faudra obligatoirement que le fichier .pwn soit compilé sans erreurs pour obtenir le fichier .amx
Je vous conseille quand même de laisser le 1 après le nom du gamemode

filterscripts gl_actions gl_property gl_realtime gl_mapicon ls_elevator
test_cmds ls_mall attachments
Les filterscripts à chargé, même principe que le gamemode sauf que nous n'avont pas besoin de redémarrer le serveur pour le lancer. Pour le lancer quand le serveur est on, vous pouvez via la console avec loadfs [nomdufs] ou bien avec la rcon /rcon loadfs [nom]. Unloadfs et Reloadfs sont disponible

announce 0

Indique si leserveur doit être présent dans la liste des serveurs sur le client sa:mp (1 pour activer, 0 pour désactiver). (merci a Pseudonyme).

query 1

Active ou désactive le "RCON". Si vous utilisez un systeme d'administration entiéremet scripté avec inscription et rangs admin', il peut être judicieux de désactiver le RCON. (Merci a Pseudonyme)

weburl www.sa-mp.com
L'URL de votre site, changer le, il sera affiché dans le client samp en bas a droite, près de la boite en bas de la boite avec les joueurs connecté.

onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000

De préférence, on laisse sa comme sa

maxnpc 10
Le nombre maximum de NPC, changez le si vous le voulez.

logtimeformat [%H:%M:%S]
Le format du chatlog, on laisse comme sa de préférence.

__________________________________________________ _______________________________________________
Et maintenant...?

J'ai reçu une question de Jean-Kevin Delaforge qui me demande ceci
"Maintenant que je sait sa, je peut créer un RP?"
Absolument pas monsieur Delaforge, il vous faudra bien vous habituer aux fonctions, aux conditions, aux boucles et tout ce qu'il faut.

Maintenant que vous savez ceci que faut t'il faire allors? Plusieurs solutions s'offre à vous, je vous en propose 2 en commencant par celle que j'ai fait! Si vous voulez proposer votre option, n'hésiter pas et je la rajouterai!

Option 1 :
-Apprendre les fonctions avec wiki.sa-mp.com et en essayant des trucs con.
-Faire des petits Filterscript simpliste mais utile
-Créer un Teamdeathmatch sans base et sans C/c
-Se pratiquer et continuer de scripter

Option 2:
-Apprendre les fonctions avec wiki.sa-mp.com et en essayant des trucs con.
-Traduire un gamemode (PAS UN RP) et le modifier
-Faire des Filterscripts
-Pratique


__________________________________________________ _______________________________________________
Les NPC (Rédigé par Shidony)
C'est très simple, il vous suffit de vous connecter à votre serveur puis de vous connecter en admin rcon avec la commande /rcon login motdepasse puis de vous mettre dans un véhicule par exemple et de taper la commande correspondant à votre type de record. Je m'explique:

Il y a deux type de record:

Le record à pied
Le record en véhicule

Si vous désirez donc record un bot qui marchera ou même un bot qui restera à sa position, vous devez utiliser la commande /ofrecord nom et pour record un bot qui sera dans un véhicule, c'est la commande /vrecord nom puis une fois le record terminé, utilisez la commande /stoprecord.

Une fois le record terminé, rendez vous dans le dossier scriptfiles et vous verrez un fichier qui s'appelle nom.rec (nom étant le nom que vous avez tapé dans la commande sur le serveur), prenez ce fichier et mettez le dans npcmodes/recordings.

Une fois ceci fait, ouvrez pawno, et créez le fichier de votre bot. Allez je suis gentil, voici un script basique qu'il ne vous reste plus qu'à modifier

#define RECORDING "mynpc" //Mettez ici le nom de votre record
#define TYPE_RECORD 1 //comme je vous le disais, le type du record (1 pour en véhicule / 2 pour à pied)

#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(TYPE_RECORD, RECORDING);

#if RECORDING_TYPE == 1
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(TYPE_RECORD, RECORDING);
public OnNPCExitVehicle() StopRecordingPlayback();
#else
public OnNPCSpawn() StartRecordingPlayback(TYPE_RECORD, RECORDING);
#endif

A vous de l'adapter par la suite comme bon vous semble

Choisissez un nom et compilez.

Et donc pour finir, une fois ce script fait, vous n'avez plus qu'à connecter votre bot dans votre GM avec la fonction
pawn Code:
ConnectNPC("nom de votre bot","nom du script du bot");
.
__________________________________________________ _______________________________________________

Comment avoir de l'aide?

"Oui mais si j'ai des questions? Comment je fait?"
Très bonne question! Voici une marche a suivre pour obtenir de l'aide si vous avez un problème.

Première étape : Relisez bien le message d'erreur, parfois, la solution est a portée de main. Sinon, passez a la deuxième étape.

Deuxième étape : Faite un recherche google sur le message d'erreur et essayez de trouver une solution. Sinon, passez a la troisième étape.

Troisième étape : Si aucune solution n'a été trouvé, poster un sujet dans la section francaise tout en restant poli, courtois, mature et en écrivant bien. Le language SMS est fortement déconseillé, faite un effort! Voici une forme recommandé.

Titre du sujet : [Aide] Erreur a la compilation, [[MESSAGE D'ERREUR]]

Bonjour,

En voulant compiler mon script, j'obtient cette erreur XXXXXXXXX

Je n'ai pas trouvé la solution sur google, voici le code,

~*En mettant dans la balise pawn, mettez les lignes qui sont buggé ou la commande ~

Merçi d'avance!

Au revoir.

Ce n'est qu'une proposition, mais en espérant que vous ayez comprit le principe, nous sommes pas des robots donc si sa prend un peu de temps, ne paniquer pas et attender un peu.

__________________________________________________ _______________________________________________
Erreur et warnings (Traduction de XDamienX007, Original : Jochemd)

Warning and Error List
by Jochemd


Warnings


- Loose Indentation
Cause: Vous avez un code mal identé
public OnPlayerLeaveCheckpoint(playerid)
{
SendClientMessage(playerid,-1,"Vous avez quitté le checkpoint.");
print("Quelqu'un a quitté le checkpoint");
return 1;
}

Réparer: Assurez vous que le code est bien identé
public OnPlayerLeaveCheckpoint(playerid)
{
SendClientMessage(playerid,-1,"Vous avez quitté le checkpoint.");
print("Quelqu'un a quitté le checkpoint");
return 1;
}

- Unreachable code
Cause: Intervient si le code est inaccessible pour le compilateur (return mal placés).
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(vehicleid == 520) // Juste un ID aléatoire
{
SendClientMessage(playerid,-1,"Vous êtes entré dans le véhicule contenant l'ID 520.");
return 1;
}
else return 0;
return 1;
}

Réparer: Assurez vous que le code est bien accessible, il doit toujours retourner une valeur
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(vehicleid == 520) Juste un ID aléatoire
{
SendClientMessage(playerid,-1,"Vous êtes entré dans le véhicule contenant l'ID 520.");
return 1
}
return 1;
}
- Nested comment
Cause: Un warning pas du tout important. Vous avez placé un commentaire à l'intérieur d'un autre commentaire
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
/* if(vehicleid == 520)
{
if(playerid == 0)
{
/* if(ispassenger)
{
print("Ohai!");
return 1;
}
}
} */
return 1;
}
Réparer: Supprimer un commentaire
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
/* if(vehicleid == 520)
{
if(playerid == 0)
{
if(ispassenger)
{
print("Ohai!");
return 1;
}
}
} */
return 1;
}

- Number of arguments does not match definition
Cause: Vous avez mis trop (ou pas assez) "d'argument" dans la fonction
CMD:centermap(playerid,params[])
{
#pragma unused params
SetPlayerPos(playerid,0.0,0.0,3.0,90.0); // Vous avez mis l'angle accidentellement
SendClientMessage(playerid,-1,"Vous avez bien été envoyé dans le centre de Blue Berry.");
return 1;
}

Réparer: Regardez le nombre de paramètres que prend la fonction utilisé. Le wiki SAMPdit que la fonction SetPlayerPos contient seulement 4 paramètres: playerid, X, Y, Z. L'angle ne doit pas se trouver dans la fonction
CMD:centermap(playerid,params[])
{
#pragma unused params
SetPlayerPos(playerid,0.0,0.0,3.0);
SetPlayerFacingAngle(playerid,90.0); // L'angle se met dans cette fonction
SendClientMessage(playerid,-1,"Vous avez bien été envoyé dans le centre de Blue Berry.");
return 1;
}

- Symbol is never used 'symbol'
Cause: Vous avez crée une variable mais vous ne l'avez pas utilisé.
CMD:skydive(playerid,params[])
{
#pragma unused params
new Float:Pos[3],string[128]; // string ne sera pas utilisé dans la commande, il provoque donc le warning
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
SetPlayerPos(playerid,Pos[0],Pos[1],Pos[2] + 200);
SendClientMessage(playerid,-1,"Vous avez été envoyé haut dans le ciel");
GivePlayerWeapon(playerid,46,1);
return 1;
}

Réparer: Retirez simplement la variable inutile.
CMD:skydive(playerid,params[])
{
#pragma unused params
new Float:Pos[3];
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
SetPlayerPos(playerid,Pos[0],Pos[1],Pos[2] + 200);
SendClientMessage(playerid,-1,"You have been sent high in the sky.");
GivePlayerWeapon(playerid,46,1);
return 1;
}

- Tag mismatch
Cause: Vous avez assigné un mauvais "label" pour votre variable (bool, float, ...).
CMD:mypos(playerid,params[])
{
#pragma unused params
new Pos[3]; // La variable Pos n'a pas de "label" Float (une position est une valeur décimal et dois être avec Float!)
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
printf("Votre position: X: %f || Y: %f || Z: %f",Pos[0],Pos[1],Pos[2]);
return 1;
}

Réparer: Trouvez le bon label, pour le cas d'un textdraw: "Text", pour le cas d'un texte 3D: "Text3D", etc.
CMD:mypos(playerid,params[])
{
#pragma unused params
new Float:Pos[3]; // La variable à le label Float, le warning disparait.
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
printf("Your position: X: %f || Y: %f || Z: %f",Pos[0],Pos[1],Pos[2]);
return 1;
}

- Unknown parameter in substitution (suggested by iggy1)
Cause: Vous avez utilisé un #define mais une valeur n'est pas reconnu
#define PutPos(%1,%2,%3,%4); SetPlayerPos(%9,%2,%3,%4); // %9 n'est pas défini dans PutPos.

Réparer: Use the right parameters, and make sure they're defined before.
#define PutPos(%1,%2,%3,%4); SetPlayerPos(%1,%2,%3,%4);

Il y a surement d'autre Warning, mais.. je ne les connais pas tous ^^ Contactez Jochemd pour ça :)


Erreurs
- Undefined symbol 'symbol'
Cause: Le contraire de "symbol never used". Vous avez appelé une variable sans la créer.
CMD:myname(playerid,params[])
{
#pragma unused params
GetPlayerName(playerid,Playername,sizeof(Playernam e));
SendClientMessage(playerid,-1,Playername);
return 1;
}

Réparer: Créer la variable manquante.
CMD:myname(playerid,params[])
{
#pragma unused params
new Playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,Playername,sizeof(Playernam e));
SendClientMessage(playerid,-1,Playername);
return 1;
}

- Symbol already defined 'symbol'
Cause: Vous avez crée deux fois la même variable.
CMD:myname(playerid,params[])
{
new Playername[MAX_PLAYER_NAME];
#pragma unused params
new Playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,Playername,sizeof(Playernam e));
SendClientMessage(playerid,-1,Playername);
return 1;
}

Réparer: Supprimer une des deux variables.
CMD:myname(playerid,params[])
{
#pragma unused params
new Playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,Playername,sizeof(Playernam e));
SendClientMessage(playerid,-1,Playername);
return 1;
}

- Expression has no effect
Cause: Je ne suis pas sur pour celui là. Je pense que c'est quand un symbole n'est pas bien placé ou qu'il n'a rien à faire là.
CMD:parachute(playerid,params[])
{
#pragma unused params
GivePlayerWeapon(playerid,46,1);k // Le k gène
SendClientMessage(playerid,-1,"Tu as un parachute");
return 1;
}

Réparer: Supprimer ce symbole.
CMD:parachute(playerid,params[])
{
#pragma unused params
GivePlayerWeapon(playerid,46,1);
SendClientMessage(playerid,-1,"Tu as un parachute");
return 1;
}

Empty statement
Cause: Vous avez mis deux fois le point virgule ";".
CMD:parachute(playerid,params[])
{
#pragma unused params
GivePlayerWeapon(playerid,46,1);; // Cette ligne donne l'erreur
SendClientMessage(playerid,-1,"You got a parachute");
return 1;
}

Réparer: Trouvez le double ; et supprimez le.
CMD:parachute(playerid,params[])
{
#pragma unused params
GivePlayerWeapon(playerid,46,1);
SendClientMessage(playerid,-1,"You got a parachute");
return 1;
}

Function "function" is not implemented
1ère cause: Vous avez appelé une fonction qui n'est pas ajouté en stock.
2nde cause: Vous avez oublié un }.
CMD:stats(playerid,params[])
{
SendFormatMessage(playerid,-1,"Cash: %d ... Score: %d",GetPlayerMoney(playerid),GetPlayerScore(playerid) ); // La fonction SendFormatMessage n'est pas compris par le compilateur
return 1;
}

1: Ajoutez le stock de la fonction.
2: Trouvez l'accolade manquante et ajoutez là.
new str[128];
#define SendFormatMessage(%0,%1,%2,%3) format(str, sizeof(str),%2,%3) && SendClientMessage(%0, %1, str)


[Fatal Error]- Cannot read from file 'file'
Cause:Vous avez ajouté un include au gamemode mais il n'est pas dans le dossier '/pawno/includes'.
Réparer: Placez l'include dans le dossier '/pawno/includes/' de votre serveur, si vous avez deux pawno ouvrez d'abord pawno.exe et faites ouvrir > votre gamemode.

Jochem


__________________________________________________ _______________________________________________


Quelques tutorial Utile

N'hésitez pas a proposer des tutorials aussi bien anglais que français!

Créer un système d'enregistrement en YSI (anglais) : http://forum.sa-mp.com/showthread.php?t=273088
Créer un système d'enregistrement en YSI (francais) : http://forum.sa-mp.com/showthread.php?t=360919
Créer un système MySQL (anglais) : http://forum.sa-mp.com/showthread.php?t=159785
Créer des équipes pour un TDM (anglais) : http://forum.sa-mp.com/showthread.php?t=107762

__________________________________________________ _______________________________________________
Question/Réponse

Ici seront mit les différentes question posé par les nouveaux afin d'aider les autres!

__________________________________________________ _______________________________________________
Conclusion


Voila, si vous avez des questions n'hésitez pas a me contacter via ce topic ou par MP.. Il me fera plaisir de vous répondre et de mettre votre question dans la section Question/Réponse de ce topic afin d'aider les autres.

Bonne fin de journée/soirée et bon apprentissage!


Vous avez aimé? Un petit merci et/ou un point de réput est la bienvenue!

Shidony
18/07/2012, 12:19 PM
Voilà un tutoriel intéressant et enfin à l'image que devrait avoir la communauté sa:mp française, tu remonte ton niveau :)

Quand il sera finit s'il est vraiment bien présenté tu aura peut être un petit point de réput' :clucker:

raphy_963
18/07/2012, 12:21 PM
Merci Shidony, je pense faire un tuto vidéo aussi.

Avec ce que Jujuv a dit hier, j'ai comprit que j'était vraiment lourd avec les nouveayx. Au moins, je vait pouvoir dire : go voir mon tuto :D

Shidony
18/07/2012, 12:39 PM
Bah voilà tu vois quand tu veut ^^. Bon allez, je te laisse finir ton tuto tranquillement et fais nous ça soigneusement hein :)

raphy_963
18/07/2012, 12:41 PM
Oui, quand j'arrive chez moi je finit sa!

darreugne
18/07/2012, 01:21 PM
Evite les textes en gras et avec une taille énorme, c'est chiant.

Sinon, GG

raphy_963
18/07/2012, 01:49 PM
Je vient de terminé,

Darreugne change le nom du topic en [TERMINÉ] svp.

pseudonyme
18/07/2012, 02:16 PM
Très beau tuto', Raphy !
GG !

Petit complément concernant le fichier server.cfg:

Annouce: indique si ton serveur doit être présent dans la liste des serveurs sur le client sa:mp (1 pour activer, 0 pour désactiver).

Lanmode: active ou désactive le "mode lan" permettant une plus grande fluidité en jeu mais conssomant beaucoup plus de bande passante. A n'activer donc que pour jouer avec quelques amis chez-vous (ou en tout cas tout reliés à la même Box).


Querry: Active ou désactive le "RCON". Si vous utilisez un systeme d'administration entiéremet scripté avec inscription et rangs admin', il peut être judicieux de désactiver le RCON.

raphy_963
18/07/2012, 02:21 PM
Ajouté, merci JujuV

Shidony
18/07/2012, 02:52 PM
Je vient de terminé,

Darreugne change le nom du topic en [TERMINÉ] svp.

Hey je viens de le lire en entier bien joué ;) tu mérite bien ton petit point de réput'. Continue ainsi ne redeviens pas le vilain raphy que tu étais ^^.

EDIT: pour npcmodes

Tu peux mettre ceci:

npcmodes - C'est le dossier ou sont les scripts compilés de vos bots, pour créer un bot, il faut créer un script (et oui :)) et pour créer ce script, il faut d'abord "record" (enregistrer pour les non anglophones) ce bot.

Comment faire ?

C'est très simple, il vous suffit de vous connecter à votre serveur puis de vous connecter en admin rcon avec la commande /rcon login motdepasse puis de vous mettre dans un véhicule par exemple et de taper la commande correspondant à votre type de record. Je m'explique:

Il y a deux type de record:

Le record à pied
Le record en véhicule

Si vous désirez donc record un bot qui marchera ou même un bot qui restera à sa position, vous devez utiliser la commande /ofrecord nom et pour record un bot qui sera dans un véhicule, c'est la commande /vrecord nom puis une fois le record terminé, utilisez la commande /stoprecord.

Une fois le record terminé, rendez vous dans le dossier scriptfiles et vous verrez un fichier qui s'appelle nom.rec (nom étant le nom que vous avez tapé dans la commande sur le serveur), prenez ce fichier et mettez le dans npcmodes/recordings.

Une fois ceci fait, ouvrez pawno, et créez le fichier de votre bot. Allez je suis gentil, voici un script basique qu'il ne vous reste plus qu'à modifier

#define RECORDING "mynpc" //Mettez ici le nom de votre record
#define TYPE_RECORD 1 //comme je vous le disais, le type du record (1 pour en véhicule / 2 pour à pied)

#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(TYPE_RECORD, RECORDING);

#if RECORDING_TYPE == 1
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(TYPE_RECORD, RECORDING);
public OnNPCExitVehicle() StopRecordingPlayback();
#else
public OnNPCSpawn() StartRecordingPlayback(TYPE_RECORD, RECORDING);
#endif

A vous de l'adapter par la suite comme bon vous semble :)

Choisissez un nom et compilez.

Et donc pour finir, une fois ce script fait, vous n'avez plus qu'à connecter votre bot dans votre GM avec la fonction
ConnectNPC("nom de votre bot","nom du script du bot");.

raphy_963
18/07/2012, 03:01 PM
:P 6 réput d'un coup pas mal sa!!!!

Shidony
18/07/2012, 03:07 PM
Message précédent édité tu peux aller voir ? :)

Et GG pour tes points de réput' ^^

raphy_963
18/07/2012, 03:42 PM
Oui je vait le rajouter même

Lenshy
18/07/2012, 05:11 PM
Je te préfaire comme ça !

raphy_963
18/07/2012, 05:26 PM
Merci Lenshy!

CraxxHack
18/07/2012, 06:20 PM
Beau travail, je n'ai pas lu mais survolé, le peu que j'ai survolé j'ai vus beaucoup de fautes. Pense à te relire. Si tu as besoins d'aide, contact-moi.

raphy_963
18/07/2012, 07:02 PM
Ouais énormément de faute, si quelqu'un aurait le courage de corriger me contacter

CraxxHack
18/07/2012, 08:47 PM
On voit que tu lis les messages, j'avais dis contact-moi pour la correction. Skype: CraxxHack

raphy_963
18/07/2012, 09:20 PM
(facepalm)

200ème message!!!!!!!!!!!!

CraxxHack
18/07/2012, 09:45 PM
Supprimé, erreur

Maxim_lockas
19/07/2012, 01:02 AM
Bon tuto ! +1 de répute. Sa aidera les nouveau a commencer avec de bonne base.

raphy_963
19/07/2012, 01:32 AM
Merci!

'seraphin
19/07/2012, 02:49 AM
Jolie Tuto :p

raphy_963
19/07/2012, 11:35 AM
J'ai pensé faire une section pour les erreurs et les warnings les plus fréquent. Sa vous dit?

CraxxHack
19/07/2012, 11:41 AM
Une prochaine version du tutoriel est en cours, la présentation et rédaction sera refaite par mes soins :)

raphy_963
21/07/2012, 09:06 PM
petit up :3

raphy_963
08/08/2012, 06:10 PM
Juste un petit up pour les nouveaux

raphy_963
24/08/2012, 11:17 AM
Petit up pour les nouveaux

raphy_963
14/09/2012, 11:55 PM
Un autre up :P

raphy_963
17/10/2012, 04:47 PM
Up! Certaines personnes comprennent pas encore!

raphy_963
26/10/2012, 02:32 PM
EDIT

Ajout Erreur et Warnings

Par : Jochem Traduction : XDamienX007

DiamantEspace18
13/12/2012, 03:51 PM
Salut a tous j'ai une petite question avec une erreur pawn est-ce que vous savez ce que c'est ? C'est l'érreur 001 : expected token: ",", but found ";"

Merci

Non c'est bon résolu j'avais oublié une parenthese

99allxp
13/12/2012, 04:16 PM
merci ! grace a toi je sais comment commencer Mon serveur de DM.

XDamienX007
13/12/2012, 05:20 PM
merci ! grace a toi je sais comment commencer Mon serveur de DM.

Bonne chance! ;)

raphy_963
13/12/2012, 05:35 PM
Également,

bonne chance

99allxp
13/12/2012, 05:46 PM
Merci :)

Sus-Pets
13/12/2012, 05:54 PM
MERKI POUR CE TUTO ^^^^^^ a moi le rp

raphy_963
13/12/2012, 07:08 PM
Dégage MrToinou :D

Allan59225
15/12/2012, 11:05 AM
En faite il faut mettre le FS npc_record --

anou
14/04/2013, 03:42 PM
Lien mort

Quelqu'un peut re upload