Advertisement
Deaderik

SuperGrand Anti S0beit v.2.0

Feb 9th, 2024
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.76 KB | Gaming | 0 0
  1. // pridané funkcie VPN a anti DDoS 2.0
  2. //Upravené funkcie aby sa to nekrížilo
  3. //Pridané funkcie proti bottom a cheatom
  4. //2IP na jedno zariadenie povolene
  5. //Čo chcete si tam pridáte
  6. // SuperGrand
  7. #include <a_samp>
  8. #include <a_players>
  9.  
  10. #define MAX_PLAYERS 100 // Maximální počet hráčů na serveru
  11. #define MAX_HEALTH 100
  12. #define MAX_MONEY 1000000
  13. #define MAX_TELEPORT_DISTANCE 50.0 // Maximální povolená vzdálenost teleportace hráče
  14. #define MAX_TELEPORT_COUNT 3 // Maximální povolený počet teleportací hráče
  15. #define MAX_PLAYERS_PER_IP 2 // Maximální počet hráčů z jedné IP adresy
  16.  
  17. new g_PlayerLastPosition[MAX_PLAYERS][3]; // Uchovává poslední známou pozici hráče
  18. new g_PlayerTeleportCount[MAX_PLAYERS]; // Počet teleportací hráče
  19. new g_PlayerIPs[MAX_PLAYERS_PER_IP][MAX_PLAYERS]; // Uchovává IP adresy hráčů
  20. new g_VPNs[MAX_PLAYERS]; // Uchovává informace o použití VPN pro každého hráče
  21.  
  22. public OnPlayerConnect(playerid)
  23. {
  24.     // Získání IP adresy připojeného hráče
  25.     new ip_address[16];
  26.     GetPlayerIp(playerid, ip_address, sizeof(ip_address));
  27.  
  28.     // Detekce použití VPN
  29.     if(IsPlayerUsingVPN(ip_address))
  30.     {
  31.         g_VPNs[playerid] = true;
  32.         SendClientMessage(playerid, COLOR_RED, "Používáte VPN, což není povoleno na tomto serveru.");
  33.         Kick(playerid); // Kick hráče z serveru
  34.         return 0; // Ukončení funkce, pokud byl hráč odstraněn
  35.     }
  36.  
  37.     // Kontrola, zda je připojený hráč z téže IP adresy jako již připojení hráči
  38.     for(new i = 0; i < MAX_PLAYERS_PER_IP; i++)
  39.     {
  40.         if(g_PlayerIPs[i][playerid] == ip_address)
  41.         {
  42.             Kick(playerid); // Kick hráče z serveru
  43.             SendClientMessage(playerid, COLOR_RED, "Připojení dalšího hráče z téže IP adresy není povoleno.");
  44.             return 0; // Ukončení funkce, pokud byl hráč odstraněn
  45.         }
  46.     }
  47.  
  48.     // Uložení IP adresy připojeného hráče do seznamu
  49.     for(new i = 0; i < MAX_PLAYERS_PER_IP; i++)
  50.     {
  51.         if(!g_PlayerIPs[i][playerid])
  52.         {
  53.             g_PlayerIPs[i][playerid] = ip_address;
  54.             break; // Ukončení procházení, pokud byla IP adresa úspěšně uložena
  55.         }
  56.     }
  57.  
  58.     return 1;
  59. }
  60.  
  61. public OnPlayerDisconnect(playerid, reason)
  62. {
  63.     // Odstranění IP adresy hráče z seznamu při odpojení
  64.     for(new i = 0; i < MAX_PLAYERS_PER_IP; i++)
  65.     {
  66.         if(g_PlayerIPs[i][playerid])
  67.         {
  68.             g_PlayerIPs[i][playerid] = 0;
  69.             break; // Ukončení procházení, pokud byla IP adresa úspěšně odstraněna
  70.         }
  71.     }
  72.     g_VPNs[playerid] = false; // Resetovat VPN status hráče
  73.     return 1;
  74. }
  75.  
  76. public OnPlayerUpdate(playerid)
  77. {
  78.     // Kontrola zdraví hráče
  79.     if(GetPlayerHealth(playerid) > MAX_HEALTH)
  80.     {
  81.         SetPlayerHealth(playerid, MAX_HEALTH);
  82.         SendClientMessage(playerid, COLOR_RED, "Bylo detekováno nelegální zvýšení zdraví. Změněno na maximální hodnotu.");
  83.     }
  84.  
  85.     // Kontrola peněz hráče
  86.     if(GetPlayerMoney(playerid) > MAX_MONEY)
  87.     {
  88.         SetPlayerMoney(playerid, MAX_MONEY);
  89.         SendClientMessage(playerid, COLOR_RED, "Bylo detekováno nelegální zvýšení peněz. Změněno na maximální hodnotu.");
  90.     }
  91.  
  92.     // Detekce nelegálních nástrojů jako je S0beit
  93.     if(IsPlayerUsingIllegalTools(playerid))
  94.     {
  95.         Kick(playerid); // Kick hráče z serveru
  96.         SendClientMessage(playerid, COLOR_RED, "Bylo detekováno použití nelegálních nástrojů. Byl jste vyhozen ze serveru.");
  97.     }
  98.  
  99.     // Sledování podezřelých akcí hráče
  100.     WatchPlayerActions(playerid);
  101.  
  102.     return 1;
  103. }
  104.  
  105. // Funkce pro detekci nelegálních nástrojů
  106. public IsPlayerUsingIllegalTools(playerid)
  107. {
  108. public SendKickMessage(playerid, kickerid, reason[])
  109. {
  110.     new message[128];
  111.     format(message, sizeof(message), "Hráč %s byl vyhozen Anti-Cheatom %s. Důvod: %s", GetPlayerName(playerid), GetPlayerName(kickerid), reason);
  112.     SendClientMessageToAll(COLOR_RED, message);
  113. }
  114.  
  115. public OnPlayerUpdate(playerid)
  116. {
  117.     // Kontrola zdraví hráče
  118.     if(GetPlayerHealth(playerid) > MAX_HEALTH)
  119.     {
  120.         SetPlayerHealth(playerid, MAX_HEALTH);
  121.         SendClientMessage(playerid, COLOR_RED, "Bylo detekováno nelegální zvýšení zdraví. Změněno na maximální hodnotu.");
  122.     }
  123.  
  124.     // Kontrola peněz hráče
  125.     if(GetPlayerMoney(playerid) > MAX_MONEY)
  126.     {
  127.         SetPlayerMoney(playerid, MAX_MONEY);
  128.         SendClientMessage(playerid, COLOR_RED, "Bylo detekováno nelegální zvýšení peněz. Změněno na maximální hodnotu.");
  129.     }
  130.  
  131.     // Detekce nelegálních nástrojů jako je S0beit
  132.     if(IsPlayerUsingIllegalTools(playerid))
  133.     {
  134.         Kick(playerid); // Kick hráče z serveru
  135.         SendKickMessage(playerid, INVALID_PLAYER_ID, "Použití nelegálních nástrojů");
  136.     }
  137.  
  138.     // Sledování podezřelých akcí hráče
  139.     WatchPlayerActions(playerid);
  140.  
  141.     return 1;
  142. }
  143.  
  144. // Funkce pro sledování akcí hráče
  145. public WatchPlayerActions(playerid)
  146. {
  147.     // Zde můžete implementovat sledování různých akcí hráče, jako je teleportace, neviditelnost, nesmyslné pohyby, atd.
  148.     // V tomto příkladu sledujeme, zda hráč provedl podezřelou teleportaci
  149.     new Float:pos[3];
  150.     GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  151.     if(GetPlayerDistanceFromPoint(playerid, pos[0], pos[1], pos[2]) > MAX_TELEPORT_DISTANCE)
  152.     {
  153.         g_PlayerTeleportCount[playerid]++; // Zvýšení počtu teleportací hráče
  154.         if(g_PlayerTeleportCount[playerid] > MAX_TELEPORT_COUNT)
  155.         {
  156.             Kick(playerid); // Kick hráče z serveru
  157.             SendKickMessage(playerid, INVALID_PLAYER_ID, "Podezřelá teleportace");
  158.         }
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement