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
-
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)
-
Salut,
C'est normal tu as confondu plusieurs l'id de dialog 1 tiens essaye:
http://pastebin.com/0SMnFdjv (http://pastebin.com/0SMnFdjv)
-
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é"
-
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
-
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.
-
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.
-
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
-
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 ;)
-
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.
-
Tu as bien reçu mon Mp ?? Il ne s'est pas afficher pas dans ma boite d'envoi ::)
-
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 ++;
}
-
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.
-
Il n'y a pas un moyen pour caser la valeur de weaponnumber dans un SendClientMessage ? Ou je doit mettre un string :lmfao
-
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);
-
Up, mon probleme de boite de dialogue n'est toujours pas réglé.