• 18 Mai 2024, 08:09:14


Auteur Sujet: [RESOLU]Boite de Dialogue qui disparait  (Lu 1917 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
[RESOLU]Boite de Dialogue qui disparait
« le: 21 Août 2012, 02:53:36 »
Bonjour a tous et a toutes, voila beaucoup de temps que je cherche une solution a un probleme simple : Ma boite de dialogue disparait des que je clique sur quelquechose dans ma liste !

Voici mon bout de code :

public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext,"/wep",true)==0)
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Catégories", "Arme de Melee\nPistolet\nMitraillette\nFusil a Pompe\nExplosif\nAutres", "Continuer", "Quitter");
   return 1;
}
return 0;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(response)
{
     if(dialogid == 1)//Si la personne choisi le dialog numero 1 (Catégories)
     {
        if(listitem == 0)
        {
            ShowPlayerDialog(playerid, 2, DIALOG_STYLE_LIST,"Arme de Melee", "Couteau\n Katana\nBatte de Baseball\nPoing Américain\nPelle", "Prendre", "Retour");
}
     }
    
     if(dialogid == 2)
     {
        if(listitem == 0)
        {
GivePlayerWeapon(playerid,4,0);
SendClientMessage(playerid,COLOR_VERT,"Vous venez de recevoir un Couteau");
}
}
}
    return 1;
}

Ici quand je choisi la categorie "Arme de Melee" (Boite de dialogue n°2) ma boite de dialogue disparait, et c'est tous. J'ai meme essayé d'inserer un SendClientMessage quand on arrive dans la categorie pour voir si ca marchais mais non.

J'espere franchement trouvé la solution ca fait tres longtempss que je cherche  :wall
« Modifié: 24 Août 2012, 22:41:10 par KonVict92x »

[/url]

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #1 le: 21 Août 2012, 02:59:16 »
Tu mets :
if(response)
{
   if(dialogid == 1)...
}
En fait tu te dis comme ça :

Si c'est le dialogid 1 et qu'il y a une réponse, ensuite si c'est la reponse 1 faire ceci etc..

L'as tu demande au script de te donner une réponse, mais où ? Je sais pas si c'est ça qui changera le problème mais essai et dis-nous en des nouvelles
Le mieux c'est d'utiliser la fonction switch par exemple :
switch(dialogid)
{
    case 1(ou le nom d'un define):
    {
       switch(listitem)
       {

       }
    }
}
Et ainsi de suite !
« Modifié: 21 Août 2012, 03:05:13 par Kevin_Carter »

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #2 le: 21 Août 2012, 10:38:47 »
Salut.

J'ai implanter dans mon Gm des dizaines de Boites de dialogues et plusieurs ce sont des boites de dialogues dans des boites de dialogues, et je n'ai Jamais eu aucun problème.

Ton "OnDialogResponse" a juste mal été créé. Voilà comment moi j'ai fait :

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   if(dialogid == Boite1) 
   {
       if(response) // Response doit se trouver en dessous
       {
            if(listitem == 0)
            {
            // Un bout de code
            }
            if(listitem == 1)
            {
            // Un autre bout de code
            }
       }
   }
   if(dialogid == Boite2) 
   {
       if(response) // Ton response encore en dessous
       {
       // Encore un autre bout de code
       return 1;
       }
   }
   // Et ainsi de suite ...
   return 1;
}

En faisant comme ça, ça devrait régler ton problème ;)
Merci à Colonel Marco pour la Signature

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #3 le: 21 Août 2012, 16:05:54 »
Citation de: Kevin_Carter
En fait tu te dis comme ça :

Si c'est le dialogid 1 et qu'il y a une réponse, ensuite si c'est la reponse 1 faire ceci etc..

L'as tu demande au script de te donner une réponse, mais où ? Je sais pas si c'est ça qui changera le problème mais essai et dis-nous en des nouvelles
Le mieux c'est d'utiliser la fonction switch par exemple :

