Portal SAMP
[Ajuda] Preciso De Ajuda Com GivePlayerMoney - 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] Preciso De Ajuda Com GivePlayerMoney (/showthread.php?tid=2942)



Preciso De Ajuda Com GivePlayerMoney - BrunoHenriqueC - 30/10/2022

Rapaziada, a um tempo to sofrendo que meu servidor não esta deixando eu setar/retirar dinheiro a partir de um fs

EX: na gm eu posso seta/retirar
No Fs Eu Não Consigo quando eu boto o /teste

CMD:teste(playerid)
{
GivePlayerMoney(playerid, 20000);
return 1;
}
CMD:teste2(playerid)
{
GivePlayerMoney(playerid, -10000);
return 1;
}

nenhum dos dois funciona, ambos adciona dps volta ao normal (ELE ADCIONA E RETIRA NA HORA) (OU ELE RETIRA E RE-COLOCA NA HORA)

PFVR ME AJUDEM

to achando que é a include foreach mas to em duvida, pode ser ela?


RE: Preciso De Ajuda Com GivePlayerMoney - xbruno1000x - 30/10/2022

Provavelmente tem algum anti-hack de dinheiro. Eles tornam o dinheiro server-side para que o player não possa usar mods cleo de dinheiro.


RE: Preciso De Ajuda Com GivePlayerMoney - White_Blue - 30/10/2022

Sua gamemode não tem algum anti-money hack? Procure, caso tiver aí pode estar o problema.


RE: Preciso De Ajuda Com GivePlayerMoney - Carlos Victor - 30/10/2022

Provavelmente seja um anti-money hack. O que você pode fazer? Procura pela variável onde fica armazenada o dinheiro, geralmente é: pMoney, money, pDinheiro, pGrana... e manipula ela. Evite usar o money do jogo, é possivel injetar valores nele

Código:
//Exemplo:
new playerMoney[MAX_PLAYERS];

GivePlayerMoneyEx(playerid, money)
{
    playerMoney[playerid] += money;

    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid, playerMoney[playerid]);
    return 1;
}



RE: Preciso De Ajuda Com GivePlayerMoney - BrunoHenriqueC - 30/10/2022

Vou Ver E Ja Volto, Desde-ja Agradeço


RE: Preciso De Ajuda Com GivePlayerMoney - BrunoHenriqueC - 31/10/2022

Ja Vi De Tudo E Nada Resolvido ainda, parece q o samp ta bloquando as filterscripts de dar dinheiro

Acho que resolvi, desculpem eu n tinha visto uma include que bloqueava os GivePlayerMoney Fora Da Gm, Um Ant-Cheater Bugado, Agora Que eu tirei esse ant-cheat oque eu faço e como arrumo um ant-cheat bom?


RE: Preciso De Ajuda Com GivePlayerMoney - Carlos Victor - 01/11/2022

Eu acho que quando falamos sobre dinheiro, a solução mais viável e que quase todos usam é manipulação de uma variável, isso já resolve qualquer tipo de money-hack, o dinheiro do jogo só deve ser usado visualmente mesmo.


RE: Preciso De Ajuda Com GivePlayerMoney - White_Blue - 01/11/2022

É só criar uma variável que armazene o dinheiro do player e criar uma callback que seja chamada de tempo em tempo ou usar a OnPlayerUpdate e verificar se o dinheiro é igual o valor armazenado na variável.

A princípio, eu faria assim:
Código PHP:
public OnPlayerConnect(playerid) {
     
SetPVarInt(playerid"MoneyUp"SetTimerEx("OnPlayerMoneyUpdate"5000true"i"playerid)); // Chama a callback OnPlayerMoneyUpdate a cada 5s a partir de quando o player conecta.
     
return 1;
}

public 
OnPlayerDisconnect(playeridreason) {
      if(
GetPVarInt(playerid"MoneyUp")) KillTimer(GetPVarInt(playerid"MoneyUp"));
      return 
1;
}

forward OnPlayerMoneyUpdate(i);
public 
OnPlayerMoneyUpdade(i) {
       if(
GetPlayerMoney(i) != GetPVarInt(i"dinheiro")) ResetPlayerMoney(i), GivePlayerMoney(iGetPVarInt(i"dinheiro"));
       return 
1;
}

stock GetPlayerMoneyEx(playerid) return GetPVarInt(playerid"dinheiro"); // Utilize esta stock ao invés da função GetPlayerMoney.
stock GivePlayerMoneyEx(playeridvalue) return GivePlayerMoney(playeridvalue), SetPVarInt(playerid"dinheiro"GetPlayerMoney(playerid)); // Utilize esta stock ao invés da função GivePlayerMoney.