GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Kiloutre le 18 Juillet 2012, 21:01:13

Titre: Probleme de Boite de Dialogue
Posté par: Kiloutre le 18 Juillet 2012, 21:01:13
Bonjour, je suis en train de developpé une nouvelle version completement modifié de mon fs "Keapon". J'ai crée des boites de dialogues en suivant les exemples du wiki, mais un probleme survient IG :

Quand je clique sur une catégorie dans ma liste de ma 1ère boite de dialogue, elle disparait ! Je vous laisse regardez mon code (pendant je compilage aucune erreur ne survient ni un warning)

Pastebin : http://pastebin.com/T7h8eRhx (http://pastebin.com/T7h8eRhx)
Titre: Re : Probleme de Boite de Dialogue
Posté par: [KoD]Jhonny le 19 Juillet 2012, 12:31:22
Salut,
C'est normal tu as confondu plusieurs l'id de dialog 1 tiens essaye:
http://pastebin.com/0SMnFdjv (http://pastebin.com/0SMnFdjv)
Titre: Re : Probleme de Boite de Dialogue
Posté par: Kiloutre le 19 Juillet 2012, 14:26:09
Ca fait toujours la meme chose. Et aussi quand je me connecte en R-con et que j'essaye ils me disent "le joueur n'est pas connecté"
Titre: Re : Probleme de Boite de Dialogue
Posté par: Diablo62 le 19 Juillet 2012, 14:55:33
Salut.

Je viens de créer un système de boite de dialogue multiple (une boite dans une boite) sous forme de Liste également et je n'ai pas du tout de Problème.

Par contre, en comparant avec le tien je ne vois pas de grosse différence mis à part le fait qu'en dessous de chaque "ShowPlayerDialog" j'ai un return 1.
De même, essaye de remplacer ton 1 qui se trouve dans "ShowPlayerDialog" de ta commandtext et dans "if (dialogid == " par "DIALOGWEAPONS1".

Je ne sais pas si ça aura une influence ou non, mais sinon je ne vois pas ce qui cloche  ;D
Titre: Re : Probleme de Boite de Dialogue
Posté par: Kiloutre le 19 Juillet 2012, 15:58:44
Toujours le meme probleme, j'ai fait ce que t'a dit et ca ne change rien. Pourrais-je avoir une partie de ton code en mp pour que je puisse voir si il y a des différences ? Je t'en serai reconnaisant.
Titre: Re : Probleme de Boite de Dialogue
Posté par: Diablo62 le 19 Juillet 2012, 16:47:51
Je suis en train de mettre une partie de ma commande sous Pastebin et je vais te le donner en Mp. Par contre je viens de voir quelque chose. Tu donnes une armes à une Personne, mais tu définis le nombre de balle à 0. Déjà là tu auras un Problème ;)


EDIT : Tu as définis toutes tes boites de dialogue dans OnDialogResponse ou juste ce que tu nous as donné ? Si tu as mis toutes les boites de dialogue, je t'envoie le Pastebin, sinon essaye juste de cliquer sur la boite correspondant aux armes blanches.
Titre: Re : Probleme de Boite de Dialogue
Posté par: Kiloutre le 19 Juillet 2012, 19:02:14
J'ai définit ce tous ce qui se passait quand le joueur cliquait sur une reponse dans une liste dans OnDialogResponse. C'est a dire les catégories, et mes armes qu'on lui donnait quand il cliquait sur une arme (dans une catégorie)

Je t'explique :

if(listitem == 0) //Catégorie 1, "Arme Blanche"
                {
                ShowPlayerDialog(playerid, DIALOGWEAPONSAB, DIALOG_STYLE_LIST, "Arme Blanche", "Poing Américain\nBatte de Baseball\nPelle\nCouteau\nKatana", "Prendre", "Quitter");
                }

Ca c'est quand le joueur clique sur la catégorie Arme Blanche dans la 1ere boite de dialogue (meme si tu le sais déja) et il est défini dans le OnDialogResponse dans le if(dialogid == 1) (1 qui signifie DIALOGWEAPONS)

Et ca :

              if(listitem == 0) //Poing Américain
                {
                        GivePlayerWeapon(playerid,1,0);
                        SendClientMessage(playerid,COLOR_ORANGE,"Vous venez de recevoir un Poing Américain");
                }

C'est quand le joueur clique sur "Poing Américain" Dans la catégorie arme blanche qui est aussi dans le OnDialogResponse dans le if(dialogid == DIALOGWEAPONSAB)
Donc en gros OUI j'ai defini toutes les boites de dialogues dans le OnDialogResponse sauf celui ou on doit ecrire /armes
Titre: Re : Probleme de Boite de Dialogue
Posté par: Diablo62 le 19 Juillet 2012, 19:41:03
Je me suis mal exprimé quand j'ai dis définis  :wall
En faites, je voulais dire : Ton FS est-il la réplique exact de ce que tu as mis dans ton Pastebin, ou alors toutes les boites avec toutes les catégories d'armes sont faites ?

Dans tous les cas, je t'envoie un Mp ;)
Titre: Re : Probleme de Boite de Dialogue
Posté par: Kiloutre le 19 Juillet 2012, 21:24:30
Non j'ai juste mit une partie mais cette partie en question causait le meme bug. Apres je vais voir si les corrections sur la partie en question marchent.
Titre: Re : Probleme de Boite de Dialogue
Posté par: Diablo62 le 19 Juillet 2012, 21:29:22
Tu as bien reçu mon Mp ?? Il ne s'est pas afficher pas dans ma boite d'envoi  ::)
Titre: Re : Probleme de Boite de Dialogue
Posté par: Kiloutre le 19 Juillet 2012, 21:58:54
Oui ne t'inquiete pas j'etait en train de transformer ton code pour qu'il soit fait pour les armes mais toujours le meme probleme.
Sinon j'ai un autre probleme, je voudrais crée une commande pour pouvoir afficher le nombre d'arme que les gens ont prise, voici le code :

Define de la variable weaponnumber
new weaponnumber = 0;
Commande pour afficher
if (strcmp("/armesdet", cmdtext, true, 10) == 0 || strcmp("/armedet",cmdtext,true,10) == 0 || strcmp("/wepdet",cmdtext,true,10) == 0)
{
      printf("%d",weaponnumber);
      return 1;
}

Moment ou on ajoute 1 a la variable
if(listitem == 0) //Poing Américain
{
     GivePlayerWeapon(playerid,1,0);
     SendClientMessage(playerid,COLOR_ORANGE,"Vous venez de recevoir un Poing Américain");
     weaponnumber ++;
}
Titre: Re : Probleme de Boite de Dialogue
Posté par: Diablo62 le 20 Juillet 2012, 00:31:49
Le printf ne sert qu'à afficher un message dans la console du serveur (mais je pense que tu t'en doute déjà).

Sinon pour ton problème, je viens de trouver cette fonction sur SAMP Wiki : "GetPlayerWeaponData". Je ne suis pas sûr de moi, mais d'après ce que je comprends cette fonction permettrait de faire exactement ce que tu demandes.
D'autres personnes pourraient sans doute t'en dire plus à ce sujet.
Titre: Re : Probleme de Boite de Dialogue
Posté par: Kiloutre le 20 Juillet 2012, 02:31:59
Il n'y a pas un moyen pour caser la valeur de weaponnumber dans un SendClientMessage ? Ou je doit mettre un string  :lmfao
Titre: Re : Probleme de Boite de Dialogue
Posté par: Ssk le 20 Juillet 2012, 22:31:52
tu dois créer un tableau qui contiendra ton texte formaté grâce à la fonction format.


new str[128];
format(str, sizeof(str), "Je suis la valeur de weaponnumber %d", weaponnumber);
SendClientMessageToAll(-1, str);
Titre: Re : Probleme de Boite de Dialogue
Posté par: Kiloutre le 22 Juillet 2012, 01:52:10
Up, mon probleme de boite de dialogue n'est toujours pas réglé.