Portal SAMP
[Ajuda] Bug do Dinheiro - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Bug do Dinheiro (/showthread.php?tid=1517)



Bug do Dinheiro - nilat - 11/08/2021

Bom Dia, Tarde, ou Noite!
Qual o meio mais eficiente na questão de solucionar o bug do dinheiro negativo no samp? sem utilizar meios de conversão em ouro.


RE: Bug do Dinheiro - xbruno1000x - 11/08/2021

O ideal é adicionar verificações nos sistemas para o player nunca gastar o que não tem.

Ex:
Caso o player vá pagar algo de $25

if(GetPlayerMoney(playerid) < 25) return sendClientMessage(playerid, -1, "Você não tem dinheiro suficiente para isso");


RE: Bug do Dinheiro - nilat - 11/08/2021

(11/08/2021 11:16)xbruno1000x Escreveu: O ideal é adicionar verificações nos sistemas para o player nunca gastar o que não tem.

Ex:
Caso o player vá pagar algo de $25

if(GetPlayerMoney(playerid) < 25) return sendClientMessage(playerid, -1, "Você não tem dinheiro suficiente para isso");

Sim sim, mas o bug realmente ocorre quando o valor setado é muito alto, como 1kkk.
Exemplo: Ao setar ou sacar 1kkk em mãos em vez de ficar positivo, fica negativo.
Isso é relativamente um bug nativo do gta, pois muito servidores aderiram aos "ouros", quando você possuir 10kk em mãos, ele é convertido em 1 ouro.
Mas quase nenhum servidor tem mais esse sistema de ouros, aparentemente todos resolveram esse bug.


RE: Bug do Dinheiro - xbruno1000x - 11/08/2021

(11/08/2021 14:41)nilat Escreveu:
(11/08/2021 11:16)xbruno1000x Escreveu: O ideal é adicionar verificações nos sistemas para o player nunca gastar o que não tem.

Ex:
Caso o player vá pagar algo de $25

if(GetPlayerMoney(playerid) < 25) return sendClientMessage(playerid, -1, "Você não tem dinheiro suficiente para isso");

Sim sim, mas o bug realmente ocorre quando o valor setado é muito alto, como 1kkk.
Exemplo: Ao setar ou sacar 1kkk em mãos em vez de ficar positivo, fica negativo.
Isso é relativamente um bug nativo do gta, pois muito servidores aderiram aos "ouros", quando você possuir 10kk em mãos, ele é convertido em 1 ouro.
Mas quase nenhum servidor tem mais esse sistema de ouros, aparentemente todos resolveram esse bug.

Entendi. A economia de um servidor é bem importante, então certifique-se de não dar dinheiro demais para os players. Creio que esse código irá te ajudar.

Código:
stock XBGivePlayerMoney(playerid, value)
{
    if(GetPlayerMoney(playerid) + value <= 99999999)
    {
        Player[playerid][pDinheiro] += value;
        ResetPlayerMoney(playerid);
        GivePlayerMoney(playerid, Player[playerid][pDinheiro]);
    }else{
        Player[playerid][pDinheiro] = 99999999;
        ResetPlayerMoney(playerid);
        GivePlayerMoney(playerid, Player[playerid][pDinheiro]);
        SendClientMessage(playerid, -1, "Não é possível guardar mais dinheiro no seu bolso!");
    }
}

/*
Comentários:
99999999 é o valor máximo que um player pode obter.
GivePlayerMoney deve ser substituido por XBGivePlayerMoney.
A variável Player[playerid][pDinheiro] deve ser modificada para a sua variável de dinheiro.
*/