• 10 Juillet 2025, 20:31:46


Auteur Sujet: Cmd a texte  (Lu 2336 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne 69scorpion

  • MrCorona
  • *
  • Tueur en série
  • Messages: 125
    • Voir le profil
    • Scorpion City
Cmd a texte
« le: 24 Septembre 2009, 10:11:01 »
Bonjour voila  j'ai fait une commande pour passer le permis automatique avec des questions ou il faut répondre avec un chiffre mon problème c'est que la cmd ne prend pas les chiffres quand je tape "1" il ne valide pas la commande voila un bout de mon code :

        new id;
    tmp = strtok(text, id);
    id = strvalEx(tmp);
if((strcmp("1", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("1")))
{
    SendClientMessage(playerid, COLOR_YELLOW2, "Mauvaise réponse.");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Vous venez de loupé votre permis.");
    PlayerInfo[playerid][pCarLic] = 0;
    TutTime[playerid] = 1;
SetPlayerPos(playerid, -2021.6069,-116.7008,1035.1719);
GameTextForPlayer(playerid, "~r~Permis Non Obtenu",5000,1);
SetPlayerInterior(playerid,3);
TogglePlayerControllable(playerid, 1);
    return 0;
}

Merci d'avance
[RP] 69scorpion [100%]


Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Cmd a texte
« Réponse #1 le: 24 Septembre 2009, 12:01:31 »
tu devrait plutot utiliser la callback OnPlayerText
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne 69scorpion

  • MrCorona
  • *
  • Tueur en série
  • Messages: 125
    • Voir le profil
    • Scorpion City
Re : Cmd a texte
« Réponse #2 le: 24 Septembre 2009, 12:22:52 »
Moi j'ai fais  une callaback public PermisAuto(playerid, text[])
[RP] 69scorpion [100%]


Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Cmd a texte
« Réponse #3 le: 24 Septembre 2009, 12:56:11 »
        new id;
    tmp = strtok(text, id);
    id = strval(tmp);
if(id == 1)
{
    SendClientMessage(playerid, COLOR_YELLOW2, "Mauvaise réponse.");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Vous venez de loupé votre permis.");
    PlayerInfo[playerid][pCarLic] = 0;
    TutTime[playerid] = 1;
SetPlayerPos(playerid, -2021.6069,-116.7008,1035.1719);
GameTextForPlayer(playerid, "~r~Permis Non Obtenu",5000,1);
SetPlayerInterior(playerid,3);
TogglePlayerControllable(playerid, 1);
    return 0;
}

STRCMP compare des array c 'est bien comme tu a fait, mais comme tu est sur que le gars va entrer un chiffre utilise strval et compare id avec le chiffre voulu



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne 69scorpion

  • MrCorona
  • *
  • Tueur en série
  • Messages: 125
    • Voir le profil
    • Scorpion City
Re : Cmd a texte
« Réponse #4 le: 24 Septembre 2009, 13:02:01 »
if(id == 1) >>> si je tape 1 sa devrait marché ??
[RP] 69scorpion [100%]


Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Cmd a texte
« Réponse #5 le: 24 Septembre 2009, 13:09:23 »
tout a fait sa veut dire

si le joueur tape 1 il a rater son permis par contre

au plus simple tu devrait mettre comme ceci


if(id != Bonne_Reponse)
{
      SendClientMessage(playerid, COLOR_YELLOW2, "Mauvaise réponse.");
      SendClientMessage(playerid, COLOR_LIGHTRED, "Vous venez de loupé votre permis.");
      PlayerInfo[playerid][pCarLic] = 0;
      TutTime[playerid] = 1;
      SetPlayerPos(playerid, -2021.6069,-116.7008,1035.1719);
      GameTextForPlayer(playerid, "~r~Permis Non Obtenu",5000,1);
      return 0;
   }
   else
   {
      SendClientMessage(playerid,couleur,"text comme quoi il a reussi");
   }
tout en definissant en haute de ton script

#define Bonne_Reponse 0  //si la bonne reponse est 0


EDIT tu devrait meme ajouter
if(id >MAX_REPONSE)
{
   SendClientMessage(playerid,couleur,"ta reponse doit etre entre la 0 et la "#MAX_REPONSE"");
}

#define MAX_REPONSE 4 //si il a 4 choix
« Modifié: 24 Septembre 2009, 13:11:44 par cristab »
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne 69scorpion

  • MrCorona
  • *
  • Tueur en série
  • Messages: 125
    • Voir le profil
    • Scorpion City
Re : Cmd a texte
« Réponse #6 le: 24 Septembre 2009, 17:43:58 »
Ok j'ai compris donc les réponses a met questions doit tous être au numero 1
[RP] 69scorpion [100%]


Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Cmd a texte
« Réponse #7 le: 24 Septembre 2009, 18:48:32 »
pas forcement tout dependras comment tu va proceder
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne 69scorpion

  • MrCorona
  • *
  • Tueur en série
  • Messages: 125
    • Voir le profil
    • Scorpion City
Re : Cmd a texte
« Réponse #8 le: 24 Septembre 2009, 21:43:12 »
Ca ne marche pas sa compile sans erreur mais quand je test par exemple je tapez "1" sa me met "1" dans le chat au lieu de validé la réponse.

voici mon code :

public PermisAuto1(playerid, text[])
{
new tmp[256];
{
    ClearChatbox(playerid, 10);
        new id;
    tmp = strtok(text, id);
    id = strval(tmp);
    if(id >MAX_REPONSE)
{
    SendClientMessage(playerid,COLOR_RED,"Ta réponse doit être entre la 1 et la 3");
}
if(id != Mauvaise_Reponse)
{
SendClientMessage(playerid, COLOR_YELLOW2, "Mauvaise réponse.");
SendClientMessage(playerid, COLOR_LIGHTRED, "Vous venez de loupé votre permis.");
PlayerInfo[playerid][pCarLic] = 0;
SetPlayerPos(playerid, -2021.6069,-116.7008,1035.1719);
GameTextForPlayer(playerid, "~r~Permis Non Obtenu",5000,1);
SetPlayerInterior(playerid,3);
TogglePlayerControllable(playerid, 1);
return 0;
}
[RP] 69scorpion [100%]


Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Cmd a texte
« Réponse #9 le: 25 Septembre 2009, 13:31:26 »
dans id met ca pour voir

id = strval(text);



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Cmd a texte
« Réponse #10 le: 25 Septembre 2009, 13:46:31 »
de genre de fonction PermisAuto1(playerid, text[]) fait penser que tu utilise la callback OnPlayerText je serais toi je reverait ceci car le mieux dans ce cas serais d'utilise la fonction strcmp
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne 69scorpion

  • MrCorona
  • *
  • Tueur en série
  • Messages: 125
    • Voir le profil
    • Scorpion City
Re : Cmd a texte
« Réponse #11 le: 25 Septembre 2009, 23:48:46 »
J'ai déplacé mon code je l'ai mit dans le callback OnPlayerText , Tout les touche marche("1","2") sauf qu'en je tape "3" sa met l'écrire dans le chat ??


Voici mon new code :

else if(PassageCode[playerid] > 0)
{
if (PassageCode[playerid]== 1)
{
    ClearChatbox(playerid, 10);
  new idx;
    tmp = strtok(text, idx);
        if ((strcmp("1", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("1")))
{
    SendClientMessage(playerid, COLOR_YELLOW2, "Mauvaise réponse.");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Vous venez de loupé votre permis.");
SetPlayerPos(playerid, -2021.6069,-116.7008,1035.1719);
GameTextForPlayer(playerid, "~r~Permis Non Obtenu",5000,1);
SetPlayerInterior(playerid,3);
TogglePlayerControllable(playerid, 1);
    return 0;
}
        else if ((strcmp("2", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("2")))
{
    SendClientMessage(playerid, COLOR_YELLOW2, "Mauvaise réponse.");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Vous venez de loupé votre permis.");
SetPlayerPos(playerid, -2021.6069,-116.7008,1035.1719);
GameTextForPlayer(playerid, "~r~Permis Non Obtenu",5000,1);
SetPlayerInterior(playerid,3);
TogglePlayerControllable(playerid, 1);
    return 0;
}
        else if ((strcmp("3", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("3")))
{
    SendClientMessage(playerid, COLOR_YELLOW2, "Bonne réponse.");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Félicitaions, vous venez de repondre à la 1ère Question.");
PassageCode[playerid] = 2;
    SendClientMessage(playerid, COLOR_YELLOW2, "2ème Question.");
    SendClientMessage(playerid, COLOR_LIGHTRED, "On roûle sur quelle coté de la route ?");
    SendClientMessage(playerid, COLOR_LIGHTRED, "1- Gauche");
    SendClientMessage(playerid, COLOR_LIGHTRED, "2- Droite ou Gauche");
    SendClientMessage(playerid, COLOR_LIGHTRED, "3- Droite");
    SendClientMessage(playerid, COLOR_YELLOW2, "Repondez avec le numero de la reponse!");
}
}
[RP] 69scorpion [100%]


Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Cmd a texte
« Réponse #12 le: 25 Septembre 2009, 23:52:06 »
Tu as oublié
return 0;à la suite de
SendClientMessage(playerid, COLOR_YELLOW2, "Repondez avec le numero de la reponse!");
++
Syg
Courtesy of GtaManiac

Hors ligne 69scorpion

  • MrCorona
  • *
  • Tueur en série
  • Messages: 125
    • Voir le profil
    • Scorpion City
Re : Cmd a texte
« Réponse #13 le: 26 Septembre 2009, 00:01:12 »
A oui sa marche  Merci je peut peut savoir quelle est la différence entre return 1; et return 0;
[RP] 69scorpion [100%]


Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Cmd a texte
« Réponse #14 le: 26 Septembre 2009, 00:20:50 »
return0; empeche l'affichage dans le chat donc ne renvoie pas ce que tu ecrit tandis que le return1; lui te renveras sur le chat ce que tu a taper


en gros return1; renvoi ce que tu tape

return0; ne renvoi rien
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici