GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: lepompier le 18 Mai 2008, 20:31:35
-
bonsoir a tous !
je voudrai savoir comment changer le server unknow commands par un truck de se genre <la commande "nomdesacmd" n'existe pas , pour plus d'info tape /aide> encore une petite chose je voulez savoir si vous connaissez l'id du sons de la prison qui se ferme ou ouvre s'il vous plaiz merci d'avance
-
au lieu de return 0 tu met return SendClientMessage(playerid, color, "blablabla").
Sinon pour l'ID du son de la prison il est dans PEN1.
++
ZecKo
-
je peux le trouver ou PEN1 car le forum SA MP est HS
-
http://forum.sa-mp.co.uk/index.php :)
-
merci mince il est pas PEN1
-
oups désoler double poste mais s'est pour que vous voier bon j'ai trouver le son de la prison pour ceux qui le veulent le voici
PlayJailSound(1165 , 1166, 2000,264.395200, 77.564040, 1001.039000);
merci a vous ! et a moi :lmfao
-
j'ai essayer de mettre plusieurs message comme sa
return SendClientMessage(playerid, COLOR_RED, "Commande non reconnue;");
SendClientMessage(playerid, COLOR_BLUE, "Aide;");
mais sa met des erreurs
Pouvait vous m'aider svp ? merci d'avance
-
Un return se met à la fin, donc tu ne peut pas mettre de SendClientMessage() après.
Si tu veut mettre plusieurs instructions, il faut que tu fasse comme ceci :
if(strcmp()) // première commande
else if(strcmp()) // deuxième, 3ème, etc. commandes
else
{
//Tes messages à envoyés
}
++
Alexandre
-
format(erreur, sizeof (erreur), "Commande invalide",cmdtext);
return SendClientMessage(playerid,COLOR_RED, erreur);
}
ce code fonctionne très bien ^^ Oublis pas le
new erreur;
en haut de ton script, après tu le modifie comme tu veut ;)
-
ce code fonctionne très bien ^^ Oublis pas le
new erreur;
cest new erreur[256]; !!!!!! MDR a moi de te corrigé ^^
++
nikko
-
Chacun sont tour ^^
-
oui mes enfaite je veux mettre plusieur message quand le mec se trompe
commande invalide;
Aide:
Tape /commandes pour te renseigné sur toute.....
-
format(erreur, sizeof (erreur), "Commande invalide",cmdtext);
format(erreur, sizeof (erreur), "aide :",cmdtext);
format(erreur, sizeof (erreur), "Tape /commandes pour te renseigner sur toutes les commandes",cmdtext);
return SendClientMessage(playerid,COLOR_RED, erreur);
}
Tu aurais pas plus réfléchir ?? :D
-
a d'accord mdr merci a toi mAn :D
J'ai refléchi xD nan je deconne ;D
Aller ++
David
-
mAn, ton code fait en sorte que le string soit rempli même quand la commande est valide !
Pour remédier à ça il faut utiliser des else if.
-
Mais non !!
Quand tu as fini avec tes commandes de ton public OnPlayerCommandetext
tu met le code que j'ai mis ^^ ça fonctionne nickel chez moi je vois pas pourquoi il ne marcherais pas chez vous !! ^^
C'est ce qui remplace le return 1; a la fin de chaque public ;)
exemple :
public OnPlayerCommandText(playerid,cmdtext[])
{
// World Time =D
if (strcmp(cmdtext, "/matin", true)==0)
{
if (IsPlayerAdmin (playerid))
{
SendRconCommand ("weather 6");
SendClientMessageToAll(COLOR_ORANGE,"Il est maintenant 8 heure sur le serveur.");
SetWorldTime(8);
}
return 1;
}
if (strcmp (cmdtext, "/midi") == 0)
{
if (IsPlayerAdmin (playerid))
{
SendRconCommand ("weather 10");
SendClientMessageToAll(COLOR_ORANGE,"Il est maintenant 12 heure sur le serveur.");
SetWorldTime(12);
}
return 1;
}
if (strcmp (cmdtext, "/soir") == 0)
{
if (IsPlayerAdmin (playerid))
{
SendRconCommand ("weather 10");
SendClientMessageToAll(COLOR_ORANGE,"Il est maintenant 20 heure sur le serveur.");
SetWorldTime(20);
}
}
format(erreur, sizeof (erreur), "Commande invalide",cmdtext);
format(erreur, sizeof (erreur), "aide :",cmdtext);
format(erreur, sizeof (erreur), "Tape /commandes pour te renseigner sur toutes les commandes",cmdtext);
return SendClientMessage(playerid,COLOR_RED, erreur);
}
et voila ^^ Si le joueur tape autre choses comme "/soire" au lieu de "/soir", bah les messages s'afficheront ;)
-
Tu oublie la variable:
new erreur[256];
format(erreur, sizeof (erreur), "La commande \"%s\" n'existe pas. Tapez /aide ou /help",cmdtext);
return SendClientMessage(playerid,0xFFFF00AA, error);
}
++
nikko
-
Oui mes moi enfaite le truck s'est que je voudrais que si le mec tape /dkffk ou /jdjfhfh ba sa mette le message
-
BAh, avec ce que je t'ai donné, cest fait pour, si le mec tape autre qu'une commande répoertorié, ca lui envoi le message.
Test et tu verra.
++
nikko
-
J'ai pas oublié la variable xD
public OnPlayerCommandText(playerid,cmdtext[])
{
// World Time =D
if (strcmp(cmdtext, "/matin", true)==0)
{
if (IsPlayerAdmin (playerid))
{
SendRconCommand ("weather 6");
SendClientMessageToAll(COLOR_ORANGE,"Il est maintenant 8 heure sur le serveur.");
SetWorldTime(8);
}
return 1;
}
if (strcmp (cmdtext, "/midi") == 0)
{
if (IsPlayerAdmin (playerid))
{
SendRconCommand ("weather 10");
SendClientMessageToAll(COLOR_ORANGE,"Il est maintenant 12 heure sur le serveur.");
SetWorldTime(12);
}
return 1;
}
if (strcmp (cmdtext, "/soir") == 0)
{
if (IsPlayerAdmin (playerid))
{
SendRconCommand ("weather 10");
SendClientMessageToAll(COLOR_ORANGE,"Il est maintenant 20 heure sur le serveur.");
SetWorldTime(20);
}
}
format(erreur, sizeof (erreur), "Commande invalide",cmdtext);
format(erreur, sizeof (erreur), "aide :",cmdtext);
format(erreur, sizeof (erreur), "Tape /commandes pour te renseigner sur toutes les commandes",cmdtext);
return SendClientMessage(playerid,COLOR_RED, erreur);
}
Et oui, avec ce code, si le player tape une connerie, enfin, une commande qui n'existe pas sur ton GM, ce message va apparaitre ;)
-
Ouais, mais le string est rempli à chaque fois même quand la commande est valide... (http://image.jeuxvideo.com/smileys/45.gif)
-
Soit oubli d'une accolade, soit un return 1; soit mal placé ^^ Mais ça fonctionne :p
-
Mais oui ça fonctionne ! :D
Mais ça remplit le string même quand la commande est juste.
-
Et ben c'est un oubli d'accolade :
public OnPlayerCommandText(playerid,cmdtext[])
{
// World Time =D
if (strcmp(cmdtext, "/matin", true)==0)
{
if (IsPlayerAdmin (playerid))
{
SendRconCommand ("weather 6");
SendClientMessageToAll(COLOR_ORANGE,"Il est maintenant 8 heure sur le serveur.");
SetWorldTime(Cool;
}
return 1;
}
if (strcmp (cmdtext, "/midi") == 0)
{
if (IsPlayerAdmin (playerid))
{
SendRconCommand ("weather 10");
SendClientMessageToAll(COLOR_ORANGE,"Il est maintenant 12 heure sur le serveur.");
SetWorldTime(12);
}
return 1;
}
if (strcmp (cmdtext, "/soir") == 0)
{
if (IsPlayerAdmin (playerid))
{
SendRconCommand ("weather 10");
SendClientMessageToAll(COLOR_ORANGE,"Il est maintenant 20 heure sur le serveur.");
SetWorldTime(20);
}
}
}
format(erreur, sizeof (erreur), "Commande invalide",cmdtext);
format(erreur, sizeof (erreur), "aide :",cmdtext);
format(erreur, sizeof (erreur), "Tape /commandes pour te renseigner sur toutes les commandes",cmdtext);
return SendClientMessage(playerid,COLOR_RED, erreur);
}
Voila ^^
-
Je viens d'indenter proprement ton code, et enfait c'est encore pire, car tes instructions en cas de mauvaise commande se trouvent après ton public !
Donc ça ne résoud rien. :(
-
Alex, esseye de mettre ca a la place du retur 0;
new erreur[256];
format(erreur, sizeof (erreur), "La commande \"%s\" n'existe pas. Tapez /aide ou /help",cmdtext);
return SendClientMessage(playerid,0xFFFF00AA, error);
}
++
nikko
-
Non mais c'est pareil. :D
Le string est rempli même quand la commande marche !
-
Chez moi sa marche impeq merci de m'avoir aider les mecs ! :D
-
Dr.
++
nikko
-
De rien ^^ :dling