Анти Телепорт

Модератор: SJplayer

SJplayer M
Автор темы, Модератор
Модератор
Аватара
SJplayer M
Автор темы, Модератор
Модератор
Сообщения: 196
Зарегистрирован: 25 мая 2013
С нами: 10 лет 9 месяцев

#1 SJplayer » 1 июня 2013, 21:22

Анти Телепорт
Автор: Leonardo_Gun

Анти Телепорт кикает после 5 секунд . Можно было поставить после 1 но могут быть ложные срабатывания.

Ко всем new:

Код: Выделить всё

new LastCheck[MAX_PLAYERS];
new 
IsPlayerAirBreaking[MAX_PLAYERS]; 


Ко всем forward:

Код: Выделить всё

forward AntiAirBreak();  


Добавим в public OnGameModeInit() (После скобки):

Код: Выделить всё

SetTimer("AntiAirBreak",100,true); // Можно заменить таймер до кика 100  


И в конец мода добавим public AntiAirBreak():

Код: Выделить всё

public AntiAirBreak()
{
    new 
Float:x,Float:y,Float:z;
    new 
pstate;
    new 
string[256];
    for(new 
i=0;i<GetMaxPlayers();i++)
    {
        if(!
IsPlayerNPC(i) && FullyConnected[i] && GetPlayerPos(i,x,y,z))
        {
            
pstate=GetPlayerState(i);
            if(
pstate==PLAYER_STATE_ONFOOT || (pstate==PLAYER_STATE_DRIVER && GetPlayerSpeed(i,true)<10))
            {
                new var=(
floatround(floatsqroot(GetSquareDistance(x,y,z,CurrentPos[i][0],CurrentPos[i][1],CurrentPos[i][2]))*3600)/(GetTickCount()-LastCheck[i]));
                if(var>=
320 && var<=10000// Минимал 320 макс 10000
                 
{
                    
IsPlayerAirBreaking[i] = 1;
                    
format(string,256,"CEPBEP:{FF00FF} %s[%d] {00FF00}was kicked, reason: {FFFFFF}AirBag",PlayerName(i),i);
                    
SendClientMessageToAll(COLOR_REDstring);
                
Kick(i);
                }
            }
        }
        
CurrentPos[i][0]=x;
        
CurrentPos[i][1]=y;
        
CurrentPos[i][2]=z;
        
LastCheck[i]=GetTickCount();
    }
    return 
1;
}  


Вернуться в «Античиты»