• 04 Juin 2026, 16:55:29


Auteur Sujet: Commandes qui marchent pas dans le script  (Lu 3057 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne TheDriver

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Commandes qui marchent pas dans le script
« le: 22 Octobre 2006, 21:57:13 »
Bonsoir à tous,

Voilà, je décris mon problème :

J'ai un script puis un filterscript. Quand je mets les deux en route, aucunes des commandes dans le script ne sont opérationelles mais les commandes dans le filterscript marchent très bien. En revanche, quand je désactive le filterscript, les commandes dans le script marchent parfaitement. On dirait qu'il y a une sorte de blocage de la part du filterscript qui empêche les commandes du script de s'exécuter.

Voici les bouts de scripts :

Dans le script (pour les joueurs):

//=================================Commandes====================================
public OnPlayerCommandText(playerid,cmdtext[],const str[],define)
{
new string[256];

//-----Si le joueur se retrouve en prison
if (strcmp(cmdtext,"/getpara", true)==0 ||
strcmp(cmdtext,"/gotols", true)==0 ||
strcmp(cmdtext,"/gotosf", true)==0 ||
strcmp(cmdtext,"/gotolv", true)==0 )
{
if (Jailed[playerid] == 1)
{
}
}
//-----Aide
if (strcmp(cmdtext,"/help",true)==0)
{
    SendClientMessage(playerid, COLOR_WHITE,"Tapez /rules pour afficher les règles du serveur,");
  SendClientMessage(playerid, COLOR_WHITE,"Tapez /cmd pour afficher la série des commandes,");
SendClientMessage(playerid, COLOR_WHITE,"Tapez /racescmd1 pour afficher la première série des commandes des courses,");
SendClientMessage(playerid, COLOR_WHITE,"Tapez /racescmd2 pour afficher la seconde série des commandes des courses.");
return 1;
}

Dans le filterscript (admins) :
//=================================Commandes====================================
public OnPlayerCommandText(playerid,cmdtext[],const str[],define)
{
new command[256],index;
command = strtok(cmdtext,index);
new Float:x,Float:y,Float:z;

new name[MAX_PLAYER_NAME];
new Temp[256];
new String[256];
new StringFile[256];

//-----Commandes admins
if (strcmp(cmdtext, "/admincmd1", true)==0)
{
if (IsPlayerAdmin(playerid))
{
SendClientMessage(playerid,COLOR_WHITE,"/adminskin1 (2, 3 ou 4) pour changer de skin,");
SendClientMessage(playerid,COLOR_WHITE,"/gotoadmins pour vous téléporter chez les admins,");
SendClientMessage(playerid,COLOR_WHITE,"/midnight pour changer l'heure à minuit,");
SendClientMessage(playerid,COLOR_WHITE,"/midday pour changer l'heure à midi,");
SendClientMessage(playerid,COLOR_WHITE,"/18hours (ou quelconque heure) pour changer l'heure.");
}
return 1;
}


Voilà, j'éspère que vous comprenez mon problème et que vous saurez le résoudre.

Merci.

Bye

Hors ligne spykerc8

  • *
  • 'The GTAOnline.fr GodFather'
  • Messages: 3821
    • Voir le profil
    • http://www.gtaonline.fr
Re : Commandes qui marchent pas dans le script
« Réponse #1 le: 22 Octobre 2006, 22:06:25 »
Ba je sais pas vraiment, je demanderais à des pro coders à l'occase, mais je pense que quand il y a deux fois l'evemment ca bug...
En plus tu as un evénnement spécial que tu as modifier puisque l'original ressemble à ca : public OnPlayerCommandText(playerid, cmdtext[]) {
Met tout dans un seul fichier ou change la facon d'appeler l'évenement..

PS : irc.gtanet.com/sa-mp.scripting


~ Leader honoraire de la FsK Team ~ -
~ Membre honoraire de la PCP Team ~

Co-fondateur de GTAO - Retraité de la communauté

"Nous ne sommes rien, soyons tout !"


Hors ligne TheDriver

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : Commandes qui marchent pas dans le script
« Réponse #2 le: 23 Octobre 2006, 01:09:49 »
(Je sais que c'est une heure assez tardive pour poster mais demain je prends plus tard  :P)

Donc, revenons à nos moutons, j'ai essayé plusieurs choses notamment :

public OnPlayerCommandText(playerid, cmdtext[])
{
Mes commandes
Mes actions
}

(il s'agit ici de l'évenemment d'origine que j'ai placé dans les deux scripts).

Le problème venait en fait de la valeur du return (qui était fausse car elle était égale à 1) à la fin de l'évenement   "public OnPlayerCommandText".
Il faut donc mettre :
return 0;

Voilà, donc je te remercie spy de ta réponse. Par contre j'ai une autre question, j'ai jamais trop sû à quoi ça sert les return ?? (d'où mon erreur).

Hors ligne Lalu

  • *
  • You can run, but you can't hide
  • Messages: 1185
    • Voir le profil
    • Webkot
Re : Commandes qui marchent pas dans le script
« Réponse #3 le: 23 Octobre 2006, 17:14:32 »
Je sais pas trop expliquer correctement. Pour moi cela signfie que la fonction en cours est terminé et que le script pour retourner au stade précédent

Ce serait donc pour dire la fin d'un truc.
Return 1; pour montrer la fin d'une commande
Return 0; pour montrer la fin d'une "partie" public

Voila, c'est dur a expliquer :s
Drink Like a Russian, Drive like a German, Kiss like a French, Be a Belgian !