Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //================================[ ANTI BOT ]==================================
- new varz[MAX_PLAYERS] = {-1,...}, warns[MAX_PLAYERS] = {0,...}, bool:npcc[MAX_PLAYERS] = {false,...}, MAX_PLAYERS_ = MAX_PLAYERS;
- //ovo onplayerconnect
- if(CountIP(GetPIP(playerid)) >= 5) return BanAll(playerid), 0;
- MAX_PLAYERS_ = playerid > MAX_PLAYERS_ ? playerid : GetHighestID(),
- npcc[playerid] = bool:IsPlayerNPC(playerid),
- varz[playerid] = SetTimerEx("BSS",2500,false,"i",playerid),
- //ovo onplayerdisconnect
- MAX_PLAYERS_ = GetHighestID(playerid);
- if(npcc[playerid]) npcc[playerid] = false;
- if(varz[playerid] != -1)
- {
- KillTimer(varz[playerid]);
- varz[playerid] = -1;
- }
- forward BSS(playerid);
- public BSS(playerid)
- {
- new i = GetPlayerPing(playerid);
- if(i <= 0 || i >= 50000)
- {
- if(warns[playerid] >= 1) BanAll(playerid);
- else warns[playerid]++, varz[playerid] = SetTimerEx("BSS",1500,false,"i",playerid);
- }
- return 0;
- }
- GetPIP(playerid)
- {
- new ip[16];
- GetPlayerIp(playerid,ip,sizeof(ip));
- return ip;
- }
- BanAll(playerid)
- {
- new ip[32];
- GetPlayerIp(playerid,ip,sizeof(ip));
- for(new i = 0, p = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && !npcc[i])
- {
- p = GetPlayerPing(i);
- if(i == playerid || !strcmp(ip,GetPIP(i)) || p <= 0 || p >= 50000)
- {
- BanEx(i,"Bot");
- if(varz[i] != -1)
- {
- KillTimer(varz[i]);
- varz[i] = -1;
- }
- }
- }
- format(ip,sizeof(ip),"banip %s",ip);
- return SendRconCommand(ip);
- }
- GetHighestID(exceptof = INVALID_PLAYER_ID)
- {
- new h = 0;
- for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && i != exceptof && i > h) h = i;
- return h;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement