Portal SAMP
[Ajuda] dinheiro negativo no pix - 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] dinheiro negativo no pix (/showthread.php?tid=4640)



dinheiro negativo no pix - fear - 20/03/2024

Boa noite. estou com um problema no meu sistema de /pix id valor

ele ta deixando eu transferir o pix mesmo que eu não tenha o valor digitado.. e assim vai ficando negativo a conta do player e transferindo para outro player.. tem como bloquear caso ele não tenha o valor na conta disponivel assim não deixando negativado..??

Código PHP:
CMD:pix(playerid,params[])
{
    new 
idquantia;
    if(
sscanf(params"ud"idquantia))return SendClientMessage(playeridVermelho"[ ERRO ] Digite: /Pix [id ou Nick][quantia]");
    if(
GetDistanceBetweenPlayers(playeridstrval(params) ) > 2.0)return SendClientMessage(playerid,Vermelho,"[ ERRO ] O player deve estar proximo de voce!");
    if(
quantia || quantia 5000) return SendClientMessage(playerid, -1"[ ERRO ] Valor maximo de  {E84F33}R$5000 e mínimo de {E84F33}R$ 1");
    if(
id == playerid)return SendClientMessage(playeridVermelho"[ ERRO ] Voce nao pode dar Dinheiro para si mesmo!");
    if(!
IsPlayerConnected(id))return SendClientMessage(playerid,Vermelho,"[ ERRO ] Player nao Conectado!");

      
GivePlayerMoney(idquantia);
    
GivePlayerMoneyEx(playerid, -quantia);
  

    
SendClientMessage(playerid,Amarelo,"( PIX ) Você deu ao %s[%d] %s em Dinheiro!",pName[id],id,formatReal(quantia));
    
SendClientMessage(id,Amarelo,"( PIX ) %s[%d] te deu %s em Dinheiro!",pName[playerid],playerid,formatReal(quantia));
    return 
1;




RE: dinheiro negativo no pix - White_Blue - 20/03/2024

Basta verificar se o jogador tem ou não o dinheiro antes de enviar.

Código PHP:
if(GetPlayerMoney(playerid) < quantia) return SendClientMessage(playerid, -1"Você não tem esse dinheiro"); 



RE: dinheiro negativo no pix - Calasans - 21/03/2024

(20/03/2024 21:04)fear Escreveu: Boa noite. estou com um problema no meu sistema de /pix id valor

ele ta deixando eu transferir o pix mesmo que eu não tenha o valor digitado.. e assim vai ficando negativo a conta do player e transferindo para outro player.. tem como bloquear caso ele não tenha o valor na conta disponivel assim não deixando negativado..??

Código PHP:
CMD:pix(playerid,params[])
{
    new 
idquantia;
    if(
sscanf(params"ud"idquantia))return SendClientMessage(playeridVermelho"[ ERRO ] Digite: /Pix [id ou Nick][quantia]");
    if(
GetDistanceBetweenPlayers(playeridstrval(params) ) > 2.0)return SendClientMessage(playerid,Vermelho,"[ ERRO ] O player deve estar proximo de voce!");
    if(
quantia || quantia 5000) return SendClientMessage(playerid, -1"[ ERRO ] Valor maximo de  {E84F33}R$5000 e mínimo de {E84F33}R$ 1");
    if(
id == playerid)return SendClientMessage(playeridVermelho"[ ERRO ] Voce nao pode dar Dinheiro para si mesmo!");
    if(!
IsPlayerConnected(id))return SendClientMessage(playerid,Vermelho,"[ ERRO ] Player nao Conectado!");

      GivePlayerMoney(idquantia);
    GivePlayerMoneyEx(playerid, -quantia);
  

    SendClientMessage
(playerid,Amarelo,"( PIX ) Você deu ao %s[%d] %s em Dinheiro!",pName[id],id,formatReal(quantia));
    
SendClientMessage(id,Amarelo,"( PIX ) %s[%d] te deu %s em Dinheiro!",pName[playerid],playerid,formatReal(quantia));
    return 
1;


Aqui:
Código PHP:
CMD:pix(playerid,params[])
{
    new idquantia;
    //
    if(sscanf(params"ud"idquantia))
        return SendClientMessage(playeridVermelho"[ ERRO ] Digite: /Pix [id ou Nick][quantia]");
    //
    if(GetDistanceBetweenPlayers(playeridstrval(params) ) > 2.0)
        return SendClientMessage(playerid,Vermelho,"[ ERRO ] O player deve estar proximo de voce!");
    //
    if(quantia || quantia 5000)
        return SendClientMessage(playerid, -1"[ ERRO ] Valor maximo de  {E84F33}R$5000 e mínimo de {E84F33}R$ 1");
    //
    if(GetPlayerMoney(playerid) < quantia)
        return SendClientMessage(playerid, -1, "Você não tem dinheiro");
    //
    if(id == playerid)
        return SendClientMessage(playeridVermelho"[ ERRO ] Voce nao pode dar Dinheiro para si mesmo!");
    //
    if(!IsPlayerConnected(id))
        return SendClientMessage(playerid,Vermelho,"[ ERRO ] Player nao Conectado!");
    //
    GivePlayerMoney(idquantia);
    GivePlayerMoneyEx(playerid, -quantia);
    //
    SendClientMessage(playerid,Amarelo,"( PIX ) Você deu ao %s[%d] %s em Dinheiro!",pName[id],id,formatReal(quantia));
    SendClientMessage(id,Amarelo,"( PIX ) %s[%d] te deu %s em Dinheiro!",pName[playerid],playerid,formatReal(quantia));
    //
    return 1;


Essa últimas SendClientMessage, é provável que não funcione, já que não estão formatadas, a não ser que você tenha uma macro sobre elas ou, está usando uma biblioteca que possibilita isso.

Não "Funcionar", me refiro a mensagem não sair correta.


RE: dinheiro negativo no pix - pushline - 22/03/2024

"Essa últimas SendClientMessage, é provável que não funcione, já que não estão formatadas, a não ser que você tenha uma macro sobre elas ou, está usando uma biblioteca que possibilita isso."

Se ele está usando open.mp irá funcionar.
Aproveite e mude de "u" no sscanf pra "r", já que o argumento "u" possibilita mandar para npcs.

Aliás, segue codigo editado por que vi um GetDistanceBetweenPoints errado.

Código PHP:
CMD:pix(playerid,params[])
{
    new 
idquantia;
    if(
sscanf(params"ud"idquantia))
        return 
SendClientMessage(playeridVermelho"[ ERRO ] Digite: /Pix [id ou Nick][quantia]");

     if(
id == playerid)
        return 
SendClientMessage(playeridVermelho"[ ERRO ] Voce nao pode dar Dinheiro para si mesmo!");

    if(!
IsPlayerConnected(id))
        return 
SendClientMessage(playerid,Vermelho,"[ ERRO ] Player nao Conectado!");

    if(
GetDistanceBetweenPlayers(playeridid ) > 2.0)
        return 
SendClientMessage(playerid,Vermelho,"[ ERRO ] O player deve estar proximo de voce!");

    if(
quantia || quantia 5000)
        return 
SendClientMessage(playerid, -1"[ ERRO ] Valor maximo de  {E84F33}R$5000 e mínimo de {E84F33}R$ 1");

    if(
GetPlayerMoney(playerid) < quantia)
        return 
SendClientMessage(playerid, -1"Você não tem dinheiro");
   
    
GivePlayerMoney(idquantia);
    
GivePlayerMoneyEx(playerid, -quantia);

    
SendClientMessage(playeridAmarelo"( PIX ) Você deu ao %s[%d] %s em Dinheiro!"pName[id], idformatReal(quantia));
    
SendClientMessage(idAmarelo"( PIX ) %s[%d] te deu %s em Dinheiro!"pName[playerid], playeridformatReal(quantia));

    return 
1;




RE: dinheiro negativo no pix - fear - 24/03/2024

(20/03/2024 21:49)White_Blue Escreveu: Basta verificar se o jogador tem ou não o dinheiro antes de enviar.

Código PHP:
if(GetPlayerMoney(playerid) < quantia) return SendClientMessage(playerid, -1"Você não tem esse dinheiro"); 

Obrigado. era isso mesmo!