GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Rickersx le 09 Janvier 2009, 16:48:31
-
Bonjours a vous.
[/size]
Alors voilà ! J'ai crée mon server. Mais le problème est que je n'y comprend strictement rien ! J'ai bien lut des centaines de tuto ... Même dl des script mais le problème c'est qu'ont me donne des code et je ne sais pas ou les inséré dans le script ...
Si on peut m'aidai a comprendre sa ! se serais super ! Je voudrais juste savoir en gros comment ajouté des commandes du types des téléportations ...
Merci a vous.
Je suis noob désolé de vous dérangé
-
Bon je t'explique pour apprendre un scripter ,
on prend d'abord un Cops And Robbers , Ensuite un Stunt Ensuite un Deathmatch
et ensuite un mode RP !
Donc pour scripter ouvre Pawno Ensuite Good Luck.
-
Donc pour scripter ouvre Pawno Ensuite Good Luck.
Ca va beaucoup l'aider :boulz
- -
Pour les tutos, tu en a içi:
http://www.gtaonline.fr/forums/index.php/board,75.0.html (http://www.gtaonline.fr/forums/index.php/board,75.0.html)
NV. 8)
-
Salut,
Va ici => http://www.gtaonline.fr/forums/index.php/topic,6229.0.html (http://www.gtaonline.fr/forums/index.php/topic,6229.0.html)
Sa te servira beaucoup !
et encore merci coco ::)
++
-
Merci beaucoup ! Je vais allé me jetais dans les tutoriels. :lmfao
Et encore merci ! :-[
Edit:
J'ai compris comment insséré des code dans les script ! :D
Mais j'ai trouvé ceci : http://forum.sa-mp.com/index.php?PHPSESSID=334006b67d55c0abba26ad643e6a6e4e&topic=83695.0 (http://forum.sa-mp.com/index.php?PHPSESSID=334006b67d55c0abba26ad643e6a6e4e&topic=83695.0)
comment je peut changé les commandes ? et le mettre exemple /lv1 /lv2 ect ... et que sa me téléporte a Las venturas Nord & Sud !
Merci, & encore désolé pour le dérangement
-
Oui , ta juste a changer les coordonnées , mais a mon avis il manque des trucs ;)
la il a mit que le bout de la commande /tp
-
Bonjour,
La commande suivante te permet de te téléporter seulement toi
si tu veux téléporter une voiture avec faut ajouter d'autres commandes
if(!strcmp("/tp", cmdtext, true))
{
SetPlayerPos(playerid, x, y, z); // Téléportation du joueur
SetVehiclePos(abccar, x, y, z); // Téléportation de la voiture
SetPlayerFacingAngle(playerid, a);
return 1;
}
pour avoir ta position fait un /save quant tu es sur ton serveur
et la position sera dans le dossier de GTA le fichier se nomme savedpositions
Bon courage
Cordialement,
-
Pas grave que sa téléporte que moi même sans voiture ! Pour un début se seras déjà très bien !
Merci inbox pour le code ;)
-
Pas grave que sa téléporte que moi même sans voiture ! Pour un début se seras déjà très bien !
Merci inbox pour le code ;)
Edit: Lol
Jai fait des "save" mais sa me mais sa :
AddPlayerClass(293,2044.7190,1612.6431,10.6719,276.2330,0,0,0,0,0,0); //
je fait quoi avec sa ? Jdemande a des gens il me disent il faut des programmes et tout :(
Sorry ;D
-
AddPlayerClass(293,2044.7190,1612.6431,10.6719,276.2330,0,0,0,0,0,0); //
Prend ceux en gras ;)
-
Ok ! Désolé pour le double poste ! Je n'ais pas fait éxpres ! Merci ! Maintenant je croie tout savoir sur se que j'avais besoin.
Je test ! et merci a vous :cheers
Edit :
Sa marche nikel ! Sauf que sa me téléporte au milieux de l'océan peut-être un mauvais chiffre :lmao
En tout cas merci pour vos réponse rapide & précis
-
Oui tu a surment du te planter dans les chiffre ... reverifie
++
nikko
-
Au milieu de l'océan ?
As tu ajouté un objets au milieu de l'océan ceux qui est fort probable ?
ou soit comme as dit Nikko
-
Je enfaite a chaque ligen comme ça :
AddPlayerClass(293,2044.7190,1612.6431,10.6719,276.2330,0,0,0,0,0,0); //
Le premier nombre que sa soit un Véhicule Ojbet ou autre quand on fait /save c'est l'id donc tu retire :
AddPlayerClass(293,2044.7190,1612.6431,10.6719,276.2330,0,0,0,0,0,0); //
Enssuitte tu te repaire par rapport au virgule on adire que sa c'est un nombre(décimale) 2044.7190 donc on prend les 3 premiers nombres :
AddPlayerClass(293,2044.7190,1612.6431,10.6719,276.2330,0,0,0,0,0,0); //
Attention ne jamasi prend la virgule devant ou a la fin il doit commencer par un chiffre et finir par un chiffre :
2044.7190,1612.6431,10.6719
Pas :
,2044.7190,1612.6431,10.6719,
Voila enssuite cette position peut servire pour des PlayerToPoints mais je te connsseille de commencer par faire des téléportations ou checkpoint avec le tuto d'Urban ect.........
-
Alors j'ai ressayé plusieur save ! Mais sa me teleport autre part ! 2x dans l'eau et une autre dans un batiment !
Le code que j'utilise :
if (! strcmp (cmdtext, "/bmx", true))
{
SetPlayerPos (playerid, -1916.6097, 1407.7554, 13.5703);
SendClientMessage (playerid, 0xFF3399AA, "Vous avez été téléporté à /bmx-");
return 1;
}
???
Ps: j'ai aussi essayé en enlevant le "-" devant les chiffres ... et il es bien placé dans mon pawno puisqu'il me sort pas d'erreur.
Edit :
Non rien ;) sa fonctionne juste une embrouille avec le "-" ^^
Merci pour votre aide
:lock
-
Salut ne pas enlever les ' - ' devant les nombres sinon la coordonées est morte
à /bmx-");
Le - après ta commande /bmx il sert a quoi ?
Essaye de l'enlever :-[
Ou sinon voila une commande
if(strcmp(cmd, "/bmx", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][plocal] >= 1)
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, Lacoordonnées ...);
TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
}
else
{
SetPlayerPos(playerid, coordonnées..);
}
SendClientMessage(playerid, COLOR_GRAD1, " Te voila maintenant a : tonnomdeteleportation");
SetPlayerInterior(playerid,0);
PlayerInfo[playerid][pInt] = 0;
}
else
{
SendClientMessageToAll(playerid, COLOR_GRAD1, " Une personne s'est teleporté a : ");
}
}
return 1;
}
-
Salut,
je tien à spécifier que le IsPlayerConnected de cette commande est absolument inutile pour 2 raisons:
- Si un joueur tape une commande,c 'est qu'il est connecté (et je doute qu'il ai le temps de se déconnecté avant que le code soit exécuté)
- La plupart des fonctions de sa-mp contiennent un test IsPlayerConnected intégré
Ce qui donnerais (après correction des autres erreurs, désolé mais SendClientMessageToAll ne prend pas de playerid...)
if(strcmp(cmd, "/bmx", true) == 0)
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, Lacoordonnées ...);
}
else
{
SetPlayerPos(playerid, coordonnées..);
}
SendClientMessage(playerid, COLOR_GRAD1, " Te voila maintenant a : tonnomdeteleportation");
SetPlayerInterior(playerid,0);
PlayerInfo[playerid][pInt] = 0;
return 1;
}
j'avoue ne pas comprend pourquoi envoyer un message à tous les joueurs dans le cas où il n'y a pas de téléportation
sinon, très belle indentation My-Ea
++Sim++
-
Ba Généralement dans les serveur stunt ,
Je voit : Un joueur est partie la bas : ....
Donc je me suis dit j'ajoute sa ..
Après a lui de voir.
-
Salut,
ouais, c'est répandu je l'ai sur le mien d'ailleurs ;)
L'idée était irréprochable mais tu l'avais mit de tel façon que si le joueur n'est pas téléporté le message est lancé.... alors là ;D
++Sim++
-
a ué mince , j'ai pas fait gaffe xD
-
Salut,
nous arrivons maintenant à l'étape où il faut expliqué à ce très cher Rickersx à quoi correspond ce code:
if(strcmp(cmd, "/bmx", true) == 0)La fonction strcmp permet de "comparé" deux string, en réalité, elle retourne une expression représentant la différence entre les deux string, ainsi s'ils sont pareils, la fonction retourne 0, les autres cas sont presque ou jamais utilisé sur sa-mp
if (GetPlayerState(playerid) == 2)Ici, on vérifie dans quel état est le joueur (non pas sa vie mais son statut, s'il conduit, est passager, à pied etc....), dans le cas précédant, le 2 correspond au statut de conducteur, mais comment le retenir? Apprend plutôt les constantes suivantes:
#define PLAYER_STATE_NONE
#define PLAYER_STATE_ONFOOT
#define PLAYER_STATE_DRIVER
#define PLAYER_STATE_PASSENGER
#define PLAYER_STATE_WASTED
#define PLAYER_STATE_SPAWNED
#define PLAYER_STATE_SPECTATING
Ensuite, on sait que le joueur conduit un véhicule, que faire? Eh bien on lui apporte son véhicule!
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, Lacoordonnées ...);
On a donc récupérer le ID (numéro d'identification) de son véhicule dans une variable quelconque afin d'en changé la position, certains diront: il y a moyen d'optimiser ce code.
Effectivement, On peut optimiser ce code en employant directement le GetPlayerVehicleID dans le SetVehiclePos par contre, si plus tard on ajoute du code (pour en changer l'angle par exemple) il sera mieux d'utiliser une variable, dans le cas contraire:
SetVehiclePos(GetPlayerVehicleID(playerid), Lacoordonnées ...);
Dans le cas contraire(else), le joueur ne conduit donc pas un véhicule, ne téléportons que le joueur, puisque le véhicule n'est pas vraiment à lui...
SetPlayerPos(playerid, coordonnées..);Donc ce code sert à modifier la position d'un joueur, on peut l'utiliser pour n'importe quel joueur, y placer un paramètre constant aurait également été possible
Enfin, on envoie un message de confirmation au joueur, suivit d'un envoie dans l'intérieur 1 (recommandé si vos joueurs peuvent aller dans des intérieurs, et en général, ils le peuvent) il y avait également une variable qui ne t'amènerais qu'à avoir des erreurs, je l'ai donc ici enlevée.
SendClientMessage(playerid, COLOR_GRAD1, " Te voila maintenant a : tonnomdeteleportation");
SetPlayerInterior(playerid,0);
return 1;
en espérant avoir fait comprendre quelques choses à certains d'entre vous...
++Sim++
-
Très Bien Sim.
Les String , le mec va croire qu'on se fout de lui :lmfao
-
Salut,
Voici un site qui va t'aider pour scripter :
http://wiki.sa-mp.com/wiki/Main_Page (http://wiki.sa-mp.com/wiki/Main_Page)
Mais le seul invonvénient c'est qu'il est en anglais, au pire tu pourrais le traduire avec un traducteur (Google,Orange...) mais le problème c'est qu'il va également traduire les callbacks et fonctions comme par exemple : "AddPlayerStatic" ou "SetPlayerPos"
++
MoSteR
-
Je ne pense pas qu'il va traduire les AddStaticVehicle , pour lui sa ne veut rien dire.
-
On sait jamais parce que le traducteur Google parfois il est con mais de chez con xD
Essaye de traduire le forum de sa-mp.com avec Google traduction, il va te sortir des conneries alors moi maintenant je préfère aller sur le forum sans traduire.
++
-
Mauvaise idée , Apprendre L'anglais.
Revenons au sujet :lmfao
-
Salut,
Voici un site qui va t'aider pour scripter :
http://wiki.sa-mp.com/wiki/Main_Page (http://wiki.sa-mp.com/wiki/Main_Page)
Mais le seul invonvénient c'est qu'il est en anglais, au pire tu pourrais le traduire avec un traducteur (Google,Orange...) mais le problème c'est qu'il va également traduire les callbacks et fonctions comme par exemple : "AddPlayerStatic" ou "SetPlayerPos"
++
MoSteR
Oui c'est pas grave je vais me débrouillé, vous allez pas tout me faire non plus ;) merci
Ps: Merci maintenant je peut me téléporté avec des véhicule grâce a vos aides.
-
Derien.
N'hésite pas a poser des questions