Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254731 Messages dans 14037 Fils de discussion- par 6623 Membres - Dernier membre: Magicien

24 Mai 2012 à 18:03:08
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center] (Modérateurs: S!m, Xartrick)Problème boite de dialogue ! HELP
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Problème boite de dialogue ! HELP  (Lu 276 fois)
0 Membres et 2 Invités sur ce fil de discussion.
koukou777
Hors ligne Hors ligne

Petit nouveau
*

Messages: 23


« le: 14 Mars 2010 à 16:47:55 »

Bonjour,

J'ai un problème, j'ai fait une boite de dialogue, qui fait que quand ont donne une ammende, sa nous affiche dans une boite : Ammende : Vous avez reçu blablabla ..
Le problème, c'est que je n'arrive pas a faire a ce que quand ont appui sur le boutton "Accepter" Sa paye l'ammende, et quand ont appui sur le boutton "Refuser" Sa ne paye pas l'ammende.

En gros, mon seul soucis c'est que je n'arrive pas a scripter le "quand ont appui sur ce bouton, celà se passe)

Citation de: Boite de dialogue
                  format(string, sizeof(string), "* Officier %s vous a donner une ammende de $%d, raison: %s", sendername, moneys, (result));
                  ShowPlayerDialog(giveplayerid,8888,DIALOG_STYLE_MSGBOX,"Amende",string,"Accepter","Refuser");

J'ai une autre botie de dialogue pour le mot de passe, et il y a un :
Citation
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
Ou il y a toutes les réponses des dialogues !
Merci de m'aider.
Journalisée
Gzsume
« J'apprends donc je suis »
Hors ligne Hors ligne


Team NSG
GTAOnline Fan Boy
*

Messages: 2115


« Répondre #1 le: 14 Mars 2010 à 17:03:09 »

Public OnDialogResponse(playerid,dialogid,response,listitem,inputtext)
{
     if(dialogid==8888) {
          if(response) {
               // Si il clique sur le premier bouton
          }
          else {
               // Si il clique sur le second bouton
          }
     }
     return 1;
}
Journalisée



« Dans la vie, il faut savoir
transformer les citrons en limonade. »



koukou777
Hors ligne Hors ligne

Petit nouveau
*

Messages: 23


« Répondre #2 le: 14 Mars 2010 à 18:06:50 »

Merci, alors j'ai fait sa pour que sa accepte l'amende que le flic lui donne :

Citation
   if(dialogid==8888) {
      if(Accepter)
      {
         GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
         GetPlayerName(playerid, sendername, sizeof(sendername));
         ammendeOffer[giveplayerid] = playerid;
         ammendeMoney[giveplayerid] = moneys;
         SendClientMessage(playerid, COLOR_BLUE, "[Police] %$ a Accepter l'amende", giveplayer);
         SendClientMessage(giveplayerid, COLOR_BLUE, "[Police] %$ a Accepter l'amende", giveplayer);
          }
        else {
         SendClientMessage(playerid, COLOR_BLUE, "[Police] %$ a Refuser l'amende", giveplayer);
          }
     }
     return 1;

