AJUDA sistema de banco em Dialog
#1

galera,baseando-me em um sistema de banco que nгo й em Dialog,fiz um em Dialog,funcionou tudo perfeitamente,porem tem um bug que funciona assim: o player vai sacar por exemplo ae ele coloca -(sim bolo de menos) antes do valor a ser sacado,ae o player pode por qualquer valor que o saldo dele acaba ficando positivo. Exemplo: um player tem 100 reais no banco,ae ele coloca pra sacar -16959596,o dinheiro dele no banco vira esses 16959596.

aqui esta o sacar:

pawn Код:
if(dialogid == sacar)
{
if(response == 1)
{
new string[256];
new Name[256];
new file[256];
GetPlayerName(playerid, Name, sizeof(Name));
format(file,sizeof(file),"contas/%s.ini",Name);
if(fexist(file))
{
pBankInfo[playerid][PLAYER_BALANCE] = dini_Int(file,"Balance");
}
new valor;
valor = strval(inputtext);
if(dini_Int(file, "Balance") > valor){
format(string, sizeof(string), "[BANCO] Vocк sacou a quantia de R$%d.", valor);
SendClientMessage(playerid, COLOR_PINK, string);
dini_IntSet(file, "Balance", dini_Int(file, "Balance")-valor);
GivePlayerMoney(playerid, valor);
return 1;
} else {
SendClientMessage(playerid, COLOR_PINK, "[BANCO] Vocк nгo tem todo este dinheiro.");
}
}
}
Serб que nгo tem como colocar algo que proнba que o player use simbolos/palavras e sу possa usar nъmeros? ou algo que tire esse bug? Se alguйm poder me ajudar agradeзo.
Reply
#2

Tenta o cуdigo abaixo, vai bloquear caso o jogador tente sacar valores negativos:
pawn Код:
if(dialogid == sacar)
{
if(response == 1)
{
new string[256];
new Name[256];
new file[256];
GetPlayerName(playerid, Name, sizeof(Name));
format(file,sizeof(file),"contas/%s.ini",Name);
if(fexist(file))
{
pBankInfo[playerid][PLAYER_BALANCE] = dini_Int(file,"Balance");
}
if (strfind(inputtext, "-") != -1) return SendClientMessage(playerid, COLOR_PINK, "[BANCO] Vocк nгo pode sacar valores negativos!");
new valor;
valor = strval(inputtext);
if(dini_Int(file, "Balance") > valor){
format(string, sizeof(string), "[BANCO] Vocк sacou a quantia de R$%d.", valor);
SendClientMessage(playerid, COLOR_PINK, string);
dini_IntSet(file, "Balance", dini_Int(file, "Balance")-valor);
GivePlayerMoney(playerid, valor);
return 1;
} else {
SendClientMessage(playerid, COLOR_PINK, "[BANCO] Vocк nгo tem todo este dinheiro.");
}
}
}
Reply
#3

porque nгo pega meu sistema de banco e bota Salvamento em dini no OnPlayerDisconnect e OnPlayerConnect ?
Reply
#4

Quote:
Originally Posted by Black Sσldiєя
Посмотреть сообщение
Tenta o cуdigo abaixo, vai bloquear caso o jogador tente sacar valores negativos:
pawn Код:
if(dialogid == sacar)
{
if(response == 1)
{
new string[256];
new Name[256];
new file[256];
GetPlayerName(playerid, Name, sizeof(Name));
format(file,sizeof(file),"contas/%s.ini",Name);
if(fexist(file))
{
pBankInfo[playerid][PLAYER_BALANCE] = dini_Int(file,"Balance");
}
if (strfind(inputtext, "-") != -1) return SendClientMessage(playerid, COLOR_PINK, "[BANCO] Vocк nгo pode sacar valores negativos!");
new valor;
valor = strval(inputtext);
if(dini_Int(file, "Balance") > valor){
format(string, sizeof(string), "[BANCO] Vocк sacou a quantia de R$%d.", valor);
SendClientMessage(playerid, COLOR_PINK, string);
dini_IntSet(file, "Balance", dini_Int(file, "Balance")-valor);
GivePlayerMoney(playerid, valor);
return 1;
} else {
SendClientMessage(playerid, COLOR_PINK, "[BANCO] Vocк nгo tem todo este dinheiro.");
}
}
}
Vlw amigгo,funcionou perfeitamente,coloquei o COD no depositar tambйm,vlw msm!
Reply
#5

bota isso no codigo

pawn Код:
new tmp[269];
if(strfind(tmp, "-", true) != -1)
{
SendClientMessage(playerid,0xFF0000AA,"(ERRO) Valor invбlido!");
return 1;
}
Reply
#6

Vlw a todos,e Gar eu nгo usei pq nгo procurei,agora que vi seu sistema
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)