GTAOnline.net
San Andreas Multiplayer (sa:mp) => Problèmes et bugs => Discussion démarrée par: denko le 27 Avril 2010, 00:30:00
-
Bonjour, j'ai scripté un petit FilterScript de FS pour Aide et Aide Admin.
Malheureusement, malgré 0 warnings, lorsque je me connecte sur mon serveur avec le script lancé, plus aucune commande à part /aide et /aaide, plus de job et plus de faction; Tout disparait.
Quelqu'un pourrait m'aider à trouver mon erreur car je suis un peu perdu et persuadé que mon script est correct ? Merci D'avance.
Voici mon script (Scripté sur modèle d'un script d'ici je crois):
http://pastebin.gtaonline.fr/pastebin.php?show=767 (http://pastebin.gtaonline.fr/pastebin.php?show=767)
EDIT: Le problème vient du fait qu'aucune commande ne peux être utilisée en présence de ce script sur le serveur. (Exemple: /gotola, /gotolv, /gotosf)
Je ne peux faire aucune commande si le FS est ajouté au server.cfg.
Lorsque je veux faire une commande, ça me dit 'Cette commande n'existe pas'
-
omg LE PASTEBIN MERCI
-
EDIT: C'est bon. Désolé je connaissais pas le fonctionnement :blink.
-
lit sa pour avoir de l'aide [A LIRE] Comment faire ma demande d'aide (http://www.gtaonline.fr/forums/index.php/topic,8915.0.html)
-
C'est bon j'ai édit.
-
Tes warnings viennent certainement de l'intendation.
-
Tes warnings viennent certainement de l'intendation.
Identation = placement ;)
EX :
new tmp[128];
new cmd[32];
MAUVAIT ! loose identation ;)
corrigeons sa :P :
new tmp[128];
new cmd[32];Magnificos sa compile :P
-
Merci pour le conseil.
Maintenant on en revient au début.
Je ne peux faire aucune commande si le FS est ajouté au server.cfg.
Lorsque je veux faire une commande, rien ne se passe.
EDIT: Nouveau Code sur Pastbin: http://pastebin.gtaonline.fr/pastebin.php?show=767 (http://pastebin.gtaonline.fr/pastebin.php?show=767)
Il est moins long qu'avant peut être vous pourrez trouver les erreurs moins difficilement.
-
Il faut remplacer le return 1; de la ligne 46 de ton FS par un return 0; :
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/aide", true) == 0)
{
ShowPlayerDialog(playerid, INTERIORMENU, DIALOG_STYLE_LIST, "Aide","Commandes Générales\nCommandes Générales 2\nCommandes Maison\nCommandes Biz\nCommandes Téléphone\nCommandes Job\nCommandes Faction\nCommandes Leader\nRetour", "Valider", "Quitter");
return 1;
}
if(strcmp(cmdtext, "/aaide", true) == 0)
{
ShowPlayerDialog(playerid, AAIDE, DIALOG_STYLE_LIST, "Aide Admin", "Sous-Modo\nModérateur\nAdmin\nAdmin Général\nFondateur", "Commandes", "Quitter");
TogglePlayerControllable(playerid,0);
return 1;
}
return 0; // <------ ICI !!!!
}
Pour l'explication :
Les callback d'un FS sont toujours appelées avant celles du gamemode.
Une callback d'un FS retourne 1 pour indiquer qu'elle a traité le message (ou la commande) et qu'il n'est donc pas nécessaire de la faire au niveau du gamemode.
Il faut donc que la callback du FS retourne 0 pour indiquer qu'elle n'a pas traité le message et que c'est à la callback du gamemode de le faire.
++
Syg
-
Lol je viens de voir le post même si j'ai trouvé seul avant de lire là merci quand même.