11/08/2021 21:23
(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.
*/
Discente de Sistemas de Informação no Centro Federal de Ensino Tecnológico(CEFET/RJ)
Programador SA-MP desde 2012
Programador SA-MP desde 2012
Não envie dúvidas por inbox, crie um tópico. Sua dúvida pode ser a dúvida de outro alguém, e seu tópico ajudará outras pessoas no futuro.