Ma commande de pv :
Citation
   if(strcmp(cmd, "/ammende", true) == 0 || strcmp(cmd, "/pv", true) == 0)
   {
       if(IsPlayerConnected(playerid))
       {
           if(gTeam[playerid] != 2)
         {
             SendClientMessage(playerid, COLOR_GREY, "   Vous n'êtes pas Flic!");
             return 1;
         }
           if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMembre] == 1)
         {
             SendClientMessage(playerid, COLOR_GREY, "   Vous n'êtes pas en service");
             return 1;
         }
          tmp = strtok(cmdtext, idx);
         if(!strlen(tmp))
         {
            SendClientMessage(playerid, COLOR_GRAD2, "[Utilisation:] /ammende [playerid/Prénom_Nom] [prix] [raison]");
            return 1;
         }
         giveplayerid = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
         if(!strlen(tmp))
         {
            SendClientMessage(playerid, COLOR_GRAD2, "[Utilisation:] /ammende [playerid/Prénom_Nom] [prix] [raison]");
            return 1;
         }
         moneys = strval(tmp);
         if(moneys < 1 || moneys > 99999) { SendClientMessage(playerid, COLOR_GREY, "   L'ammende doit être de 1 a 99999 !"); return 1; }
         if(IsPlayerConnected(giveplayerid))
         {
             if(giveplayerid != INVALID_PLAYER_ID)
             {
                 if (ProxDetectorS(8.0, playerid, giveplayerid))
               {
                   GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                  GetPlayerName(playerid, sendername, sizeof(sendername));
                  new length = strlen(cmdtext);
                  while ((idx < length) && (cmdtext[idx] <= ' '))
                  {
                     idx++;
                  }
                  new offset = idx;
                  new result[64];
                  while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                  {
                     result[idx - offset] = cmdtext[idx];
                     idx++;
                  }
                  result[idx - offset] = EOS;
                  if(!strlen(result))
                  {
                     SendClientMessage(playerid, COLOR_GRAD2, "[Utilisation:] /ammende [playerid/Prénom_Nom] [prix] [raison]");
                     return 1;
                  }
                  format(string, sizeof(string), "* Vous avez donner une ammende a %s de $%d, raison: %s", giveplayer, moneys, (result));
                  SendClientMessage(playerid, COLOR_WHITE, string);
                  format(string, sizeof(string), "* Officier %s vous a donner une ammende de $%d, raison: %s", sendername, moneys, (result));
                  ShowPlayerDialog(giveplayerid,8888,DIALOG_STYLE_MSGBOX,"Amende",string,"Accepter","Refuser");
                  ammendeOffer[giveplayerid] = playerid;
                  ammendeMoney[giveplayerid] = moneys;
                  return 1;
               }
               else
               {
                  SendClientMessage(playerid, COLOR_GREY, "   Le joueur n'est pas vers vous !");
                  return 1;
               }
            }
         }
         else
         {
             SendClientMessage(playerid, COLOR_GREY, "   Le joueur n'est pas en ligne !");
             return 1;
         }
      }
      return 1;
   }

Et les erreurs qui me met :
Citation
C:\Users\Killian\Desktop\Manhattan City\Millenium City\gamemodes\sfrp3.pwn(50713) : error 017: undefined symbol "Accepter"
C:\Users\Killian\Desktop\Manhattan City\Millenium City\gamemodes\sfrp3.pwn(50715) : error 017: undefined symbol "giveplayerid"
C:\Users\Killian\Desktop\Manhattan City\Millenium City\gamemodes\sfrp3.pwn(50715) : error 017: undefined symbol "giveplayer"
C:\Users\Killian\Desktop\Manhattan City\Millenium City\gamemodes\sfrp3.pwn(50715) : error 029: invalid expression, assumed zero
C:\Users\Killian\Desktop\Manhattan City\Millenium City\gamemodes\sfrp3.pwn(50715) : fatal error 107: too many error messages on one line

La ligne 50715 c'est elle :
Citation
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));

Je sais pas si ma métode est bonne pour que sa affiche la boite pour accepter/refuser de payer l'amende. Si ma métode n'est pas bonne, que dois-je faire ?
Je suis juste perdu sur se system de boite. C'est mon dernier soucis que je veut absolument.

Merci de m'aider.
Journalisée
Gzsume
« J'apprends donc je suis »
Hors ligne Hors ligne


Team NSG
GTAOnline Fan Boy
*

Messages: 2115


« Répondre #3 le: 14 Mars 2010 à 18:11:55 »

if(response) se traduit par "si le joueur presse le premier bouton de la boite de dialogue".
else se traduit par "si le joueur presse le second bouton de la boite de dialogue".
Autrement dit, pas besoin de mettre des if(Accepter), il faut juste que tu compare le premier bouton avec ce qu'il est censé faire.
Journalisée



« Dans la vie, il faut savoir
transformer les citrons en limonade. »



koukou777
Hors ligne Hors ligne

