Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // pridané funkcie VPN a anti DDoS 2.0
- //Upravené funkcie aby sa to nekrížilo
- //Pridané funkcie proti bottom a cheatom
- //2IP na jedno zariadenie povolene
- //Čo chcete si tam pridáte
- // SuperGrand
- #include <a_samp>
- #include <a_players>
- #define MAX_PLAYERS 100 // Maximální počet hráčů na serveru
- #define MAX_HEALTH 100
- #define MAX_MONEY 1000000
- #define MAX_TELEPORT_DISTANCE 50.0 // Maximální povolená vzdálenost teleportace hráče
- #define MAX_TELEPORT_COUNT 3 // Maximální povolený počet teleportací hráče
- #define MAX_PLAYERS_PER_IP 2 // Maximální počet hráčů z jedné IP adresy
- new g_PlayerLastPosition[MAX_PLAYERS][3]; // Uchovává poslední známou pozici hráče
- new g_PlayerTeleportCount[MAX_PLAYERS]; // Počet teleportací hráče
- new g_PlayerIPs[MAX_PLAYERS_PER_IP][MAX_PLAYERS]; // Uchovává IP adresy hráčů
- new g_VPNs[MAX_PLAYERS]; // Uchovává informace o použití VPN pro každého hráče
- public OnPlayerConnect(playerid)
- {
- // Získání IP adresy připojeného hráče
- new ip_address[16];
- GetPlayerIp(playerid, ip_address, sizeof(ip_address));
- // Detekce použití VPN
- if(IsPlayerUsingVPN(ip_address))
- {
- g_VPNs[playerid] = true;
- SendClientMessage(playerid, COLOR_RED, "Používáte VPN, což není povoleno na tomto serveru.");
- Kick(playerid); // Kick hráče z serveru
- return 0; // Ukončení funkce, pokud byl hráč odstraněn
- }
- // Kontrola, zda je připojený hráč z téže IP adresy jako již připojení hráči
- for(new i = 0; i < MAX_PLAYERS_PER_IP; i++)
- {
- if(g_PlayerIPs[i][playerid] == ip_address)
- {
- Kick(playerid); // Kick hráče z serveru
- SendClientMessage(playerid, COLOR_RED, "Připojení dalšího hráče z téže IP adresy není povoleno.");
- return 0; // Ukončení funkce, pokud byl hráč odstraněn
- }
- }
- // Uložení IP adresy připojeného hráče do seznamu
- for(new i = 0; i < MAX_PLAYERS_PER_IP; i++)
- {
- if(!g_PlayerIPs[i][playerid])
- {
- g_PlayerIPs[i][playerid] = ip_address;
- break; // Ukončení procházení, pokud byla IP adresa úspěšně uložena
- }
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- // Odstranění IP adresy hráče z seznamu při odpojení
- for(new i = 0; i < MAX_PLAYERS_PER_IP; i++)
- {
- if(g_PlayerIPs[i][playerid])
- {
- g_PlayerIPs[i][playerid] = 0;
- break; // Ukončení procházení, pokud byla IP adresa úspěšně odstraněna
- }
- }
- g_VPNs[playerid] = false; // Resetovat VPN status hráče
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- // Kontrola zdraví hráče
- if(GetPlayerHealth(playerid) > MAX_HEALTH)
- {
- SetPlayerHealth(playerid, MAX_HEALTH);
- SendClientMessage(playerid, COLOR_RED, "Bylo detekováno nelegální zvýšení zdraví. Změněno na maximální hodnotu.");
- }
- // Kontrola peněz hráče
- if(GetPlayerMoney(playerid) > MAX_MONEY)
- {
- SetPlayerMoney(playerid, MAX_MONEY);
- SendClientMessage(playerid, COLOR_RED, "Bylo detekováno nelegální zvýšení peněz. Změněno na maximální hodnotu.");
- }
- // Detekce nelegálních nástrojů jako je S0beit
- if(IsPlayerUsingIllegalTools(playerid))
- {
- Kick(playerid); // Kick hráče z serveru
- SendClientMessage(playerid, COLOR_RED, "Bylo detekováno použití nelegálních nástrojů. Byl jste vyhozen ze serveru.");
- }
- // Sledování podezřelých akcí hráče
- WatchPlayerActions(playerid);
- return 1;
- }
- // Funkce pro detekci nelegálních nástrojů
- public IsPlayerUsingIllegalTools(playerid)
- {
- public SendKickMessage(playerid, kickerid, reason[])
- {
- new message[128];
- format(message, sizeof(message), "Hráč %s byl vyhozen Anti-Cheatom %s. Důvod: %s", GetPlayerName(playerid), GetPlayerName(kickerid), reason);
- SendClientMessageToAll(COLOR_RED, message);
- }
- public OnPlayerUpdate(playerid)
- {
- // Kontrola zdraví hráče
- if(GetPlayerHealth(playerid) > MAX_HEALTH)
- {
- SetPlayerHealth(playerid, MAX_HEALTH);
- SendClientMessage(playerid, COLOR_RED, "Bylo detekováno nelegální zvýšení zdraví. Změněno na maximální hodnotu.");
- }
- // Kontrola peněz hráče
- if(GetPlayerMoney(playerid) > MAX_MONEY)
- {
- SetPlayerMoney(playerid, MAX_MONEY);
- SendClientMessage(playerid, COLOR_RED, "Bylo detekováno nelegální zvýšení peněz. Změněno na maximální hodnotu.");
- }
- // Detekce nelegálních nástrojů jako je S0beit
- if(IsPlayerUsingIllegalTools(playerid))
- {
- Kick(playerid); // Kick hráče z serveru
- SendKickMessage(playerid, INVALID_PLAYER_ID, "Použití nelegálních nástrojů");
- }
- // Sledování podezřelých akcí hráče
- WatchPlayerActions(playerid);
- return 1;
- }
- // Funkce pro sledování akcí hráče
- public WatchPlayerActions(playerid)
- {
- // Zde můžete implementovat sledování různých akcí hráče, jako je teleportace, neviditelnost, nesmyslné pohyby, atd.
- // V tomto příkladu sledujeme, zda hráč provedl podezřelou teleportaci
- new Float:pos[3];
- GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
- if(GetPlayerDistanceFromPoint(playerid, pos[0], pos[1], pos[2]) > MAX_TELEPORT_DISTANCE)
- {
- g_PlayerTeleportCount[playerid]++; // Zvýšení počtu teleportací hráče
- if(g_PlayerTeleportCount[playerid] > MAX_TELEPORT_COUNT)
- {
- Kick(playerid); // Kick hráče z serveru
- SendKickMessage(playerid, INVALID_PLAYER_ID, "Podezřelá teleportace");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement