Portal SAMP
[Ajuda] Ant-Cheat - 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] Ant-Cheat (/showthread.php?tid=3302)



Ant-Cheat - AcerRLK - 06/02/2023

Ola, Estou com um poblema no meu Ant-Cheat de Speed/Sur-Fly

        Caso o jogador ande muito rapido ou voe ele sera kickado do servido
    so que acontece um poblema caso o jogador cai de algum predio ou pule do heli/aviao

 de alguma altura alta e venha cai em alguma velocidade rapida o player e kickado


Teria alguma funcao para verificar se o player ta caindo do ceu sim/nao ?. 
  Meu codigo abaixo.
Código:
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)            
{
             if(!IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) != 9)
             {
                  if(SpeedVehicle(playerid) / 2 > 40)
                 {

                    MEGAString[0] = EOS;
                    new String[300];
                    strcat(MEGAString,"{ffffff}- {a11412}Atencao{ffffff} !\n\n");
                    strcat(MEGAString,"{ffffff}- Voce foi desconetado automaticamente por suspeta de uso de programas ilegais.\n");
                    strcat(MEGAString,"{ffffff}- Caso tenha sido um {a11412}erro{ffffff} entre em contato com algum {FF1493}Administrador{ffffff} em nosso {6658c7}Discord{ffffff}.\n\n");
                    format(String,sizeof(String),"{ffffff}- {7d6507}Nome {094e94}:{ffffff} %s\n{ffffff}- {7d6507}Suspeita {094e94}:{ffffff} %s\n{ffffff}- {7d6507}Data {094e94}:{ffffff} %02d{094e94}/{ffffff}%02d{094e94}/{ffffff}%04d as %02d{094e94}:{ffffff}%02d{094e94}:{ffffff}%02d \n",PlayerName(playerid),/*GetTipoKick(playerid,1)*/"Teste",Dia,Mes,Ano,Hora,Minuto,Segundo);
                    strcat(MEGAString,String);
                    ShowPlayerDialog(playerid,9999,DIALOG_STYLE_MSGBOX, "{ffffff}! {626163}Anti-Cheat {ffffff}*_*", MEGAString,"OK","");
                   Kick(playerid);
                    return 1;
                   }
              }
           }
stock SpeedVehicle(playerid)
{
    new Float:ST[4];
    if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
    else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
    ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 213.3;
    return floatround(ST[3]);
}



RE: Ant-Cheat - xbruno1000x - 06/02/2023

Você pode usar o MapAndreas para detectar se o player está fora do chão ou até caindo. Lá tem uma função FindZ, que encontra a coordenada do chão.


RE: Ant-Cheat - Dr Editor - 07/02/2023

Uma forma para se esquivar desse problema é analisar o espaço 2D e não o 3D, como normalmente é verificado.
Se tiver um bom entendimento de programação você consegue conciliar ambas formas, caso contrário verificando apenas o 2D você já consegue um bom resultado.
Faça o cálculo apenas com as posições X e Y.


RE: Ant-Cheat - AcerRLK - 07/02/2023

(06/02/2023 23:42)xbruno1000x Escreveu: Você pode usar o MapAndreas para detectar se o player está fora do chão ou até caindo. Lá tem uma função FindZ, que encontra a coordenada do chão.

Ok,Baixei e Instalei a include e coloquei, como eu poderia fazer essa verificaçao Pode me Dizer ultilizando o codigo que eu postei. Por favor,Obrigado !!!


(07/02/2023 09:44)Dr Editor Escreveu: Uma forma para se esquivar desse problema é analisar o espaço 2D e não o 3D, como normalmente é verificado.
Se tiver um bom entendimento de programação você consegue conciliar ambas formas, caso contrário verificando apenas o 2D você já consegue um bom resultado.
Faça o cálculo apenas com as posições X e Y.

Entendendo em algumas outras areas, sobre pawno. Nem imagino como eu posso fazer dessa forma !.


"Entendendo [...]" Tou aprendendo ainda me considero (Experiente) , so que tem coisas que eu nao sei!

Sera que se eu colocar assim pode dar certo:

if(SpeedVehicle(playerid) / 2 > 40 && GetPlayerAnimationIndex(playerid) != 1130)