• 08 Juillet 2025, 13:52:20


Auteur Sujet: Problème boite de dialogue ! HELP  (Lu 1222 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne koukou777

  • *
  • Nouveau
  • Messages: 23
    • Voir le profil
Problème boite de dialogue ! HELP
« 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 :
Citer
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
Ou il y a toutes les réponses des dialogues !
Merci de m'aider.

Hors ligne koukou777

  • *
  • Nouveau
  • Messages: 23
    • Voir le profil
Re : Problème boite de dialogue ! HELP
« Réponse #1 le: 14 Mars 2010, 18:06:50 »
Merci, alors j'ai fait sa pour que sa accepte l'amende que le flic lui donne :

Citer
   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 :
Citer
   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 :
Citer
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 :
Citer
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.

Hors ligne koukou777

  • *
  • Nouveau
  • Messages: 23
    • Voir le profil
Re : Problème boite de dialogue ! HELP
« Réponse #2 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.

Hors ligne BuBuNo

  • Radio Guingamp - Bien plus qu'une radio !
  • *
  • Grand Banditisme
  • La radio bien plus qu'une passion !
  • Messages: 840
    • Voir le profil
    • Radio Guingamp - Bien plus qu'une radio !
Re : Re : Problème boite de dialogue ! HELP
« Réponse #3 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"

;) new giveplayer,giveplayerid;
ıllıllı вυвυησ ıllıllı


Hors ligne koukou777

  • *
  • Nouveau
  • Messages: 23
    • Voir le profil
Re : Problème boite de dialogue ! HELP
« Réponse #4 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 !

Citer
         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

Hors ligne BuBuNo

  • Radio Guingamp - Bien plus qu'une radio !
  • *
  • Grand Banditisme
  • La radio bien plus qu'une passion !
  • Messages: 840
    • Voir le profil
    • Radio Guingamp - Bien plus qu'une radio !
Re : Problème boite de dialogue ! HELP
« Réponse #5 le: 14 Mars 2010, 20:22:26 »
Montre nous la fonction : SafeGivePlayerMoney
ıllıllı вυвυησ ıllıllı