Анти - ТП в авто.

Модератор: SJplayer

Аватара
Автор темы
Romchik
Ефрейтор
Ефрейтор
Сообщения: 20
Репутация: 0
С нами: 5 лет 8 месяцев

Анти - ТП в авто.

Сообщение #1 Romchik » 12 мая 2013, 15:39

Простая система Анти - ТП в авто.

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

//by Games 
#include a_samp 
new IDVEH[MAX_PLAYERS]; 
new bool
:UseEnter[MAX_PLAYERS]; 

public OnPlayerStateChange
(playerid, newstate, oldstate) 
{ 
    if
(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER ) 
    
{ 
        if
(IDVEH[playerid] != GetPlayerVehicleID(playerid) || !UseEnter[playerid]) 
        
{ 
            Punish
(playerid); 
        
} 
        UseEnter
[playerid] = false; 
      
} 
    return 1
; 
} 

public OnPlayerExitVehicle
(playerid, vehicleid) 
{ 
    ResetCarInfo
(playerid); 
    return 1
; 
} 

public OnPlayerEnterVehicle
(playerid, vehicleid, ispassenger) 
{ 
    UseEnter
[playerid] = true; 
    IDVEH
[playerid]=vehicleid; 
    return 1
; 
} 

public OnPlayerConnect
(playerid) 
{ 
    ResetCarInfo
(playerid); 
    return 1
; 
} 

public OnPlayerDisconnect
(playerid,reason) 
{ 
    ResetCarInfo
(playerid); 
    return 1
; 
} 

public OnFilterScriptInit
() 
{ 
    SetTimer
("CheckCar",1000,1);//если в мод вшивать будете, то в public OnGameModeInit() 
} 

forward CheckCar
(); 
public CheckCar
() 
{ 
    for
(new i; i<GetMaxPlayers(); i++) 
    
{ 
        if
(IDVEH[i] != -&& IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && !UseEnter[i] && IDVEH[i] != GetPlayerVehicleID(i)) Punish(i); 
    
} 
    return 1
; 
} 

stock ResetCarInfo
(playerid) 
{ 
    IDVEH
[playerid]=-1; 
    UseEnter
[playerid] = false; 
} 

stock Punish
(playerid) 
{ 
    new string
[MAX_PLAYER_NAME+40]; 
     format
(string,sizeof(string),"{FFFF66}%s был кикнут за тп в авто!",PlayerName(playerid)); 
     SendClientMessageToAll
(-1, string); 
     Kick
(playerid); 
    
/*ResetCarInfo(playerid); //если наказание не кик, но вы вытаскиваете игрока из авто, например посадите в тюрьму*/ 
       
/*IDVEH[playerid]=GetPlayerVehicleID(playerid);//если не высаживаете игрока, например только даете предупреждение */ 
} 
//    


При необходимости добавить:

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

stock PlayerName(playerid){ 
new pname
[MAX_PLAYER_NAME]; 
GetPlayerName
(playerid,pname,sizeof(pname)); 
return pname
;}


Все PutPlayerInVehicle(playerid, vehicleid, seatid); заменить на PutPlayerInVeh(playerid, vehicleid, seatid);

Вниз мода добавить:

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

stock PutPlayerInVeh(playerid, vehicleid, seatid)  
{  
    UseEnter
[playerid] = false; 
    IDVEH
[playerid] = vehicleid; 
    PutPlayerInVehicle
(playerid, vehicleid, seatid);  
    return 1
;  
}



Плюсы этого варианта:
-Ловит тп в авто (хоть пешком в авто, хоть из авто в авто)
- Ловит даже если нажать возле одного авто интер, а тп внутрь другого авто.

Минусы:
- Не ловит, если нажать возле авто интер, а потом тп читом в это же авто.

! ! !


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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

Кто сейчас на форуме