[Античит] [Filterscript]Anti-Crasher для серверов[Public](+anti-lagger, fake kill и loading)

Pazzo

Пользователь
Когда-то продавал этот античит на разных сайтах, может даже и на этом тоже(во всяком случае, ник Pazzo для этого и был зареган, хотя сообщения уже видимо удалены), но уже давно ушел из SAMP, поэтому, спустя 8-с-лишним лет, откопал эту фигню у себя на харде и нашел этот форум со своим старым акком.

На сегодняшний день тот вариант крашера, для которого писался этот антикрашер, уже неактуален, но фильтрскрипт по-прежнему может обнаружить игроков, использующих некоторые виды loading, Ultra-fake kill, лаггер и прочие читы, использующие телепорт в транспорт и не только. Я сам писал такие читы когда-то, поэтому знаю, о чем говорю(да, я свинья: продавал читы на одних сайтах, а затем античиты к ним на других, но что поделать - все мы не без грешка, пусть публикация этого хоть немного отмоет мою совесть).

Возможно, какие-то участки кода уже неактуальны. Я забросил кодинг для SAMP, и уже давно не слежу за обновлениями.

Код:
//-------------------------------------------------
//
//  Anti-Crasher Filterscript
//  Shaggy 2011
//
//-------------------------------------------------

#pragma tabsize 0

#include <a_samp>
#include <core>

#define COLOR_RED 0xAA3333AA
#define COLOR_BLUE 0x0000FFAA
new CrEnter[MAX_PLAYERS] = 0;
new CrNotCr[MAX_PLAYERS] = 0;
new CrWasInCar[MAX_PLAYERS] = 0;

forward IsPlayerCrasher();

//-------------------------------------------------
public OnFilterScriptInit()
{
        SetTimer("IsPlayerCrasher", 10, true);
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	return 0;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if (newkeys == 16 || oldkeys == 16 )
    {
        CrEnter[playerid] = 1;
        CrNotCr[playerid] = 0;
    }
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(playerid == killerid || playerid == INVALID_PLAYER_ID)
    {
        new string[256];
		new CrpName[MAX_PLAYER_NAME];
        GetPlayerName(playerid,CrpName,24);
		SendClientMessage(playerid, COLOR_BLUE, "Ты кикнут за использование читов!");
        Kick(playerid);
		format(string,sizeof(string), "%s [ID:%d] кикнут(а) за Gay-kill!",CrpName,playerid);
        SendClientMessageToAll(COLOR_RED,string);
    }
}

public IsPlayerCrasher()
{
    for(new i=0;i<MAX_PLAYERS;i++)
	{
		if(IsPlayerInAnyVehicle(i))
		{
            CrWasInCar[i] = 1;
			if(CrEnter[i] == 1)
			{
                CrEnter[i] = 0;
                CrNotCr[i] = 1;
			}
			if(CrEnter[i] == 0)
			{
                if(CrNotCr[i] == 0)
                {
                    new string[256];
				    new CrpName[MAX_PLAYER_NAME];
                    GetPlayerName(i,CrpName,24);
                    CrNotCr[i] = 1;
                    SendClientMessage(i, COLOR_BLUE, "Ты кикнут за использование читов!");
                    Kick(i);
					format(string,sizeof(string), "%s [ID:%d] кикнут(а) за использования Crasher или Loading!",CrpName,i);
                    SendClientMessageToAll(COLOR_RED,string);
                }
			}
		}
		else
		{
			if(CrWasInCar[i] == 1)
			{
                CrWasInCar[i] = 0;
   			    CrEnter[i] = 0;
                CrNotCr[i] = 0;
            }
		}
	}
    return 1;
}

public OnPlayerEnterVehicle (playerid)
{
    CrEnter[playerid] = 1;
    CrNotCr[playerid] = 0;
	new Float:crpX,Float:crpY,Float:crpZ;
    GetPlayerPos(playerid,crpX,crpY,crpZ);
	return 1;
}
 
Последнее редактирование:

Pazzo

Пользователь
Почти все. Посмотри, что сейчас вообще актуально и какие инструменты есть в открытом доступе для предотвращения всего этого.
Ну я не удивлен, в общем-то: всё-таки, прошло уже столько лет... Но мб кому-нибудь всё же пригодится.
 

#Rips

•Модератор lvl 1•
Команда форума
Переместил в подходящий раздел
 
Сверху