GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: aurelien le 01 Mars 2009, 13:57:50

Titre: Comment creer une commande ??
Posté par: aurelien le 01 Mars 2009, 13:57:50
Salut a tous je voudrais creer une commande pour mon server mes je ne ces pas comment il faut faire je voudrai creer une comande du genre /teleportation et sa m'afiche tout les teleportation disponible /drift /drift1 /drift2 /drift3 ... merci de votre aide a+++
Titre: Re : Comment creer une commande ??
Posté par: S!m le 01 Mars 2009, 14:37:06
salut,

base toi sur des scripts déjà fais....

tu doit avoir un if(strcmp(cmdtext, "commande", true)  == 0)

puis pour donner la liste des téléportations, il te faut un ou des SendClientMessage

++Sim++
Titre: Re : Comment creer une commande ??
Posté par: Nikko™ le 01 Mars 2009, 16:02:57
Salut,

Bon je vais te donner le "truc":

Tout d'abord tu initialise ta commande:

if(strcmp(cmdtext, "//macommande", true) == 0)
on ouvre la prmiere acolade pour faire soit un premier test soit lancer l'action sans test...:

{
Puis (vu qu'on veut ecrire un message JUSTE au joueur qui tape la commande), on utilise un SendClientMessage.
On peu mettre plusieurs SendClientMessage a la suite ...

SendClientMessage(playerid, COLOR_GREEN,"Bienvenue sur le serveur");
SendClientMessage(playerid, COLOR_GREEN,"Voici les commandes:");
SendClientMessage(playerid, COLOR_GREEN,".......");

Vu qu'on veut faire qu'écrire au joueur, alors on a terminer, et on peut terminer la commande. On "ferme" la commande..

return 1;
Et on ferme l'acolade du debut:

}

J'esper que t'a pris le temps de comprendre et de ne pas avoir copier betement...

++
nikko
Titre: Re : Comment creer une commande ??
Posté par: v331 le 02 Mars 2009, 10:42:47
sinon tu peut faire un menu avec toutes tes teleportations c'est plus classe  8)
va voir dans les tutos
Titre: Re : Comment creer une commande ??
Posté par: angelrider le 02 Mars 2009, 18:59:14
Qu'il apprenne à faire une commande simple on verra ensuite pour les menus je pense ^^.
Titre: Re : Comment creer une commande ??
Posté par: aurelien le 02 Mars 2009, 20:19:43
Merci a vous et merci Nikko d'etre venir voir merci de m'avoir expliquer ...  :cheers
Titre: Re : Comment creer une commande ??
Posté par: Nikko™ le 02 Mars 2009, 20:22:10
y'a pas de quoi  :cheers

++
nikko
Titre: Re : Comment creer une commande ??
Posté par: aurelien le 02 Mars 2009, 21:12:25
          PROBLEME

je fais une teleportation une comande et sa me teleporte pas et sa me mais les codes de teleportation et apres sa me mais un truc en anglais je le dit en francais : server : cette commande n'existe pas ... command faire ...
Titre: Re : Comment creer une commande ??
Posté par: Nikko™ le 02 Mars 2009, 21:23:23
Deja pour ta commande pour annoncer if(strcmp(cmdtext, "/cmds", true) == 0), il faut la presenter comme ca:
if(strcmp(cmdtext, "/cmds", true) == 0)  // on initialise
{ // on ouvre
SendClientMessage(playerid, COLOR_GREEN,"Pour vour teleporter ....");  // on envoi les infos
SendClientMessage(playerid, COLOR_GREEN,"ETC ....");
SendClientMessage(playerid, COLOR_GREEN,".......");
return 1; // on termine
}  // on ferme

Ensuite pour tes telep:

if(strcmp(cmdtext, "/g1", true , 10) == 0)  >>> Enlève le  ",10" de chaque commande.

Puis tu peut perfectionner tes telep en fesant un test si il est dans un vehicule:

if(strcmp(cmdtext, "/g1", true) == 0)  // on initialise
{                                                 // on ouvre
if(!IsPlayerInAnyVehicle(playerid)) // test si le joueur N'EST PAS dans un vehicule (avec le !) si tu sais pas comment t'en servir, GO tuto de sim
{                                              // on ouvre car ya un nouveau test
SetPlayerPos(playerid,1313.2286,1266.9771,12); // on telep
SendClientMessage(playerid, 0xFF8000FF,"Bienvenue ...."); // on annonce
}                                                            // on ferme
else                                     // on met le ELSE qui sert a dire sinon (ici on a "si le joueur n'est pas dans un vehicule, on telep seul SINON on telep le vehicule)
{                                                      // on ouvre car ya un "nouveau" test
SetVehiclePos(GetPlayerVehicleID(playerid),1313.2286,1266.9771,12); //on place le vehicule
SendClientMessage(playerid, 0xFF8000FF,"Bienvenue..."); // on annonce
}                                                        // on ferme le test
return 1;                                                       // on termine
}                                                       // on ferme la premiere acolade.


++
nikko
Titre: Re : Comment creer une commande ??
Posté par: aurelien le 02 Mars 2009, 21:42:12
re voila sa me mes warning quand je met sa

if(strcmp(cmdtext, "/g1", true) == 0)

C:\DOCUME~1\AURLIE~1\Bureau\SERVER~1\GAMEMO~1\drift.pwn(195) : warning 225: unreachable code

????
Titre: Re : Comment creer une commande ??
Posté par: Nikko™ le 02 Mars 2009, 22:19:38
montre le code en entier

++
nikko
Titre: Re : Comment creer une commande ??
Posté par: aurelien le 03 Mars 2009, 07:22:55
re salut ... voila

sa donne sa quand je fe F5 :

C:\DOCUME~1\AURLIE~1\Bureau\SERVER~1\GAMEMO~1\drift.pwn(195) : warning 225: unreachable code

le code :

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/cmds", true) == 0)
   SendClientMessage(playerid, COLOR_ORANGE," /g1 pour aller à parking 1 ");
   {
   SendClientMessage(playerid, COLOR_ORANGE," /g2 pour aller à parking 2 ");
    SendClientMessage(playerid, COLOR_ORANGE," /c1 pour aller à circuit 1 de drift ");
    SendClientMessage(playerid, COLOR_ORANGE," /c2 pour aller à circuit 2 de drift ");
    return 1;
    }
   if(strcmp(cmdtext, "/g1", true) == 0)
   {
   if(!IsPlayerInAnyVehicle(playerid))
   {
   SetPlayerPos(playerid,2272.0701,1390.8223,42.8203);
   GameTextForPlayer(playerid,"Bienvenue a G1",2000,5);
    }
    else
    {
   SetVehiclePos(GetPlayerVehicleID(playerid),2272.0701,1390.8223,42.8203);
   GameTextForPlayer(playerid,"Bienvenue a G1",2000,5);
   }
   return 1;
   }
   if (strcmp("/g2", cmdtext, true, 10) == 0)
   {
   SetVehiclePos(GetPlayerVehicleID(playerid),2260.7776,1941.5385,31.7797);
   GameTextForPlayer(playerid,"Bienvenue a G2",2000,5);
   }
   if (strcmp("/c1", cmdtext, true, 10) == 0)
   {
   SetVehiclePos(GetPlayerVehicleID(playerid),-2532.1960,-612.2008,132.5625);
   GameTextForPlayer(playerid,"Bienvenue a C1",2000,5);
   }
   if (strcmp("/c2", cmdtext, true, 10) == 0)
   {
   SetVehiclePos(GetPlayerVehicleID(playerid),-312.0705,1568.2906,75.3594);
   GameTextForPlayer(playerid,"Bienvenue a C2",2000,5);
   return 1;
    }
    return 0;
}
Titre: Re : Comment creer une commande ??
Posté par: Nikko™ le 03 Mars 2009, 09:44:38
Regarde, tu un probleme d'acolade dans ton /cmds

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/cmds", true) == 0)
   {
   SendClientMessage(playerid, COLOR_ORANGE," /g1 pour aller à parking 1 ");
   SendClientMessage(playerid, COLOR_ORANGE," /g2 pour aller à parking 2 ");
    SendClientMessage(playerid, COLOR_ORANGE," /c1 pour aller à circuit 1 de drift ");
    SendClientMessage(playerid, COLOR_ORANGE," /c2 pour aller à circuit 2 de drift ");
    return 1;
    }
   if(strcmp(cmdtext, "/g1", true) == 0)
   {
   if(!IsPlayerInAnyVehicle(playerid))
   {
   SetPlayerPos(playerid,2272.0701,1390.8223,42.8203);
   GameTextForPlayer(playerid,"Bienvenue a G1",2000,5);
    }
    else
    {
   SetVehiclePos(GetPlayerVehicleID(playerid),2272.0701,1390.8223,42.8203);
   GameTextForPlayer(playerid,"Bienvenue a G1",2000,5);
   }
   return 1;
   }
   if (strcmp("/g2", cmdtext, true, 10) == 0)
   {
   SetVehiclePos(GetPlayerVehicleID(playerid),2260.7776,1941.5385,31.7797);
   GameTextForPlayer(playerid,"Bienvenue a G2",2000,5);
   }
   if (strcmp("/c1", cmdtext, true, 10) == 0)
   {
   SetVehiclePos(GetPlayerVehicleID(playerid),-2532.1960,-612.2008,132.5625);
   GameTextForPlayer(playerid,"Bienvenue a C1",2000,5);
   }
   if (strcmp("/c2", cmdtext, true, 10) == 0)
   {
   SetVehiclePos(GetPlayerVehicleID(playerid),-312.0705,1568.2906,75.3594);
   GameTextForPlayer(playerid,"Bienvenue a C2",2000,5);
   return 1;
    }
    return 0;
}

++
nikko
Titre: Re : Comment creer une commande ??
Posté par: Anthony Wolf le 03 Mars 2009, 12:02:59
Si je ne me trompe, un des problême est que tu as mis

(playerid) comme sa alors que c'est
(playerid, ..... comme sa

Titre: Re : Comment creer une commande ??
Posté par: Nikko™ le 03 Mars 2009, 12:14:49
Ca depend, regarde

le "(playerid)" c'est pour un "if(!IsPlayerInAnyVehicle(playerid))"

le "(playerid," c'est pour un "SendClientMessage(playerid, COLOR_ORANGE," /g1 pour aller à parking 1 ");"

Il ont la meme fonction, mais il ne s'utilisent pas de la meme facon...

++
nikko
Titre: Re : Comment creer une commande ??
Posté par: aurelien le 03 Mars 2009, 12:15:56
 
             YOUHOU
 
merci Nikko merci ...  :cheers
Titre: Re : Comment creer une commande ??
Posté par: Nikko™ le 03 Mars 2009, 12:16:51
ya pas de quoi, mais sert toi de ca quand tu veu creer des commande. Pcq si tu copie betement, ca aura servi a rien ^^

++
nikko
Titre: Re : Comment creer une commande ??
Posté par: aurelien le 03 Mars 2009, 16:26:07
re j'ai eu un probleme mes jai reussi a le mettre bien et encore merci Nikko et jvoulai savoir comment vous fete pr avoir une signature en image ??? je ses aucun raport mais je demande quand meme et je voulais aussi savoir si il y avait un endroit sur le fofo avec tout les server FR et si jpourrais mettre le mien dans la liste ?? .... merci encore Nikko  :cheers

Double post: 03 Mars 2009, 16:27:15
A et encore un truc je voulais savoir comment faire la Commande /r et /s ??? merci encore
Titre: Re : Comment creer une commande ??
Posté par: S!m le 03 Mars 2009, 20:22:52
Salut,

assure toi de bien comprendre les autres commandes avant,

sinon, je te donne un truc:

 - tu dois créer trois variables (X, Y, Z) par joueur (un array)
 - tu dois enregistrer la position du joueur (GetPlayerPos) dans cette variable avec /s
 - la charger (SetPlayerPos) de la variable avec /r

++Sim++
Titre: Re : Comment creer une commande ??
Posté par: aurelien le 04 Mars 2009, 15:25:54
Lu pas trop compris ton expliquation Sim si tu pourai expliquer par image merci ...
Titre: Re : Comment creer une commande ??
Posté par: [StAfF]MaN le 04 Mars 2009, 16:04:39
A savoir aussi que ce que tu demande, a déjà été traité dans un autre sujet ;) cherche un p'yi peu tu verra  :laugh
Titre: Re : Comment creer une commande ??
Posté par: aurelien le 04 Mars 2009, 16:30:16
ok mais fau trouver aussi et je voulais savoir comment mettre de la musique o debut kud on choisit son perso parce que jai regarder un truc mes sa ne marche pas donc je vous demande ... merci