GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: NatiVe™ le 23 Août 2007, 00:02:55
-
Salut all !
Je voudrais savoir quelle code utiliser et ou le placer pour que quand un player fait une mauvaise command un petite phrase du jore (Mauvaise commande utiliser) apparaisse !
je penser a mettre un GameTextForPlayer a la fin du return 0 met apparement nan ! :( (on mavais dit ca un jour :s )
Voila merci de vos futur reponse
AK.
-
return 0;
return tonmessagetexte;
-
Bien di donc tu est gentil se soir lol merci beaucoup !
si j'ai bien compris a la fin jdoit avoir par exemple
return 1;
}
return monmessage;
}
C'est sa ?
AK.
-
Spyker, tu tournes à quoi ce soir ?
ou alors tu aimes pas Arsenik .....
J'arrive même à faire planter le compilo PAWN avec ta solution ... :)
A la fin de OnPlayerCommandText, tu appelles GameTextForPlayer et tu fait un return 0 (voire même return 1 si tu ne veux pas que le message par défaut apparaisse dans la console)
++
Syg
-
Re !!
a la fin de toute mes commande j'ai mit sa
}
return 1;
}
return Serveur Message: Commande inconnue;
}
Mais ce ne marche pas j'ai une erreur
error 010: invalid function or declaration
-
A la fin de OnPlayerCommandText, tu appelles GameTextForPlayer et tu fait un return 0 (voire même return 1 si tu ne veux pas que le message par défaut apparaisse dans la console)
++
Syg
J'ai pa trop ccompris...
Tu aurais un exemple s'il te plais !
Merci ! :)
AK.
-
Si :
A placer à la fin de OnPlayerCommandText
GameTextForPlayer (playerid, "Commande invalide", 2000, 6);
return 1;
++
Syg
-
Sa ne marche pas
je doit mettre
GameTextForPlayer (playerid, "Commande invalide", 2000, 6);
return 1;
tou a la fin de mes commande ? si c'est sa ca ne marche pas !
Par exemple
....................................
....................................
..........MES..CMD..........
....................................
....................................
GameTextForPlayer (playerid, "Commande invalide", 2000, 6);
return 1;
???
AK.
-
Non...
Dsl pour le premier post, j'était un peu pressé, ça aurait été mieux que je poste pas d'ailleurs xD
return GameTextForPlayer (playerid, "Commande invalide", 2000, 6);
J'ai coder ça comme ça sur mes scripts, ça marche jusqu'à présent.
En fait au lieu de déclarer une commande invalide tu lui fait retourner une commande qui n'est pas un bool vrai ou faux (1 ou 0) mais qui est interprété comme un faux.
Bref, je sais pas si je me fais bien comprendre, jsuis un peu fatiguer là :s
PS : Ak : On ne PEUT PAS retourner deux fois true or false dans une fonction pour la fermer sauf cas particuliers (et encore pas certains, le pro Syg nous dira :P).
-
Ah, je préfère ça Spyker.
Mais normalement dans la callback OnPlayerCommandText on retourne soit 0 (pour dire qu'on a pas traité la commande) soit 1 (pour dire qu'on a traité la commande) et on sait pas ce que retourne GameTextForPlayer (peut-être le nombre de caractères affiché ou 0 ou je sais pas quoi) donc pour être sùr, vaut mieux le faire en deux lignes.
Arsenik, voilà à quoi devrait ressembler ta fonction :
public OnPlayerCommandText
{
if ("cmd1")
{
/* On traite la commande */
...
return 1;
}
else if ("cmd2")
{
/* On traite la commande */
...
return 1;
}
else if ....
{
}
GameTextForPlayer (...);
return 1;
}
NB : Il peut y avoir des if à la place des else if, ça change rien pour ce qui nous intéresse.
Voilà, je pense que c'est clair.
++
Syg
-
:( :( :( :(
if ("cmd")
{
/* je traite mes cmd */
...........
}
GameTextForPlayer (playerid, "Commande invalide", 2000, 6);
return 1;
}
Ca ne marche pas ! :( :(
-
:( :( :( :(
if ("cmd")
{
/* je traite mes cmd */
...........
}
GameTextForPlayer (playerid, "Commande invalide", 2000, 6);
return 1;
}
Ca ne marche pas ! :( :(
return GameTextForPlayer (playerid, "Commande invalide", 2000, 6);
Bonjour, derien, au revoir je vais au lit :)
-
Tu te couches trop tard Atx1 :)
Cette solution a déjà été donnée par Spycker et elle n'est pas différente de celle que j'ai donnée.
Le problème d'Arsenik est ailleurs.
Mais pour ça, il faudrait qu'on voit ton code Arsenik. Est-ce que tu peux mettre le code de ta fonction OnPlayerCommandText dans le pastebin :
(http://pastebin.gtaonline.fr/pastebin.php)
Pour les explication sur le pastebin :
http://www.gtaonline.fr/forums/index.php/topic,1098.0.html
++
Syg
-
Salut ! :s
Je crois que vous n'avez pas compris mon probleme qui n'en n'est pas un d'ailleur.
Je cherche le code qui existe pour par exemple si le player fait une commande qui n'existe pas dans mon GameMode sa lui affiche Commande Invalide au lieu de SERVER: Unknown Command qui lui est d'origine.
Exemple:
Imaginons j'ai que 3 commandes dans mon GameMode:
/ls
/lv
/sf
Un player decide de faire une commande au hazard, il fait /commande
(http://www.mezimages.com/up/08/min-510473-sa-mp-002.png) (http://www.mezimages.com/afficher.php?num=510473-sa-mp-002.png)
le serveur lui dit:
(http://www.mezimages.com/up/08/min-510474-sa-mp-003.png) (http://www.mezimages.com/afficher.php?num=510474-sa-mp-003.png)
Bien moi je cherche le code qui remplace SERVER: Unknown Command par une phrase que je voudrais.
J'espere que je me suis bien expliquer ;).
AK.
-
Oui ba met ce qu'on t'a répondu ^^
return GameTextForPlayer (playerid, "Commande invalide", 2000, 6);
-
Oui ba met ce qu'on t'a répondu ^^
return GameTextForPlayer (playerid, "Commande invalide", 2000, 6);
Voila ce que je viens de faire.
if ("cmd")
{
/* je traite mes cmd */
...........
}
return GameTextForPlayer (playerid, "Commande Invalide", 2000, 6)
}
Sa ce compile parfaitement mais ne marche pas.
Je suis désolé de vous embetter avec sa.
Si vous ne savez plus quoi faire pour moi laisser tombé je comprendrez.
Merci
AK.
-
Bon bon bon..
public OnPlayerCommandText(playerid, cmdtext[])
{
new error[256];
format(error, sizeof (error), "Commande inconnue: %s",cmdtext);
[...Tes commandes...]
return SendClientMessage(playerid,0xFFFF00AA, error);
}
-
En dessous des autres au debut je mais sa >
new error[256];
Sa je le place ou s'il te plais.
format(error, sizeof (error), "Commande inconnue: %s",cmdtext);
AK.
-
N'importe où avant le return. Garde les deux bouts ensemble, c'est plus lisible.
-
Merciiiiiiiiii !!!!
Ca marche merci beaucoup SpyKerc8
Et merci aux autres.
AK.