Bonjour, j'ai voulu pousser un peu mon système de banque, en y ajoutant un système de carte bancaire.
Donc, lorsque le joueur arrive devant un distributeur, on lui demande de saisir son code dans une boite de dialogue.
Le problème est que dès qu'il saisit son code bancaire dans la boite de dialogue, lors de la validation, la boite disparait ... Et je ne vois pas pourquoi.
La commande /retirer :
if(strcmp(cmd, "/retirer", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(IsADistrib(playerid))
{
format(string,256, "Charngement des données de la banque ...\n\nVeuillez saisir votre code bancaire :",sendername);
ShowPlayerDialog(playerid, DIALOGUE_BANQUE_NCB, DIALOG_STYLE_INPUT, "Distributeur",string,"Valider","Annuler");
return 1;
}
else
{
SendClientMessage(playerid,COLOR_ERREUR,"[Erreur]: Vous n'êtes pas à la banque ou dans un distributeur.");
return 1;
}
}
return 1;
}
Ensuite dans OnDialogResponse :
if(dialogid == DIALOGUE_BANQUE_NCB)
{
if(response != 1)
{
return 1;
}
new code = strval(tmp);
if(code == PlayerInfo[playerid][pNBancaire])
{
ShowPlayerDialog(playerid,112,DIALOG_STYLE_INPUT,"Indiquez le montant que vous désirez :",string,"Valider","Annuler");
return 1;
}
else
{
ShowPlayerDialog(playerid,DIALOGUE_BANQUE_NCB,DIALOG_STYLE_INPUT,"Erreur \nVotre code bancaire est incorrect.\nVeuillez réessayer s'il vous plaît. ",string,"Valider","Annuler");
gPlayerCodeCB[playerid] += 1;
if(gPlayerCodeCB[playerid] == 3)
{
PlayerInfo[playerid][pCBancaire] = 0;
GameTextForPlayer(playerid,"~r~Carte avaler",10000,5);
gPlayerCodeCB[playerid] = 0;
PlayerInfo[playerid][pNBancaire] = 0;
return 1;
}
}
}
if(dialogid == 112)
{
if(response == 1)
{
tmp = strtok(inputtext,idx);
if(!strlen(tmp))
{
ShowPlayerDialog(playerid,112,DIALOG_STYLE_INPUT,"Indiquez le montant que vous désirez retirer :",string,"Retirer","Annuler");
return 1;
}
new somme = strval(tmp);
if (somme > PlayerInfo[playerid][pAccount] || somme < 1)
{
format(string,256,"Vous n'avez pas autant d'argent %s \nVous désirez retirer combien ?",sendername);
ShowPlayerDialog(playerid,112,DIALOG_STYLE_INPUT,"Distributeur",string,"Retirer","Annuler");
return 1;
}
format(string, sizeof(string), "[Banque]: Vous avez retirer %d$.", somme);
SendClientMessage(playerid, COLOR_BANQUE, string);
GivePlayerMoney(playerid, somme);
PlayerInfo[playerid][pAccount] -= somme;
}
else
{
SendClientMessage(playerid, COLOR_ERREUR, "[Erreur]: Vous avez annulé, vous êtes kické automatiquement.");
return 1;
}
}
Merci d'avance de votre aide..
Cordialement,
DexX