Non, tu te trompe. D'après le SAMP WIKI le if(response) sert a verifier si le joueur a cliqué sur le bouton pour continuer. Donc moi j'ai décidé de verifier si le joueur continuait avant de verifier les DIALOGID, comme ca je ne verifie pas la reponse dans chaque DIALOGID et ca permet de prendre moins de place, je ne sais pas si ca a un rapport mais bon.

Et diablo, j'ai beau faire ta methode ca ne marche pas  :wall

[/url]

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #4 le: 21 Août 2012, 16:29:35 »
Si ça ne fonctionne pas avec ma méthode, c'est que tu as oublié quelque chose.

Tu as bien définis tes boites de dialogues au moins ?
Merci à Colonel Marco pour la Signature

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #5 le: 21 Août 2012, 16:33:32 »
Et tu as essayé avec ma façon ?
« Modifié: 21 Août 2012, 16:37:05 par Kevin_Carter »

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #6 le: 21 Août 2012, 16:41:03 »
la methode de Diablo62 est bonne ainsi que celle de Kevin_Carter je serais toi KonVict92x je me documenterais un peu sur le wiki SAMP ou alors tenterais de regarder un FS qui utilise ce même systeme afin de voir tes erreurs
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 Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #7 le: 22 Août 2012, 01:36:37 »
Pour les FS j'ai longtemps chercher je ne trouve pas, tu n'aurait pas un lien s'il te plait ? Pour definir les ID de dialogue j'utilise

#define DIALOG_CATEG 1
#define DIALOG_MELEE 2

[/url]

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #8 le: 22 Août 2012, 08:33:52 »
http://www.gtaonline.fr/forums/index.php/board,74.0.html

un minimum d'effort pour un maximum de fierté
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 Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #9 le: 22 Août 2012, 15:12:19 »
J'ai trouvé deux trois FS mais ils font la meme chose que moi, et j'ai chercher dans les GM et la ca me depasse totalement...

[/url]

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #10 le: 22 Août 2012, 15:39:37 »
Tu es vraiment certains que les personnes ont mis response avant dialogid ?? Es tu certains d'avoir essayer avec ma méthode ??

Dernière chose que je vois mais qui n'auras sans doute aucun impact, remplace "ShowPlayerDialog(playerid, 1" par "ShowPlayerDialog(playerid,DIALOG_CATEG" et dans ton OnDialogResponse remplace "dialogid == 1" par "dialogid == DIALOG_CATEG"

Si après ça, ça ne fonctionne toujours pas (ce qui sera le cas à mon avis), je ne vois vraiment pas ce que ça pourrait être. Si vraiment tu as essayé ce que je t'ai donné, la version de Kevin_Carter, il n'y a normalement aucune raison pour que ça ne fonctionne pas.
Merci à Colonel Marco pour la Signature

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #11 le: 22 Août 2012, 18:54:05 »
Moi personnellement j'ai toujours comme ce que je t'ai montré et ça à toujours fonctionné !
Donc essai nos façon de faire.

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #12 le: 22 Août 2012, 19:05:28 »
Je veux bien essayé la methode de Kevin mais je n'y comprend pas grand chose. J'ai déja essayé de mettre le nom du define a la place des chiffres et de ne pas mettre le "if(response)" avant le "if(dialogid...)" et ca ne change toujours rien.

Pourrais-je avoir un exemple d'utilisation pour la methode de Kevin ? Et avoir un bout de code pour comparer les differences ?

[/url]

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #13 le: 22 Août 2012, 19:49:39 »
n'aurais tu pas un FS qui utilise des dialogue et qui plus est avec les même ID ?
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 Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Boite de Dialogue qui disparait
« Réponse #14 le: 22 Août 2012, 20:52:23 »
Pour faire simple : Non  :'( et franchement ca commence beaucoup a me  :bangin ...

[/url]