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

Moderator: SJplayer

Romchik
Topic author, Ефрейтор
Ефрейтор
Avatar
Romchik
Topic author, Ефрейтор
Ефрейтор
Posts: 20
Joined: 12 May 2013
With us: 11 years 4 months

#1by Romchik » 12 May 2013, 15:39

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

Code: Select all

//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);//если не высаживаете игрока, например только даете предупреждение */ 
} 
//    


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

Code: Select all

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


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

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

Code: Select all

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



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

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


Return to “Античиты”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest