[BUG]Banco /sacar
#1

Boa noite pessoal, estou aqui pois estou com um problema. Utilizo o GameMode do Muca(RPG) do qual encontrei um bug que nгo consegui solucionar. Qualquer um que chega no banco e digita: /sacar -99999999 ganha saldo e depois saca e ganha muito dinheiro. Abaixo segue o sistema de sacar:
Quote:

if(strcmp(cmd, "/sacar", true) == 0) {
format(file, sizeof(file), PASTA_CONTAS, PlayerName(playerid));
new checknome;
new tmp[256];
checknome = CPS_GetPlayerCheckpoint(playerid);
if(checknome == caixaeletronico1 || checknome == caixaeletronico2 || checknome == caixaeletronico3 || checknome == caixaeletronico4 || checknome == caixaeletronico5 || checknome == caixaeletronico6 || checknome == caixaeletronico7 || checknome == caixaeletronico8
|| checknome == bancoPref){
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Vermelho, "Use /sacar [quantia].");
}
new valor;
valor = strval(tmp);
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
if(dini_Int(file, "ContaBancaria") == 1){
if(dini_Int(file, "SaldoBancario") > valor-1){
format(string, sizeof(string), "(INFO) Bancos new world: Vocк sacou a quantia de R$%d.", valor);
SendClientMessage(playerid, Verde, string);
dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario")-valor);
GivePlayerGrana(playerid, valor);
return 1;
} else {
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem todo este dinheiro.");
}

} else {
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem uma conta bancбria.");
}
} else {
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo estб em um Banco.");
}
}

Reply
#2

Acho que isso resolve se nгo funcionar й so falar

pawn Код:
if(strcmp(cmd, "/sacar", true) == 0) {
format(file, sizeof(file), PASTA_CONTAS, PlayerName(playerid));
new checknome;
new tmp[256];
checknome = CPS_GetPlayerCheckpoint(playerid);
if(checknome == caixaeletronico1 || checknome == caixaeletronico2 || checknome == caixaeletronico3 || checknome == caixaeletronico4 || checknome == caixaeletronico5 || checknome == caixaeletronico6 || checknome == caixaeletronico7 || checknome == caixaeletronico8
|| checknome == bancoPref){
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Vermelho, "Use /sacar [quantia].");
return 1;
}
new valor;
if(strfind(tmp, "-", true) != -1) // isso nгo deixa usar o -
{
SendClientMessage(playerid,Vermelho,"(ERRO) Valor invбlido!");
return 1;
}
if(strlen(tmp) > 8) // e aqui bloqueia o uso de mais de 8 nъmeros
{
SendClientMessage(playerid, Vermelho, "(ERRO) Valor invбlido!");
return 1;
}
valor = strval(tmp);
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
if(dini_Int(file, "ContaBancaria") == 1){
if(dini_Int(file, "SaldoBancario") > valor-1){
format(string, sizeof(string), "(INFO) Bancos new world: Vocк sacou a quantia de R$%d.", valor);
SendClientMessage(playerid, Verde, string);
dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario")-valor);
GivePlayerGrana(playerid, valor);
return 1;
} else {
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem todo este dinheiro.");
}

} else {
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem uma conta bancбria.");
}
} else {
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo estб em um Banco.");
}
}
Espero ter ajudado!
Reply
#3

Muito obrigada, realmente ficou perfeito agora.
Problema resolvido. Poderia me dizer exatamente onde estava o problema ? E porquк eles conseguiam sacar usando /sacar -99999 ? Assim vou aprender mais e mais ^^"
Reply
#4

Esta variбvel й usada para pegar algum texto,valor ou caractere digitado,no caso foi colocado um != Pra quando for diferente nгo tirar saldo negativo do banco
pawn Код:
if(strfind(tmp, "-", true) != -1)
{
SendClientMessage(playerid,Vermelho,"(ERRO) Valor invбlido!");
return 1;
}

Esta variбvel limita o nъmero de caracteres

pawn Код:
if(strlen(tmp) > 8)
{
SendClientMessage(playerid, Vermelho, "(ERRO) Valor invбlido!");
return 1;
}
Reply
#5

Й isso ae exatamente oque o Lucas falou.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)