Portal SAMP
[Ajuda] Problema com o hacker (double damage) - 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] Problema com o hacker (double damage) (/showthread.php?tid=1905)



Problema com o hacker (double damage) - Celudo - 07/12/2021

Boa tarde!

Estou tendo vários problemas com o hacker de multiplicar o dano das armas.
Utilizo o weapon config e mesmo assim os infratores conseguem burlar.

Na info do player quando o administrador está de espectador, aparece que sai apenas uma bala, mas com o dano 2x maior, trazendo uma grande benefício.

Alguém sabe como posso detecta-lo?


RE: Problema com o hacker (double damage) - xbruno1000x - 07/12/2021

Para detectar se alguém deu o dobro de dano com uma arma basta usar a função GetWeaponDamage(weaponid) multiplicado por 2 e comparar com do dano que o player deu.


RE: Problema com o hacker (double damage) - Celudo - 07/12/2021

(07/12/2021 19:40)xbruno1000x Escreveu: Para detectar se alguém deu o dobro de dano com uma arma basta usar a função GetWeaponDamage(weaponid) multiplicado por 2 e comparar com do dano que o player deu.

Há algum exemplo de como posso fazer isso?

No weapon-config obtenho o seguite:
Código:
stock Float:GetWeaponDamage(weaponid)
{
    if (weaponid < WEAPON_UNARMED || weaponid >= sizeof(s_WeaponDamage)) {
        return 0.0;
    }

    return s_WeaponDamage[weaponid];
}



RE: Problema com o hacker (double damage) - xbruno1000x - 08/12/2021

(07/12/2021 20:23)Celudo Escreveu:
(07/12/2021 19:40)xbruno1000x Escreveu: Para detectar se alguém deu o dobro de dano com uma arma basta usar a função GetWeaponDamage(weaponid) multiplicado por 2 e comparar com do dano que o player deu.

Há algum exemplo de como posso fazer isso?

No weapon-config obtenho o seguite:
Código:
stock Float:GetWeaponDamage(weaponid)
{
    if (weaponid < WEAPON_UNARMED || weaponid >= sizeof(s_WeaponDamage)) {
        return 0.0;
    }

    return s_WeaponDamage[weaponid];
}

Eu sei que você tem essa stock, ela é nativa da Weapon config.

Faça tipo isso:
Código:
//Na OnPlayerDamage
if(GetWeaponDamage(GetPlayerWeapon(playerid)) != amount)
    Ban(playerid);
Não sei se esse código irá funcionar, mas a lógica é essa.