• 04 Juin 2026, 21:11:34


Auteur Sujet: Petit prob dans ma fonction ...  (Lu 2218 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Dedepc

  • *
  • Nouveau
  • Messages: 20
    • Voir le profil
Petit prob dans ma fonction ...
« le: 02 Avril 2008, 10:55:42 »
Coucou, voilà, j'ai un petit problème avec une commande et ma fonction.
Je suis sur que ça doit être une connerie qui gâche un peu le fonctionnement de ma commande..

Je m'explique, quand je tape la commande /appeler taxi, le script et la fonction qui suit s' actionnent le
seul problème est que chaque fois je reçois une réponse du serveur SERVER: Unknow command. à la fin :-X

Partie quand la commande réagit avec le mot TAXI après appeler.

//*************************[Taxi Service]*************************//
if(!strcmp(tmp, "taxi",true,4))
{
SendClientMessage(playerid, VERT_OCEAN, "Vous avez appelé un taxi !");
    RequisitionTaxi(playerid);
print("Un joueur a requis la cmd /appeler [taxi]");
}
return 1;
}

Ma fonction RequisitionTaxi(playerid);

public RequisitionTaxi(playerid)
{
new message_RTaxi[256];
new nom_demandeur[256];
    for(new i=0; i<=200; i++)
{
    if(job[i] == 1)//Taximen
    {
    GetPlayerName(playerid, nom_demandeur, 256);
        format(message_RTaxi,256,"%s requiert un taxi (parlez-lui pour recevoir des informations sur ce client)",nom_demandeur);
    SendClientMessage(i, JAUNE, message_RTaxi);
    }
}
print("Demande de requierement d'un taxi envoyee par un joueur");
return 1;
}

En image :



En conclusion :

Ma commande fonctionne apparemment bien je reçois correctement les messages demandés même en temps que Taximen
il y a juste ce message du serveur qui vient se placer systématiquement à la fin..

Notez aussi que les print dans la console n'apparaissent plus à partir du début de ma fonction :S ...

Hors ligne UZI-I

  • BinaryIPL Manager
  • *
  • Grand Banditisme
  • http://www.yoa2n.fr
  • Messages: 825
    • Voir le profil
    • Yoa2n.fr
Re : Petit prob dans ma fonction ...
« Réponse #1 le: 02 Avril 2008, 13:02:53 »
Code: (pawn) [Sélectionner]
//*************************[Taxi Service]*************************//
if(!strcmp(tmp, "taxi",true,4))
{
SendClientMessage(playerid, VERT_OCEAN, "Vous avez appelé un taxi !");
    RequisitionTaxi(playerid);
print("Un joueur a requis la cmd /appeler [taxi]");
                        [b]return 0;[/b]
}
return 1;
}

OnPlayerCommandText doit retourner 1 si inconnu, 0 si la commande est reconnu.
Je pense que c'est ça. J'ai pas touché a SA-MP depuis un bail now ;)

Hors ligne Dedepc

  • *
  • Nouveau
  • Messages: 20
    • Voir le profil
Re : Petit prob dans ma fonction ...
« Réponse #2 le: 02 Avril 2008, 13:25:09 »
En effet en ajoutant une nouvelle fonctionne une autre erreur apparaît elle doit surement
être liée à ces fameux return je vais essayer d'y remédier cela devrait résoudre mon problème

Merci  ;)

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Petit prob dans ma fonction ...
« Réponse #3 le: 02 Avril 2008, 14:14:21 »
Non UZI-I, c'est le contraire.
return 1 indique que la commande saisie par le joueur a été traitée par le script.
return 0 indique que la commande n'a pas été traitée (ce qui provoque l'affichage du message d'erreur).

Ton premier code me parait correct Dedepc, je ne vois rien qui pourrait causer cette erreur.
Il se peut que tu aies des filterscript en plus de ton gamemode, c'est peut-être ça qui fout la merde.

Sinon, vérifie quand même, à tout hasard, que tu n'a pas une autre commande avec le même nom dans ton script.
Par exemple, fais une recherche que la chaîne "Vous avez appelé un taxi !" pour voir si il n'y en a pas une autre.

Sinon, essaies de nous donner plus de détails.

++
Syg
Courtesy of GtaManiac

Hors ligne UZI-I

  • BinaryIPL Manager
  • *
  • Grand Banditisme
  • http://www.yoa2n.fr
  • Messages: 825
    • Voir le profil
    • Yoa2n.fr
Re : Petit prob dans ma fonction ...
« Réponse #4 le: 02 Avril 2008, 14:17:57 »
Oui en effet.
Command Processed 1

Hum dedepc essaye de voir si t'as pas des filter script qui serait 'bugger'. Et tu sur que ça vient de cette fonction ?

Hors ligne Dedepc

  • *
  • Nouveau
  • Messages: 20
    • Voir le profil
Re : Petit prob dans ma fonction ...
« Réponse #5 le: 02 Avril 2008, 14:36:24 »
Hmm, je vais poster mon OnPlayerCommandText() complet .. je suis sur que c'est un problème avec
un return ou une chose du genre.
Pour les filterscripts il n'en n'avait pas de spécial, je les ai quand même supprimés mais sans succès..

Code: (pawn) [Sélectionner]
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new tmp[256];
new idx;
cmd = strtok(cmdtext, idx);

if(strcmp(cmd, "/appeler", true) == 0)
{
tmp = strtok(cmdtext,idx);
if (!strlen(tmp))
{
SendClientMessage(playerid, JAUNE_ORANGE, "Qui voulez-vous appeler ?");
SendClientMessage(playerid, JAUNE_ORANGE, "/appeler [taxi]");
print("Un joueur requiert la cmd /appeler");
return 1;
}
//*************************[Taxi Service]*************************//
if(!strcmp(tmp, "taxi",true,4))
{
SendClientMessage(playerid, VERT_OCEAN, "Vous avez appelé un taxi !");
RequisitionTaxi(playerid);
print("Un joueur a requis la cmd /appeler [taxi]");
}
return 1;
}
return 0;
}

Et denouveau ma fonction :

Code: (pawn) [Sélectionner]
public RequisitionTaxi(playerid)
{
new message_RTaxi[256];
new nom_demandeur[256];
    for(new i=0; i<=200; i++)
{
    if(job[i] == 1)//Taximen
    {
    GetPlayerName(playerid, nom_demandeur, 256);
        format(message_RTaxi,256,"%s requiert un taxi (parlez-lui pour recevoir des informations sur ce client)",nom_demandeur);
    SendClientMessage(i, JAUNE, message_RTaxi);
    }
}
print("Demande de requierement d'un taxi envoyee par un joueur");
return 1;
}

Testez si vous voulez dans un script vide pour voir l'effet !

Une note importante p-t si j'ajoute par exemple une fonction pour le suffixe police après /appeler le compilateur plante sur mon return 0;
« Modifié: 02 Avril 2008, 18:41:06 par UZI-I »

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : Petit prob dans ma fonction ...
« Réponse #6 le: 02 Avril 2008, 14:39:06 »
Regarde aussi si dans tes autres commandes tu na pas de return 0; j'ai eu se prob avec une commande, en faite s'était ma dernière commande qui faisait bogger toutes les autres :s
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne Dedepc

  • *
  • Nouveau
  • Messages: 20
    • Voir le profil
Re : Re : Petit prob dans ma fonction ...
« Réponse #7 le: 02 Avril 2008, 14:43:31 »
Regarde aussi si dans tes autres commandes tu na pas de return 0; j'ai eu se prob avec une commande, en faite s'était ma dernière commande qui faisait bogger toutes les autres :s

C'est la seule commande que je fait ><  ::)

^ Voir mon message modifié en haut ^

Hors ligne UZI-I

  • BinaryIPL Manager
  • *
  • Grand Banditisme
  • http://www.yoa2n.fr
  • Messages: 825
    • Voir le profil
    • Yoa2n.fr
Re : Petit prob dans ma fonction ...
« Réponse #8 le: 02 Avril 2008, 18:39:57 »
Code: (pawn) [Sélectionner]
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new tmp[256];
new idx;
cmd = strtok(cmdtext, idx);

if(strcmp(cmd, "/appeler", true) == 0)
{
tmp = strtok(cmdtext,idx);
if (!strlen(tmp))
{
SendClientMessage(playerid, JAUNE_ORANGE, "Qui voulez-vous appeler ?");
SendClientMessage(playerid, JAUNE_ORANGE, "/appeler [taxi]");
print("Un joueur requiert la cmd /appeler");
// Virer le return 0 ici.
}
//*************************[Taxi Service]*************************//
if(!strcmp(tmp, "taxi",true,4))
{
SendClientMessage(playerid, VERT_OCEAN, "Vous avez appelé un taxi !");
RequisitionTaxi(playerid);
print("Un joueur a requis la cmd /appeler [taxi]");
}
return 1;
}
return 0;
}

Essaye ça :)

Hors ligne Dedepc

  • *
  • Nouveau
  • Messages: 20
    • Voir le profil
Re : Petit prob dans ma fonction ...
« Réponse #9 le: 02 Avril 2008, 21:12:29 »
no :/ ...