26/04/2025 10:46
(Esta mensagem foi modificada pela última vez a: 23/08/2025 22:32 por Dr Editor.)
![[Imagem: Sem-titulo-2.png]](https://i.ibb.co/Kc0XnPRR/Sem-titulo-2.png)
EVO Anti-Cheat v2.3.3 [SA:MP/Open.MP]
Sobre:
Trata-se de um novo anti-cheat server-side desenvolvido para OpenMP e agora com suporte para SA:MP, cujo objetivo é ter segurança e controle absoluto sobre a data (info) do jogador.
Atualmente está em constante desenvolvimento, tendo ainda algumas incoerências em certas situações, porém já possui mais de 50 de detecções e atualmente está sendo utilizado firmemente em servidores tendo ótimo feedback
por parte da gestão dos projetos que o utilizam.
Configuração de detecção:
Por se tratar de um anti-cheat de codigo fonte fechado, possui um arquivo de configuração externo que pode ser recarregado a qualquer momento.
O arquivo de configuração possui atualmente pouco mais de 200 entradas de configuração, onde é possível parametrizar exatamente como deve ser feito a detecção de cada cheat que permita uma configuração externa.
Abaixo consta algumas das entradas de configuração para melhor entendimento:
Código:
cbug_speed_limit=
cbug_alert_count=
auto_cbug_speed_limit=
auto_cbug_alert_count=
armour_delay_check=
armour_alert_count=
health_delay_check=
health_alert_count=
driveby_delay_check=
fakekill_kill_flood_sequence_time=
fakekill_death_flood_sequence_time=
fakekill_kill_flood_alert_count=
fakekill_death_flood_alert_count=
fastrun_distance=
fastrun_distance_alert_count=
incoming_connection_alert_count=
incoming_connection_sequence_delay=
interior_delay_check=
interior_alert_count=
virtual_world_delay_check=
virtual_world_alert_count=
special_action_delay_check=
money_delay_check=
Segurança:
Qualquer informação no SA:MP pode ser facilmente manipulada, o que bagunça toda uma economia e a gameplay dos demais.
Atualmente, com o uso deste anti-cheat, é possível resgatar informações corretas da data de jogadores que utilizam cheat para manipulá-las como vida, colete, armas, munição, objetos atacados etc, de forma que mesmo manipulando
as informações, não seja possível mantê-las durante o salvamento dos dados, criando assim uma camada extra de validação nas informações e garantindo a proteção dos dados de cada jogador contra qualquer tipo de alteração externa.
Controle de configuração:
- Defina em que momento o anti-cheat deve iniciar para determinado jogador
- Defina em que momento o anti-cheat deve parar para determinado jogador
- Defina em que momento o anti-cheat deve pausar ou retomar a verificação de um cheat específico para determinado jogador
- Altere e recarregue as configurações do anti-cheat a qualquer momento sem necessidade de reiniciar o servidor ou recarregar o filterscript
Compatibilidade de SO:
Todas as dependências do anti-cheat podem ser obtidas tanto para Linux quanto para Windows.
O anti-cheat é um filterscript, então pode ser facilmente implementado como qualquer outro script externo.
Compatibilidade de modo de jogo:
Por se tratar de um anti-cheat robusto e com dezenas de detecções, foi criado uma configuração externa para ajustar as detecções conforme o modo de jogo ou gosto.
Em um servidor roleplay, por exemplo, as detecções podem ser mais sensíveis, enquanto para um PvP é necessário tornar menos sensível detecções relacionadas à armas ou race menos sensível detecções para veículos.
Você configura completamente cada detecção como preferir.
Abordagem de detecção:
O servidor é totalmente independente para decidir o que fazer sobre a detecção.
Para isto, é fornecido uma biblioteca (evo_ac.inc) contendo todas as informações necessárias para aplicar as punições e configurações.
Diferente da maioria dos anti-cheats, este gera uma chamada individual na respectiva callback informando maiores detalhes sobre a detecção.
Algumas callbacks:
Código:
AC_OnInvalidCameraCrasher(playerid, cam_mode)
AC_OnPlayerAmmo(playerid, old_ammo, new_ammo, weaponid)
AC_OnPlayerArmour(playerid, Float:old_armour, Float:new_armour)
AC_OnPlayerCBug(playerid, speed)
AC_OnPlayerAutoCBug(playerid, speed)
AC_OnPlayerCheckpoint(playerid)
AC_OnPlayerDamageFlood(playerid, damagedid, weaponid, damage_count)
Controle de dano:
Com o controle de dano do Evo Anti-Cheat, mesmo usando cheat, a vida do jogador diminui e caso não diminua (através de bloqueios de RPC) não há problema, pois a vida e colete do jogador é trabalhada de forma unilateral, ou seja, a vida e colete do cliente (jogador) é só mais uma informação visual assim como o dinheiro. Então, por exemplo, se o jogador estiver com vida zerada no servidor, porém na tela dele a vida estiver cheia em decorrência do bloqueio de RPC, será considerado cheat e chamará as funções respectivas ao cheat.
Também é possível configurar o dano em diferentes situações:
- Partes do corpo
- Para danos personalizados em 7 regiões do corpo
- Alcance
- Bloqueia automaticamente disparos realizados fora do alcance definido
- Bloqueio de dano em partes do corpo
- Para bloqueios de dano personalizados em 7 regiões do corpo
- Permissão/bloqueio para dar/receber dano
- Para permitir e/ou bloquear dano dado ou recebido para jogadores
Proteções (até o momento):
- Vida
- Colete
- Skin
- Objetos atacados
- Vida de veículo
- Arma
- Munição
- Distância de dano controlado (não manipulável)
- Quantidade de dano controlado (não manipulável)
Detecções (até o momento):
- Armour
- C-Bug
- Auto C-Bug
- Car Fly
- Dialog Spoof
- Drive-By
- Fake Kill/Death (flood)
- Fast Run
- GodMode
- Health
- Connection Flood
- Interior
- Special Action (All)
- Money
- Multi Connection
- No Fall Damage
- Ping
- Player Checkpoint
- Player Position (Fly, Airbreak, Teleport)
- Race Checkpoint
- Skin
- Vehicle Fast Enter/Exit
- Vehicle Health
- Vehicle Mod (Invalid, Cheat)
- Vehicle Speed
- Virtual World
- Weapon (Forbbiden, Invalid, Cheat)
- Ammo (Infinite, Invalid, Cheat)
- Rapid Fire
- Free Cam
- Player Velocity (troll)
- Vehicle Velocity (troll)
- Fake AFK
- Fake Lag
- Invisible
- Damage (Invalid, Flood)
- Silent Aim
- Pro Aim
- Quick Vehicle Change (shot, pull, teleport)
- Anti Kick
- Invalid Bullet Crasher
- Invalid Damage Crasher
- Invalid Camera Crasher
- NOP (TogglePlayerSpectating, TogglePlayerControllable, RemovePlayerFromVehicle, SpawnPlayer, SetPlayerPos)
- Attached Objects (Full protection)
- RCon
- Force Spawn
- Fast Respawn
- Fake Bullet
- Upside Mode [Open MP apenas] (Novo)
- Invert Walk [Open MP apenas] (Novo)
- Map Run (Novo)
- Cheats Flood
Recursos necessários:
- [Plugin] GVar
Funções adicionadas até então:
Configuração do anti-cheat:
Código PHP:
// Retorna a versão do EVO
stock EVO_GetVersion()
// Autentica o Token para ativar a proteção
stock EVO_Auth(const token[])
// Inicializa a proteção para o jogador (iniciado automaticamente ao conectar)
stock EVO_InitPlayerAC(playerid)
// Para a proteção para o jogador
stock EVO_StopPlayerAC(playerid)
// Retorna se o EVO está ativo para o jogador
stock EVO_IsActivePlayerAC(playerid)
// Pausa um cheat específico ou todos para determinado jogador
stock EVO_PausePlayerAC(playerid, bool:pause, cheatid = -1)
// Retorna se um cheat específico está pausado para o jogador
stock EVO_IsPausedPlayerAC(playerid, cheatid)
// Retorna o nome do cheat
stock EVO_GetCheatNameAC(cheatid)
// Recarrega o arquivo de configuração do anti-cheat
stock EVO_ReloadSettings(const file[])
Controle de dano:
Código PHP:
// Define o alcance de determinada arma para o jogador
stock EWD_SetPlayerWeaponRange(playerid, weaponid, Float:range)
// Retorna o alcance de determinada arma do jogador
stock Float:EWD_GetPlayerWeaponRange(playerid, weaponid)
// Define o dano de determinada arma para o jogador
stock EWD_SetPlayerWeaponDmg(playerid, weaponid, Float:amount)
// Retorna o dano de determinada arma do jogador
stock Float:EWD_GetPlayerWeaponDmg(playerid, weaponid)
// Define o dano de uma arma em uma região específica do corpo do jogador
stock EWD_SetPlayerBodyDmg(playerid, weaponid, bodypart, Float:amount)
// Retorna o dano de uma arma em uma região específica do corpo do jogador
stock Float:EWD_GetPlayerBodyDmg(playerid, weaponid, bodypart)
// Bloqueia uma quantidade de dano recebido em uma parte do corpo do jogador
stock EWD_BlockPlayerBodyDmg(playerid, weaponid, bodypart, Float:amount)
// Retorna a quantidade bloqueada de dano recebido em uma parte do corpo do jogador
stock Float:EWD_GetPlayerBlockedBodyDmg(playerid, weaponid, bodypart)
// Bloqueia uma quantidade de dano recebido em uma parte do corpo do jogador (APENAS QUANDO IDENTIFICADO COLETE)
stock EWD_BlockPlayerArmourDmg(playerid, weaponid, bodypart, Float:amount)
// Retorna a quantidade bloqueada de dano recebido em uma parte do corpo do jogador (APENAS QUANDO IDENTIFICADO COLETE)
stock Float:EWD_GetPlayerBlockedArmourDmg(playerid, weaponid, bodypart)
// Alterna se o jogador pode DAR dano a outro jogador (Habilitado automaticamente ao conectar)
stock EWD_TogglePlayerGiveBulletDmg(playerid, bool:toggle)
// Retorna se o jogador pode DAR dano a outro jogador
stock EWD_IsPlayerGivingBulletDmg(playerid)
// Alterna se o jogador pode RECEBER dano de outro jogador (Habilitado automaticamente ao conectar)
stock EWD_TogglePlayerTakeBulletDmg(playerid, bool:toggle)
// Retorna se o jogador pode RECEBER dano de outro jogador
stock EWD_IsPlayerTakingBulletDmg(playerid)
// Alterna o fogo amigo para o jogador
stock EWD_EnablePlayerFriendlyFire(playerid, bool:enable)
Funções adicionais/extendidas:
Código PHP:
// Expulsão com delay e com possibilidade de bloquear um IP temporariamente (ambos parâmetros em ms)
stock EVO_Kick(playerid, delay = 0, block_ip_time = 0)
// Define a vida do jogador, podendo definir quem o matou e com qual arma (caso a vida seja definida 0)
stock EWD_SetPlayerHealth(playerid, Float:health, killerid = INVALID_PLAYER_ID, WEAPON:reason = WEAPON_UNKNOWN)
// Retorna diretamente a quantidade de vida do jogador
stock Float:EWD_GetPlayerHealth(playerid)
// Retorna diretamente a quantidade de colete do jogador
stock Float:EWD_GetPlayerArmour(playerid)
// Retorna se o jogador está sincronizado
stock EVO_IsPlayerSynced(playerid)
// Personaliza o delay de disparo de uma arma (disponível apenas para ID: 24, 25) - Padrão: 450ms
stock EVO_SetPlayerCBugDelay(playerid, weaponid, delay)
// Retorna a velocidade 2D do jogador
stock Float:EVO_GetPlayerSpeed2D(playerid)
// Retorna a velocidade 3D do jogador
stock Float:EVO_GetPlayerSpeed3D(playerid)
// Prevenção (não detecção) de dialog spoof
// Neste caso a detecção ocorre sempre, mas HABILITANDO esta funcionalidade a caixa de diálogo não terá resposta dos botões
stock EVO_PreventPlayerDialogSpoof(playerid, bool:enable)
// Alterna o modo Deus (anti-cheat)
stock EVO_SetPlayerGodMode(playerid, bool:active)
// Retorna se o jogador está em modo Deus (anti-cheat)
stock EVO_IsPlayerInGodMode(playerid)
// Define o dinheiro do jogador
stock EVO_SetPlayerMoney(playerid, money)
// Atualiza o HUD de dinheiro com base na memória do anti-cheat
stock EVO_UpdatePlayerMoney(playerid)
// Retorna o primeiro slot livre de objetos atacados no corpo do jogador com base na memória do anti-cheat
stock EVO_GetFreeAttachedObjectSlot(playerid)
// Retorna o index do objeto atacado com base no modelo e memória do anti-cheat (-1 se o modelo não for encontrado)
stock EVO_GetAttachedObjectModelIndex(playerid, modelid)
// Retorna o modelo do objeto atacado com base no index com base na memória do anti-cheat
stock EVO_GetAttachedObjectModel(playerid, index)
// Ataca todos os objetos no corpo do jogador com base na memória do anti-cheat
stock EVO_ApplyPlayerAttachedObjects(playerid)
// Retorna diretamente a vida do veículo com base na memória do anti-cheat
stock Float:EVO_GetVehicleHealth(vehicleid)
// Remove uma arma específica da mão do jogador
stock EVO_RemovePlayerWeapon(playerid, weaponid)
// Concede todas as armas do jogador com base na memória do anti-cheat, podendo aplicar delay
stock EVO_GiveAllPlayerWeapons(playerid, delay = 0)
// Define uma arma específica para o jogador
stock EVO_SetPlayerWeapon(playerid, weaponid, ammo)
// Retorna se a arma do jogador é válida com base na memória do anti-cheat
stock EVO_IsValidPlayerWeapon(playerid, weaponid)
EVO grátis:
A versão free do EVO, ou seja, sem Token, garante uma proteção superficial contra crashers (básicos) e cheats de disparo como manipulação de dano e manipulação de distância de disparo.
Apesar das proteções de dano, não é possível personalizar a distância ou dano recebido com o EVO Weapon Config.
Nesta versão não se deve utilizar funções 'EVO_Get...', pois o valor retornado não será necessariamente da memória do anti-cheat, uma vez que ele não está 100% operante.
Instalação:
Tudo o que você precisa está no arquivo baixado (acesse o canal do Discord), onde terá a pasta da versão SA:MP e Open.MP.
Lembrando que a versão de SA:MP e Open.MP são distintas, portanto, não coloque a compilação errada do EVO no servidor para evitar problemas.
No download vocês terão tudo devidamente configurado e a partir do script exemplo, poderão trabalhar com o anti-cheat sem dificuldades.
Manutenção do projeto:
Projeto lançado oficialmente em sua primeira versão no início de Abril e sendo atualizado rigorosamente.
Servidor(es) que já estão utilizando:
Caso tenham interesse em conferir o anti-cheat e sua efetividade, basta acessar o servidor abaixo:
Os Aposented PvP: pvp.aposented.com.br
Os Aposented Roleplay: rp.aposented.com.br (em breve)
Maiores informações:
Discord: https://discord.gg/cuFaYC9UMQ
Agora você pode:
- Interagir com um Bot personalizado para automação de chaves e pagamentos
- Reportar bugs
- Enviar feedback
- Call privada comigo para discutir sobre o anti-cheat
- Download
EVO Anti-Cheat
A melhor defesa contra o melhor ataque! ~> Discord
____________________________________________
Soluções personalizadas para SA:MP e Open.MP
Discord: .eduardoac
A melhor defesa contra o melhor ataque! ~> Discord
____________________________________________
Soluções personalizadas para SA:MP e Open.MP
Discord: .eduardoac