GTAOnline.net

San Andreas Multiplayer (sa:mp) => Problèmes et bugs => Discussion démarrée par: denko le 27 Avril 2010, 00:30:00

Titre: Qu'est-ce qui ne va pas dans mon script ?
Posté 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'
Titre: Re : Qu'est-ce qui ne va pas dans mon script ?
Posté par: cristab le 27 Avril 2010, 08:38:23
omg LE PASTEBIN MERCI
Titre: Re : Qu'est-ce qui ne va pas dans mon script ?
Posté par: denko le 27 Avril 2010, 11:54:47
EDIT: C'est bon. Désolé je connaissais pas le fonctionnement  :blink.
Titre: Re : Qu'est-ce qui ne va pas dans mon script ?
Posté par: cristab le 27 Avril 2010, 12:45:03
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)
Titre: Re : Qu'est-ce qui ne va pas dans mon script ?
Posté par: denko le 27 Avril 2010, 12:57:32
C'est bon j'ai édit.
Titre: Re : Qu'est-ce qui ne va pas dans mon script ?
Posté par: Barto le 27 Avril 2010, 18:54:32
Tes warnings viennent certainement de l'intendation.
Titre: Re : Re : Qu'est-ce qui ne va pas dans mon script ?
Posté par: BuBuNo le 27 Avril 2010, 22:12:16
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
Titre: Re : Qu'est-ce qui ne va pas dans mon script ?
Posté par: denko le 27 Avril 2010, 23:53:10
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.
Titre: Re : Qu'est-ce qui ne va pas dans mon script ?
Posté par: Syg le 29 Avril 2010, 09:35:47
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
Titre: Re : Qu'est-ce qui ne va pas dans mon script ?
Posté par: denko le 29 Avril 2010, 19:06:17
Lol je viens de voir le post même si j'ai trouvé seul avant de lire là merci quand même.