{"id":20522633,"url":"https://github.com/ocalasans/Anti-Ping","last_synced_at":"2025-05-09T11:30:24.408Z","repository":{"id":192940102,"uuid":"687772422","full_name":"ocalasans/Anti-Lag","owner":"ocalasans","description":"Filterscript Anti-Lag para SA:MP (San Andreas Multiplayer)","archived":false,"fork":false,"pushed_at":"2024-03-03T01:15:36.000Z","size":40,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-03-03T02:22:43.818Z","etag":null,"topics":["filterscript","gta","pawn","pawno","sa-mp","samp"],"latest_commit_sha":null,"homepage":"https://abre.ai/samp-spc","language":"Pawn","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ocalasans.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-09-06T01:20:04.000Z","updated_at":"2024-02-28T22:06:00.000Z","dependencies_parsed_at":"2024-01-28T18:27:33.668Z","dependency_job_id":"928c1c81-9b5a-427d-a1e6-27687e8022e7","html_url":"https://github.com/ocalasans/Anti-Lag","commit_stats":null,"previous_names":["walkerxinho7/anti-lag","ocalasans/anti-lag"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocalasans%2FAnti-Lag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocalasans%2FAnti-Lag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocalasans%2FAnti-Lag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocalasans%2FAnti-Lag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ocalasans","download_url":"https://codeload.github.com/ocalasans/Anti-Lag/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224854963,"owners_count":17380953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["filterscript","gta","pawn","pawno","sa-mp","samp"],"created_at":"2024-11-15T22:36:14.815Z","updated_at":"2025-05-09T11:30:24.399Z","avatar_url":"https://github.com/ocalasans.png","language":"Pawn","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Anti-Ping\n\nO sistema Anti-Ping é um filterscript especializado projetado para monitorar e gerenciar a latência dos jogadores em servidores SA-MP. Ele detecta e remove automaticamente jogadores com ping excessivo para manter o desempenho do servidor e a qualidade do gameplay, particularmente importante para servidores de roleplay (RP/RPG).\n\n## Idiomas\n\n- Deutsch: [README](translations/Deutsch/README.md)\n- English: [README](translations/English/README.md)\n- Español: [README](translations/Espanol/README.md)\n- Français: [README](translations/Francais/README.md)\n- Italiano: [README](translations/Italiano/README.md)\n- Polski: [README](translations/Polski/README.md)\n- Русский: [README](translations/Русский/README.md)\n- Svenska: [README](translations/Svenska/README.md)\n- Türkçe: [README](translations/Turkce/README.md)\n\n## Índice\n\n- [Anti-Ping](#anti-ping)\n  - [Idiomas](#idiomas)\n  - [Índice](#índice)\n  - [Funcionalidades](#funcionalidades)\n  - [Instalação](#instalação)\n  - [Configuração](#configuração)\n  - [Como Funciona](#como-funciona)\n  - [Estrutura do Código](#estrutura-do-código)\n    - [Gerenciamento de Dados dos Jogadores](#gerenciamento-de-dados-dos-jogadores)\n    - [Sistema de Timers](#sistema-de-timers)\n  - [Detalhes Técnicos](#detalhes-técnicos)\n    - [Considerações de Performance](#considerações-de-performance)\n  - [Guia de Personalização](#guia-de-personalização)\n    - [Modificando as Mensagens de Aviso](#modificando-as-mensagens-de-aviso)\n    - [Ajustando Valores de Tempo](#ajustando-valores-de-tempo)\n  - [Perguntas Frequentes](#perguntas-frequentes)\n    - [Por que usar este sistema?](#por-que-usar-este-sistema)\n    - [Quando devo ajustar o valor MAX\\_PING?](#quando-devo-ajustar-o-valor-max_ping)\n  - [Licença](#licença)\n    - [Condições:](#condições)\n\n## Funcionalidades\n\n- Monitoramento de ping em tempo real\n- Remoção automática de jogadores com latência\n- Notificações detalhadas de kick\n- Limites de ping personalizáveis\n- Rastreamento de informações do jogador\n- Avisos sobre uso de VPN/Proxy\n- Estrutura de código limpa e otimizada\n\n## Instalação\n\n1. Baixe o arquivo [Anti-Ping.amx](https://github.com/ocalasans/Anti-Ping/raw/refs/heads/main/src/Anti-Ping.amx)\n2. Copie o arquivo para a pasta `filterscripts` do seu servidor\n3. Edite o arquivo `server.cfg`\n4. Adicione `Anti-Ping` na linha `filterscripts`\n\n**Exemplo de configuração no server.cfg:**\n```\nfilterscripts Anti-Ping\n```\n\n\u003e [!WARNING]\n\u003e Se já existirem outros filterscripts carregados, adicione o Anti-Ping após eles.\n\n## Configuração\n\nO sistema utiliza várias constantes configuráveis que podem ser ajustadas conforme suas necessidades:\n\n```pawn\n// Configurações principais\n#define MAX_PING                     (500)      // Ping máximo permitido\n#define PING_CHECK_INTERVAL          (2*1000)   // Intervalo de verificação em ms\n#define PING_CHECK_START_DELAY       (4*1000)   // Atraso inicial da verificação\n#define KICK_DELAY                   (5*100)    // Atraso do kick após o aviso\n```\n\n\u003e [!WARNING]\n\u003e Alterar o `MAX_PING` para um valor muito baixo pode resultar em kicks desnecessários de jogadores com conexões estáveis mas levemente mais lentas.\n\n## Como Funciona\n\n1. **Conexão do Jogador**\n   \n   ```pawn\n   public OnPlayerConnect(playerid) {\n       // Resetar dados do jogador\n       APF_PlayerData[playerid][Player_HasExceededPing] = false;\n       APF_PlayerData[playerid][Timer_PingCheck] = 0;\n\n       return true;\n   }\n   ```\n\n2. **Monitoramento de Ping**\n   \n   O sistema verifica regularmente o ping de cada jogador:\n   ```pawn\n   public Timer_CheckPlayerPing(playerid) {\n       if(!IsPlayerConnected(playerid))\n           return false;\n       \n       if(!APF_PlayerData[playerid][Player_HasExceededPing] \u0026\u0026 \n          GetPlayerPing(playerid) \u003e= MAX_PING) {\n           // Exibe aviso e agenda o kick\n           Show_PingWarning(playerid);\n           SetTimerEx(\"Timer_KickPlayer\", KICK_DELAY, false, \"i\", playerid);\n       }\n\n       return true;\n   }\n   ```\n\n3. **Sistema de Aviso**\n   \n   Antes do kick, o jogador recebe uma mensagem detalhada:\n   ```pawn\n   stock Show_PingWarning(playerid) {\n       format(dialog_string, sizeof(dialog_string), \n          \"%sYou have been kicked from the server for exceeding the maximum\\n\"\\\n          \"allowed ping (%s%d ms%s).\\n\\n\"\\\n          \"%sInformation:\\n\"\\\n          \"Name: %s%s\\n\"\\\n          \"%sIP: %s%s\\n\"\\\n          \"%sVersion: %s%s\\n\"\\\n          \"%sPing: %s%d\\n\\n\"\\\n          \"%sIf you are using a VPN/Proxy, we recommend disabling it\\n\"\\\n          \"as you may be kicked again for high ping.\",\n          COLOR_GREY, COLOR_WHITE, MAX_PING, COLOR_GREY,\n          COLOR_GREY, COLOR_WHITE, Get_PlayerName(playerid),\n          COLOR_GREY, COLOR_WHITE, player_ip,\n          COLOR_GREY, COLOR_WHITE, player_version,\n          COLOR_GREY, COLOR_WHITE, GetPlayerPing(playerid),\n          COLOR_GREY\n      );\n   }\n   ```\n\n## Estrutura do Código\n\nO sistema utiliza uma estrutura modular e organizada:\n\n### Gerenciamento de Dados dos Jogadores\n\n```pawn\nenum Player_Data {\n    bool:Player_HasExceededPing,\n    Timer_PingCheck\n}\nstatic APF_PlayerData[MAX_PLAYERS][Player_Data];\n```\n\n### Sistema de Timers\n\n- `Timer_CheckPlayerPing`: Monitoramento regular do ping\n- `Timer_KickPlayer`: Execução do kick com atraso\n- `Timer_StartPingMonitor`: Inicia o monitoramento após o spawn\n\n## Detalhes Técnicos\n\n### Considerações de Performance\n\n- Uso eficiente de memória através de estrutura de dados organizada\n- Uso otimizado de timers para minimizar a carga do servidor\n- Limpeza adequada dos timers na desconexão do jogador\n\n\u003e [!NOTE]\n\u003e O sistema foi projetado para ter um impacto mínimo no desempenho do servidor, mesmo com muitos jogadores conectados.\n\n## Guia de Personalização\n\n### Modificando as Mensagens de Aviso\n\nVocê pode personalizar o diálogo de aviso editando a função `Show_PingWarning`:\n```pawn\nstock Show_PingWarning(playerid) {\n    // Personalize sua mensagem aqui\n    format(dialog_string, sizeof(dialog_string), \n        \"Sua mensagem personalizada aqui...\"\n    );\n}\n```\n\n### Ajustando Valores de Tempo\n\nModifique as constantes no início do arquivo:\n```pawn\n#define MAX_PING                     (seu_valor)\n#define PING_CHECK_INTERVAL          (seu_valor)\n```\n\n## Perguntas Frequentes\n\n### Por que usar este sistema?\n\n- Mantém o desempenho do servidor\n- Garante um gameplay justo\n- Particularmente importante para cenários de roleplay\n- Previne exploits relacionados ao lag\n\n### Quando devo ajustar o valor MAX_PING?\n\n- Mais baixo para servidores competitivos (300-400ms)\n- Mais alto para servidores internacionais (500-600ms)\n- Considere a localização do seu público-alvo\n\n\u003e [!IMPORTANT]\n\u003e Recomenda-se testar diferentes valores de `MAX_PING` em um ambiente controlado antes de implementar em produção para encontrar o melhor equilíbrio para seu servidor.\n\n## Licença\n\nEste Filterscript está protegido sob a Licença Apache 2.0, que permite:\n\n- ✔️ Uso comercial e privado\n- ✔️ Modificação do código fonte\n- ✔️ Distribuição do código\n- ✔️ Concessão de patentes\n\n### Condições:\n\n- Manter o aviso de direitos autorais\n- Documentar alterações significativas\n- Incluir cópia da licença Apache 2.0\n\nPara mais detalhes sobre a licença: http://www.apache.org/licenses/LICENSE-2.0\n\n**Copyright (c) Calasans - Todos os direitos reservados**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Focalasans%2FAnti-Ping","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Focalasans%2FAnti-Ping","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Focalasans%2FAnti-Ping/lists"}