Petit nouveau
*

Messages: 23


« Répondre #4 le: 14 Mars 2010 à 18:14:45 »

Merci, mais il y a toujours ces erreurs : C:\Users\Killian\Desktop\Manhattan City\Millenium City\gamemodes\sfrp3.pwn(50715) : error 017: undefined symbol "giveplayerid"
C:\Users\Killian\Desktop\Manhattan City\Millenium City\gamemodes\sfrp3.pwn(50715) : error 017: undefined symbol "giveplayer"
C:\Users\Killian\Desktop\Manhattan City\Millenium City\gamemodes\sfrp3.pwn(50715) : error 029: invalid expression, assumed zero
C:\Users\Killian\Desktop\Manhattan City\Millenium City\gamemodes\sfrp3.pwn(50715) : fatal error 107: too many error messages on one line

Je n'arrive pas a inclure ce giveplayer.
Journalisée
BuBuNo
Radio Guingamp - Bien plus qu'une radio !
Hors ligne Hors ligne


GTAOnline Big Member
*

La radio bien plus qu'une passion !

Messages: 739


WWW
« Répondre #5 le: 14 Mars 2010 à 18:21:37 »

Merci, mais il y a toujours ces erreurs : C:\Users\Killian\Desktop\Manhattan City\Millenium City\gamemodes\sfrp3.pwn(50715) : error 017: undefined symbol "giveplayerid"
C:\Users\Killian\Desktop\Manhattan City\Millenium City\gamemodes\sfrp3.pwn(50715) : error 017: undefined symbol "giveplayer"

Clin d'oeil new giveplayer,giveplayerid;
Journalisée

ıllıllı вυвυησ ıllıllı

koukou777
Hors ligne Hors ligne

Petit nouveau
*

Messages: 23


« Répondre #6 le: 14 Mars 2010 à 19:07:31 »

Résolu, mais un autre problème survien !

Quand je fait /accepter ammende, l'amende ne se paye pas ! Enfin l'argent n'est retirer ni de la banque, ni de notre argent de poche !

Citation
         else if(strcmp(x_job,"ammende",true) == 0)
         {
             if(ammendeOffer[playerid] < 999)
             {
                 if(IsPlayerConnected(ammendeOffer[playerid]))
                 {
                     if (ProxDetectorS(5.0, playerid, ammendeOffer[playerid]))
                  {
                          GetPlayerName(ammendeOffer[playerid], giveplayer, sizeof(giveplayer));
                     GetPlayerName(playerid, sendername, sizeof(sendername));
                     format(string, sizeof(string), "* [POLICE] Vous payer l'ammende de $%d a l'officier %s.", ammendeMoney[playerid], giveplayer);
                     SendClientMessage(playerid, COLOR_WHITE, string);
                     format(string, sizeof(string), "* [POLICE] %s a accepter de payer l'ammende de $%d.", sendername, ammendeMoney[playerid]);
                     SendClientMessage(ammendeOffer[playerid], COLOR_WHITE, string);
                     SafeGivePlayerMoney(playerid, - ammendeMoney[playerid]);
                     SafeGivePlayerMoney(ammendeOffer[playerid], ammendeMoney[playerid]);
                     ammendeOffer[playerid] = 999;
                     ammendeMoney[playerid] = 0;
                     return 1;
                  }
                  else
                  {
                      SendClientMessage(playerid, COLOR_GREY, "   L'officier n'est pas vers vous!");
                      return 1;
                  }
                 }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "   Personne donner une ammende !");
                return 1;
            }
         }

Merci de l'aide futur
Journalisée
BuBuNo
Radio Guingamp - Bien plus qu'une radio !
Hors ligne Hors ligne


GTAOnline Big Member
*

La radio bien plus qu'une passion !

Messages: 739


WWW
« Répondre #7 le: 14 Mars 2010 à 20:22:26 »

Montre nous la fonction : SafeGivePlayerMoney
Journalisée

ıllıllı вυвυησ ıllıllı

Pages: [1]   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.176 secondes avec 21 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact